ADG API Reference
The Alternative Data Group API is a web service that provides structured company information from unstructured merchant transaction data or domain names reliably.
Our merchant mapper takes text from transactional purchase data and also produces structured company and trading-related information.
The domain mapper converts domain names (URLs) to structured company and trading-related information.
THE BULK API MAPPER IS AVAILABLE ON GITHUB. Click here for the tool Use this tool if you are looking to run multiple inputs through the API.
Try the live API now
(No sign up required)
Click on /merchant-mapper below to show the interactive panel.
Scroll the page to the Parameters section.
The X_USER_KEY param should be f816b9125492069f7f2e3b1cc60659f0. (No change needed)
Paste the example text below into the QUERY window, or click on the yellow box underneath “Model Schema” to the right of it.
Make sure that your query is surrounded by [" and "].
Example: ["THE HOME DEPOT 12/29 #000725801 PURCHASE"]
Click the Try it out! button and scroll down to see the results in the Response Body section.
You can click on /merchant-mapper again to hide its interactive panel.
Feel free to try /domain-mapper in the same way.
LIVE WORKING CURL COMMAND EXAMPLE: curl -X POST "https://api-2445582026130.production.gw.apicast.io/merchant-mapper?X_user_key=f816b9125492069f7f2e3b1cc60659f0" -d'["WORLDGATE 9 THEATRES HERNDON VA"]'
Another interesting QUERY for /merchant-mapper would be:
["WALMART.COM 8009666546 BENTONVILLE AR", "TACO BELL 001500153817 CHARLESTON WV", "Purchase #xx255xx WORLDGATE 9 THEATRES HERNDON VA"]
(Notice that’s a JSON list with 3 strings; The entire list can be sent as a single request.)
NOTE: In production, you would sign up in this developer portal to get your own user key.
ENDPOINT SUMMARY
The ADG API has three endpoints identified by the HTTP methods they accept, and their paths within the API’s URL:Method | Path | Purpose |
---|---|---|
GET | /health | API health check that returns an "OK" message. This is helpful to check that you’re able to authenticate with our web service. |
POST | /domain-mapper | Maps domain names from given text to structured company information. More details. |
POST | /merchant-mapper | Maps strings from transactional purchase text (e.g. credit card transactions) to structured company information. More details. |
POST | /product-mapper | Maps strings from product related text to structured company information. More details. |
POST | /pii-ident | Checks whether a given text has personal identifiable information (PII). More details. |
Schema
- All API access is over HTTPS.
- The API can be accessed securely at https://api-2445582026130.production.gw.apicast.io/
- All I/O (request or response body data) is in JSON format.
Authentication
The API uses basic HTTP authentication via the X_user_key URL query param. This user key is a token string provided after sign up and log in in this developer portal.Once you have signed up, and set up your organization, any users you invite can use a shared key, visible API credentials section of the portal, to query our API within the limits of your org’s plan.
For example:
$ curl "https://api-2445582026130.production.gw.apicast.io/health?X_user_key=f816b9125492069f7f2e3b1cc60659f0" Replace f816b9125492069f7f2e3b1cc60659f0 for your own user key.ENDPOINTS
1 – Domain Mapper
Using this endpoint you can map a list of website addresses (containing domain names) to structured company information, such as: company name, financial ticker, related entities, etc.Endpoint
https://api-2445582026130.production.gw.apicast.io/domain-mapperQuery parameters
- X_user_key: The authentication key you receive when you sign up for the ADG API
Request
POST data
The POST body should contain a JSON array of domain names in the following format:
'["google.com", "www.amazon.com", "https://www.walmart.com/account/login", "etc"]'
Limitations
- Up to 1 query strings are accepted per request.
- Each domain name string can be up to 127 characters in length.
Response
Response The response will have a 200 OK status and its body will contain an object with the results for each domain name (queries) in the same order as they were received. These results include as much information about the mapped merchant as possible.Key | Type | Description |
---|---|---|
Original Input | string | Input query ran through our process |
Company Name | string | The merchant’s most commonly used name; "The Company". Or "No Match / Small Business" if no match was achieved by /merchant-mapper; * "Domain Unreachable" in the case of /domain-mapper |
Aliases | string | Other names used to refer to the company |
Confidence | float | The confidence score for the main match is a numeric score in the range of 0.0 - 1.55 that our process assigns to the result |
Confidence Level | string | Either "low", "medium", or "high". Confidence levels are considered low below 0.41, "medium" at or above 0.41, and "high" at or above 0.75 |
Alternative Company Matches | string array | Any other company names that are also likely to be correct answers |
Related Entities | object array |
Any other companies that have a legal relationship with the company in key-value pairs with the
following format:
|
Ticker | string | Exchange ticker, if the company is publicly traded |
Exchange | string | Primary exchange where the company’s stock is traded, if public |
Ticker Company Name | string | Name of the company used in the exchange, if public |
Other possible responses
- 401 Unauthorized - Authentication Error: The X_user_key query param contains an invalid value.
- 403 Forbidden - Authentication Missing: The request doesn’t include a X_user_key query param.
- 405 METHOD NOT ALLOWED - This happens when the HTTP method is not POST
- 422 UNPROCESSABLE ENTITY - Validation error: There was a problem with the data submitted in the request. A detailed message of the problem will be included with the response.
Example
Results for domain name aloftnewyorkbrooklyn.com:$ curl -X POST "https://api-2445582026130.production.gw.apicast.io/domain-mapper?X_user_key=f816b9125492069f7f2e3b1cc60659f0" -d'["aloftnewyorkbrooklyn.com"]'
[ { "Original Input": "aloftnewyorkbrooklyn.com", "Company Name": "Marriott International", "Aliases": [ "marriott", "Marriott Hotels & Resorts" "Marriott International Inc" "Marriott Internationals, Inc." ], "Confidence": 1, "Confidence Level": "High", "Alternative Company Matches": [], "Related Entities": [ { "Name": "Residence Inn by Marriott", "Closeness Score": 3.55 }, { "Name": "Courtyard", "Closeness Score": 3.3 }, { "Name": "Starwood", "Closeness Score": 3.18 }, ... ], "Ticker": "MAR", "Exchange": "NASDAQ" "Ticker Company Name": "MARRIOTT INTERNATIONAL" } ]
2 – Merchant Mapper
Using this endpoint you can map a list of raw text (e.g. anonymized credit card transactions, online purchasing data, or email receipts) to structured company information, such as: company name, exchange ticker, related entities, etc.Endpoint
https://api-2445582026130.production.gw.apicast.io/merchant-mapperQuery parameters
- X_user_key: The authentication key you receive when you sign up for the ADG API
Query headers
- X-Input-Type:company name "company name" is a litteral, spelled out. Improves the accuracy if the input data contains only company names, no other miscellaneous text.
Request
POST data
The POST body should contain a JSON array of raw text in the following format: '["Google playstore purchase", "AMZN MARKETPLACE", "Discounted value brand from Wal*Mart", "etc"]'
Limitations
- Up to 1 query strings are accepted per request.
- Each input string can be up to 127 characters in length.
Response
Given a correctly authenticated and formatted POST request, the response will have a 200 OK status and its body will contain a JSON structure with the results for each input raw text (queries) in the same order as they were received. These results include as much information about the mapped merchant as possible.Same format and possible responses as Domain Mapper
Example
Results for the transaction text Purchase #xx255xx WORLDGATE 9 THEATRES HERNDON VA :$ curl -X POST "https://api-2445582026130.production.gw.apicast.io/merchant-mapper?X_user_key=f816b9125492069f7f2e3b1cc60659f0" -d'["#xx255xx WORLDGATE 9 THEATRES HERNDON VA"]'
[ { "Original Input": "Purchase #xx255xx WORLDGATE 9 THEATRES HERNDON VA", "Company Name": "AMC", "Aliases": [ "AMC Entertainment Holdings Inc", ], "Confidence": 0.84, "Confidence Level": "High", "Alternative Company Matches": [], "Related Entities": [ { "Name": "AMC Theatres", "Closeness Score": 3.55 }, { "Name": "Carmike Cinemas", "Closeness Score": 3.0 }, ... ], "Ticker": "AMC", "Exchange": "NYSE" "Ticker Company Name": "AMC ENTERTAINMENT HLDS" } ]
3 – PII Checker
Using this endpoint you can check a list of text to see whether any one contains personal identifiable information (PII). We conform to the Investment Data Standards Organization (IDSO) standards.Endpoint
https://api-2445582026130.production.gw.apicast.io/pii-identQuery parameters
- X_user_key: The authentication key you receive when you sign up for the ADG API
Request
POST data
The POST body should contain a JSON array of texts in the following format: '["Purchase *SQ Uber johndoe@gmail.com San Francisco, CA", "TRANSFER SENT TO +13475887943", "etc"]'
See also the curl statement under the example below.
Limitations
- Up to 1 query strings are accepted per request.
- Each input string can be up to 127 characters in length.
Response
Given a correctly authenticated and formatted POST request, the response will have a 200 OK status and its body will contain a simlpe JSON structure with the result of checking for PII in the given text.Same possible responses as Domain and Merchant Mapper methods.
Example
Results for the text Purchase *SQ Uber johndoe@gmail.com San Francisco, CA :$ curl -X POST "https://api-2445582026130.production.gw.apicast.io/pii-ident?X_user_key=f816b9125492069f7f2e3b1cc60659f0" -d'["Purchase *SQ Uber johndoe@gmail.com San Francisco, CA"]'
[ { "Original Input": "Purchase *SQ Uber johndoe@gmail.com San Francisco, CA", "PII Detected": true } ]
4 – Product Mapper
Using this endpoint you can map a list of raw text relating to product descriptions to structured company information, such as: company name, exchange ticker, related entities, etc.Endpoint
https://api-2445582026130.production.gw.apicast.io/product-mapperQuery parameters
- X_user_key: The authentication key you receive when you sign up for the ADG API
Request
POST data
The POST body should contain a JSON array of raw text in the following format: '["Nikon Coolpix", "iPhone 6", "etc"]'
Limitations
- Up to 1 query strings are accepted per request.
- Each input string can be up to 127 characters in length.
Response
Given a correctly authenticated and formatted POST request, the response will have a 200 OK status and its body will contain a JSON structure with the results for each input raw text (queries) in the same order as they were received. These results include as much information about the mapped merchant as possible.Same format and possible responses as Domain Mapper
Example
Results for the transaction text Purchase iPhone 6$ curl -X POST "https://api-2445582026130.production.gw.apicast.io/product-mapper?X_user_key=f816b9125492069f7f2e3b1cc60659f0" -d'["iPhone 6"]'
ACCOUNT PLANS / API RATE LIMITS
You may request a plan upgrade from the Applications page. Contact an ADG representative for more information about plan options and pricing.
STATUS CODES
We use the following standard HTTP status code groups:- 2XX - Success
- 4XX - Error originated in the client side (the user’s request)
- 5XX - Error occurred in the server side (internal to the API)