Skip to main content
Skip table of contents

API

This document describes how to use the Denominator API to retrieve data on scores and ratings from Denominator and to instruct Denominator to execute actions. This overview section presents a list of all available function calls.

Before using the API, it is recommended to read the General Information section.

Use of the API 

The Denominator API is typically used to retrieve Denominator’s data and scores in a fast and reliable way for integration into clients existing software, data infrastructure, and/or business processes.  

Users of the API can for example 

  • Retrieve a company’s DEI performance scores. This applies to both aggregated scores as well as the sub-dimension of DEI like Gender, Race/Ethnicity, Age, and more. 

  • Retrieve core reference data on the company like address, type, ticker, status, and more 

  • Retrieve raw DEI data on companies such as: does the company have a DEI policy, what is their Gender target, what is the retention rate, etc. 

  • Retrieve company DEI ratios such as Female share in Middle Management, Education level of Board, Race/Ethnicity composition of Executives, and more.  

Glossary of Terms

Term

Definition 

URI 

Universal Resource Identifier – a pointer to a web resource 

HTTP 

HyperText Transfer Protocol – the application layer networking protocol by which the World Wide Web operates. 

GET 

HTTP method to retrieve data from a server 

POST 

HTTP method to send data to a server (and, in this case, to retrieve a response based on that data) 

JSON 

JavaScript Object Notation – a standard data-interchange format 

The API is a REST API. We utilize Amazon Web Services (AWS) Lambda functions to pass data to and from the database, through HTTP GET and POST requests.

General Information

Base URI

All customers are assigned the same Base URI: https://externalapi.denominator.one/

Session Authentication Token

Every call to the API requires the use of a per-session authentication token. The token is obtained by calling the Login function before calling any other function during a particular session. The returned token must be included in the x-api-token field in the header of every subsequent call to the API (see boldface text in the response section of the User Login API call below).

  • Authorization-Token: a JSON Web Token   

  • Accept: application/json 

  • Content-Type: application/json 

Data Types

All data values passed to/from the API are of one of the following data types: 

Number 

An integer of arbitrary length 

String  

A string of alphanumeric characters of arbitrary length 

Array 

A list of numbers or strings, e.g.- [ “alpha”, “bravo”, “charlie” ] 

JSON Object 

A comma-separated list of key:value pairs, where the key is a string and the value may be a number, string, array, or object. 

Input Parameters

Where applicable, our API supports query string parameters (separated from the URI by a ‘?’ and from each other by ‘&’) for GET requests and/or a valid JSON object in the body for POST requests.

Response Parameters

Responses are limited to 5000 entries per page, plus an AWS-enforced reply timeout of 29 seconds and max payload size of 6 MB.  

No more than 10,000 API requests per second are accepted globally, excessive requests will be throttled. Server-less architecture with additional backend instances to spin up on a per method basis to address load on a particular API call. 

Some responses may include a pagination block, which includes:

  • pageSize – the maximum number of entries returned per response

  • pageIndex – the index (0-based) of the current response

  • pageNumber – the number (1-based) of the current response

  • pageCount – the total number of pages (1-based) available for the current query

Empty Response

An empty response from the DEI Search function indicates that the inputs were recognized as valid, but that no data exists. e.g.

    "companies": [], 

    "pagination": { 

        "pageSize": 5000, 

        "pageIndex": 0, 

        "pageNumber": 1, 

        "pageCount": 0 

    } 

An empty response from the User Login or Request Columns List is not useful and may indicate a problem on the server side. 

All general functions are called by appending the function name to the URL prefix

General Functions

User Login

URI 

https://externalapi.denominator.one/v1/login

HTTP Method 

POST 

Request Structure 


    "username": "string", 
    "password": "string" 

 

Response Structure 


    "token": "string" 

 

Sample Request 


    "username": "test_user", 
    "password": "mypassword" 

 

Sample Response 


    "token": "eyJhbGciOiJIUz" 

 

DEI Search

Used to request company data for a specific set of columns. Array of requested columns is set to columns field of of request body object, and requested DEI IDs of a companies a passed to ids array there. Alternatively, one can use searchPrefix field containing a string prefix of a company name to look for company data. Pagination settings in request object are optional.

Datapoint values are always returned as strings. If a datapoint is a rate, percentage or other possibly non-integer value, it is rounded and formatted with two decimal places. If there could be multiple values for a single datapoint (for example, ISIN codes, stock index tickers, list of educational institutions attended by board members), they are formatted as comma-separated with a whitespace.

URI 

https://externalapi.denominator.one/v1/companies

HTTP Method 

POST 

Request Structure 

{
"ids": [
number,

number
],
"dataPoints": [
number,

number
],
"pagination": { 
        "pageSize": …,
        "pageIndex": …, 
    } 
}

Response Structure 

 

{
"companies": [
{
"id": number,
"name": "string",
"dataPoints": {
"string": "string",

"string": "string"
}
},

{
"id": number,
"name": "string",
"dataPoints": {
"string": "string",

"string": "string"
}
}
], "pagination": {
"pageSize": number,
"pageIndex": number,
"pageNumber": number,
"pageCount": number
}

}

Sample Request 

{
    "ids": [
        1974142,
        1974162
    ],

"dataPoints": [
        1000019,
        1000017,
        1000016,
        1000014,
        1000203,
        1000204,
        1000020,
        10200001,
        10200025,
        10200026,
        10200029
    ]
}

 

Sample Response 

{
"companies": [
{
"id": 1974142,
"name": "ASANA INC.",
"dataPoints": {
"1000000": "1974142",
"1000001": "ASANA INC.",
"1000014": "N/A",
"1000016": "N/A",
"1000017": "N/A",
"1000019": "United States",
"1000020": "N/A",
"1000204": "N/A",
"1000203": "N/A",
"10200001": "57.68",
"10200025": "73.76",
"10200026": "55.6",
"10200029": "91.29"
}
},
{
"id": 1974162,
"name": "DoorDash Inc.",
"dataPoints": {
"1000000": "1974162",
"1000001": "DoorDash Inc.",
"1000014": "N/A",
"1000016": "N/A",
"1000017": "N/A",
"1000019": "United States",
"1000020": "N/A",
"1000204": "N/A",
"1000203": "N/A",
"10200001": "57.7",
"10200025": "73.76",
"10200026": "55.6",
"10200029": "91.29"
}
}
],
"pagination": {
"pageSize": 10,
"pageIndex": 0,
"pageNumber": 1,
"pageCount": 1
}
}

Request Columns List

Used to request the datapoint IDs used for the “columns” field of the search request. 

URI 

https://externalapi.denominator.one/v1/metadata 

HTTP Method 

GET 

Required Header 

x-api-token 

Uses token from login response (see Session Authorization Token section above) 

Request Structure 

n/a 

Response Structure 

{
"companies": [
{
"id": number,
"name": "string",
"dataPoints": {
"string": "string",

"string": "string"
}
},

{
"id": number,
"name": "string",
"dataPoints": {
"string": "string",

"string": "string"
}
}
],
"pagination": {
"pageSize": number,
"pageIndex": number,
"pageNumber": number,
"pageCount": number
}
}

Sample Request 

n/a 

 

Sample Response 

    "dataPoints": { 

    "Legal name of Company": {         "name": "CompLegalName",         "id": 1000001,         "description": "Legal name of Company"     },     "Doing business as (DBA) name of Company": {         "name": "CompAKAName",         "id": 1000002,         "description": "Doing business as (DBA) names of Company"     },     "Previous name of Company": {         "name": "CompPreviousName",         "id": 1000036,         "description": "Previous name of Company"     },     "Company Website": {         "name": "CompWebsite",         "id": 1000006,         "description": "Company Website"     },     "Legal form of Company": {         "name": "CompLegalForm",         "id": 1000051,         "description": "Legal form of Company"     },     "Date of incorporation": {         "name": "CompIncorporationDate",         "id": 1000038,         "description": "Date of incorporation"     },     "DEI ID number": {         "name": "CompDEIID",         "id": 1000000,         "description": "Denominator's unique ID"     },     "Legal Entity Identifier": {         "name": "CompLEI",         "id": 1000020,         "description": "Legal Entity Identifier"     },     "Ticker symbol": {         "name": "CompTicker",         "id": 1000023,         "description": "Company ticker"     }

Request API Version

Used to request the version of the API implemented on the server. Could be used to determine if a new minor version of API was deployed.

URI 

https://externalapi.denominator.one/v1/version

HTTP Method 

GET

Required Header 

x-api-token 

Uses token from login response (see Session Authorization Token section above) 

Request Structure 

n/a 

Response Structure 


    "apiVersion": "string" 
}

 

Sample Request 

n/a 

Sample Response 


    "apiVersion": "d6cf76484" 
}

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.