This page describes how to connect the installed Snowflake Native App to Experian Data Quality APIs.
The app also includes a Getting started page with the same SQL commands in convenient, copyable code blocks. The examples below assume the app is installed as EDQ.
Grant the application's role to the Snowflake role that will use the app:
GRANT APPLICATION ROLE EDQ.APP_PUBLIC TO ROLE DATA_ENGINEER;
Users assigned to this role can then access the Streamlit app and call procedures such as EDQ.VALIDATION.Email.
Run this SQL using a role with permission to create security integrations, secrets, network rules, and external access integrations.
Replace <your-client-id> and <your-client-secret> with your Experian OAuth client credentials.
USE ROLE ACCOUNTADMIN;
CREATE DATABASE IF NOT EXISTS EDQ_APP_CONFIG;
CREATE SCHEMA IF NOT EXISTS EDQ_APP_CONFIG.AUTH;
CREATE OR REPLACE NETWORK RULE EDQ_APP_CONFIG.AUTH.experian_api_network_rule
MODE = EGRESS
TYPE = HOST_PORT
VALUE_LIST = ('api.experianaperture.io');
CREATE OR REPLACE SECURITY INTEGRATION experian_oauth_integration
TYPE = API_AUTHENTICATION
AUTH_TYPE = OAUTH2
OAUTH_CLIENT_ID = '<your-client-id>'
OAUTH_CLIENT_SECRET = '<your-client-secret>'
OAUTH_TOKEN_ENDPOINT = 'https://sso.experianaperture.io/oauth2/aust0wkxjeKyT3HRO4x7/v1/token'
OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST
OAUTH_GRANT = 'CLIENT_CREDENTIALS'
OAUTH_ALLOWED_SCOPES = ('clientid')
OAUTH_ACCESS_TOKEN_VALIDITY = 3600
ENABLED = TRUE;
CREATE OR REPLACE SECRET EDQ_APP_CONFIG.AUTH.experian_oauth_secret
TYPE = OAUTH2
API_AUTHENTICATION = experian_oauth_integration
OAUTH_SCOPES = ('clientid');
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION experian_api_integration
ALLOWED_NETWORK_RULES = (EDQ_APP_CONFIG.AUTH.experian_api_network_rule)
ALLOWED_AUTHENTICATION_SECRETS = (EDQ_APP_CONFIG.AUTH.experian_oauth_secret)
ENABLED = TRUE;
Bind the OAuth secret and external access integration to the installed app.
CALL EDQ.CONFIG.register_reference(
'experian_oauth_secret',
'ADD',
SYSTEM$REFERENCE(
'SECRET',
'EDQ_APP_CONFIG.AUTH.experian_oauth_secret',
'PERSISTENT',
'READ'
)
);
CALL EDQ.CONFIG.register_reference(
'api',
'ADD',
SYSTEM$REFERENCE(
'EXTERNAL_ACCESS_INTEGRATION',
'experian_api_integration',
'PERSISTENT',
'USAGE'
)
);
When both references are bound, the app creates the network-enabled validation functions and resumes the orchestration task used for bulk jobs.
For bulk validation, grant the installed application SELECT access to the source table or view.
GRANT SELECT ON TABLE SOURCE_DB.SCHEMA.CONTACTS_TABLE TO APPLICATION EDQ;
Repeat this grant for every source table or view you plan to validate.
After setup, open the app and go to Configure Address Validation. If the app can connect to Experian and your OAuth client is entitled to use Address Validation, it will retrieve the list of licensed countries and datasets.
You can also run a small validation call from a worksheet after configuring the relevant product:
SELECT PARSE_JSON(EDQ.VALIDATION.Email('support@example.com')) AS validation_result;
Replace the application name if needed