API-Documentation

Introduction

Welcome to REQPORTER API! We offer a wide selection of data feeds sourced by our own proprietary processes as well as from many partner companies.

This getting started guide presents:

an overview of the REQPORTER API for developers and others, with

examples of common use cases.

The available API-Endpoints can be found here:

https://www.reqporter.com/apis/

Each endpoint detail page includes a listing of parameters that can be used to build requests, and an example value for each parameter.

The endpoints are grouped first according to the resource path (API URL) section, and then by the content of their responses.

Getting Started

The REQPORTER API uses HTTPS verbs and a RESTful endpoint structure, which makes it easy to request data from our platform. Authentication is administered over HTTPS and the standard responses are delivered in JSON-format, according to the JSON API specification.

We provide a vast collection of free and open data collected from a variety of sources. You can use them without payment and in some cases with few restrictions. We also offer premium data that can only be accessed with a subscription. You can request access and subscribe to the individual premium data sets in your account section, when logged in.

How to get started? First, you'll need a free REQPORTER account:

After you log in to our platform, go to your ‘Account’ section and request access to the solutions/APIs you are interested in. Once you have been granted access, you can access the desired API-Endpoints.

The BASE_URL for the API is:

https://api.reqporter.com

Versioning

From time to time we will release new versions of the API when we make backwards-incompatible changes like adding new response attributes, changing endpoints or altering query parameters. We will give advanced notice before releasing a new version or retiring an old version.

Versions are added to the base url, for example:

https://api.reqporter.com/v1/

Beta versions will include a -beta, for example:

https://api.reqporter.com/v1-beta/

The current version is v1:

https://api.reqporter.com/v1/

Request Format

Requests are HTTP REST calls, following the JSON API specification. General and detailed example requests can be found in the authentication and corresponding endpoint sections.

Data Formats

The REQPORTER API returns data in JSON-formatted responses according to the JSON API specification.

JSON API responses represent resources in a REST-ful way, so they include URLs to related resources.

When a response contains more than a certain amount of results, the available data sets have pagination information and page links are available.

The HTTP response status code of 200 indicates that a request is well formed and valid. A status code of 401 indicates that API authorization is not authenticated, due to being invalid or a outdated API token was provided. The response message will give further indication to the reason for the error.

The standard responses are delivered in JSON-format. Numerous endpoints also support a format parameter to return data in a format other than the default JSON.

Supported data formats:

Format Content Type Example
json application/json ?format=json or by not passing the format parameter.

Additional formats like csv, xml, psv or txt are also available upon request.

Response Codes

REQPORTER API uses normal HTTP response codes to indicate the success or failure of an API request. A response code of 200 indicates success and codes in the 4xx range indicate an error that failed given the information provided, and codes in the 5xx range indicate an error.

The REQPORTER API uses the following error codes:

Code Meaning
200 OK – Everything worked as expected.
400 Validation – Your provided values fail to match the required pattern.
401 Unauthorized – Your User/Password API Keys are incorrect.
403 Forbidden – You are not subscribed to the data feed requested.
404 Not Found – The endpoint requested does not exist.
429 Request Limit reached – The rate limit of the endpoint was reached.
500 Internal Server Error – We had a problem with our server. Try again later.
503 Service Unavailable – You have hit your limit or our platform may be experiencing high system load.

Authentication

You must include a valid API token with every request in-order to access the individual API endpoints and corresponding data sets.

REQPORTER API authenticates your API requests using temporary API tokens. To use any REQPORTER API, you must pass a valid and active API token with each request to our platform. If you do not include your API token when making an API request, or use one that is incorrect, disabled or outdated, REQPORTER API returns an error. In general, the API token is valid for 60 minutes. Afterwards, you need to re-login. To get a temporary API token, you must first send your login credentials to the REQPORTER API login endpoint. When your log in is successful, you will receive a temporary API token as response:

HTTP Request (POST):

/* Login Process - Example */
request.post({
	headers: {
		"Content-Type": "application/json"
	},
	url: BASE_URL+"/v1/login",
	body: JSON.stringify({
		email: 'YOUR_EMAIL',
		password: 'YOUR_PASSWORD'
	})
}, (error, response, body) => {
	var getToken = JSON.parse(body).token;
	console.log(getToken);
});										

HTTP Response - Success (200):

/* Response Example - API token */
{
	"status": 200,
	"success": true,
	"token": api_token
}									

REQPORTER API uses header authentication. You must include your API token in the HTTPS request by specifying an authorization header with the value:

Bearer {api_token}

HTTP Request (POST):

/* Authentication Example - Get all LEI records */
var auth = 'Bearer '+getToken;
request.get({
	headers: {
		"authorization": auth
	},
	url: BASE_URL+"/v1/lei/search?"
}, (error, response, body) => {
	var jsonBody = JSON.parse(body);
	console.log(jsonBody)
});									

HTTP Response - Success (200):

/* Response Success Example - Get all LEI records */
{
	"status": 200,
	"error": null,
	"record_count": 100,
	"total_record_count": 1510264,
	"page_number": 1,
	"page_size": 100,
	"total_pages": 15103,
	"more_pages": true,
	"records": [
	   { ... }
	]
}											

HTTP Response - Error (401):

/* Response Authentication Error Example */
{
	"status": 401,
	"success": false,
	"message": {
	  "name": "Authentication Error",
	  "message": "Not authorized! Permission denied or invalid token!"
	}
}										

Account credentials and API tokens should be kept confidential at all times and only stored on your own server. Your account’s secret temporary API token can perform any API request you have been granted access to.

Protecting your API tokens:

Keep your account credentials and secret temporary API token safe. Your secret temporary API token can make any API call on behalf of your account, including changes that may impact billing. Do not store your account credentials and secret temporary API token in your version control system. Do not use your account credentials and secret temporary API token outside your web server, such as a browser, mobile app, or distributed file.

Monitor usage of your API for anomalies. If you observe unauthorized or abnormal usage, rotate your login credentials and temporary API token.

Do not embed login credentials and API tokens directly in code. Instead of directly embedding login credentials and API tokens in your application’s code, put them in environment variables or in include files that are stored separately from the bulk of your code—outside the source repository of your application. Then, if you share your code, the login credentials and temporary API tokens will not be included in the shared files.

Do not store API tokens in inside your application’s source control. If you store your login credentials and API tokens in files, keep the files outside your application’s source control system. This is particularly important if you use a public source code management system such as GitHub.

Limit access with restricted tokens. REQPORTER API console will allow you to specify the IP addresses or referrer URLs associated with each token, reducing the impact of a compromised API tokens.

Use independent login credentials and API tokens for different apps. This limits the scope of each token. If a login credential or an API token is compromised, you can rotate the impacted account and token without impacting other applications and API tokens.

Paging

In many occasions too much information is returned in a single request. To limit the results to a reasonable size and to a certain number per request, we provide paging meta information which can be used to retrieve the remaining pages of data. Endpoints that use paging will return 100 records per request. To receive more records per request, you may specify a pageSize (max. 250) parameter.

Search results in the API response can be paginated using the pageNum and pageSize parameters, for example:

/lei/search?pageNum=3&pageSize=200

Filtering

Most endpoints support sophisticated filter options. If applied, a subset of the data will be returned. The filtering vary as per data set and by parameters, as well as by syntax operator available for the specific endpoints. Please refer to the individual endpoints for the specific filter options available.

In general, the following operators can be used together with parameters to filter and build more specific queries:

Syntax Operator Description
MATCH parameter==abc Results must be "abc" of parameter.
NOT_MATCH parameter==!abc Results must not be "abc" of parameter.
MATCH_MULTIPLE parameter==abc,def Results must be any one of "abc", "def", etc. of parameter. Operators 'OR' and 'AND' available.
NOT_MATCH_MULTIPLE parameter==!abc,def Results must not be any one of "abc", "def", etc. of parameter. Operators 'OR' and 'AND' available.
GREATER_THAN parameter=>123 Results must be more than 123. Dates can be entered in the YYYY-MM-DD format.
GREATER_THAN_OR_EQUAL parameter=>=123 Results must be at least 123. Dates can be entered in the YYYY-MM-DD format.
LESS_THAN parameter=<123 Results must be less than 123. Dates can be entered in the YYYY-MM-DD format.
LESS_THAN_OR_EQUAL parameter=<=123 Results must be at most 123. Dates can be entered in the YYYY-MM-DD format.
LIKE parameter=abc Results contain “abc” of parameter.
NOT_LIKE parameter=!abc Results do not contain “abc” of parameter.
LIKE_MULTIPLE parameter=abc,def Results contain any one of "abc", "def", etc. of parameter. Operators 'OR' and 'AND' available.
NOT_LIKE_MULTIPLE parameter=!abc,def Results do not contain any one of "abc", "def", etc. of parameter. Operators 'OR' and 'AND' available.

Filtering Examples:

To search for an exact value use two equal == signs when filtering:

/* Results must be 'Daimler AG' of parameter 'legalName' */
/lei/search?legalName==Daimler AG

If the search results should contain a certain value, use a single equal = sign in your query:

/* Results contain 'ETF' of parameter 'legalName' */
/lei/search?legalName=ETF

If the search result should not contain a certain value, use a single equal and an exclamation =! sign:

/* Results do not contain 'Foundation' of parameter 'legalName' */
/lei/search?legalName=!Foundation

Use comma separation , when filtering for multiple values of a parameter:

/* Results contain 'BlackRock' OR 'ETF' of parameter 'legalName' */
/lei/search?legalName=BlackRock,ETF

To change the operator (default is 'OR') when searching for multiple values of a parameter, attach [and] or [or] to the values:

/* Results contain 'BlackRock' AND 'ETF' of parameter 'legalName' */
/lei/search?legalName=BlackRock,ETF[and]

Filtering of parameters can also be combined. Use the special character & to combine them, for example:

/* Results contain 'BlackRock' of parameter 'legalName' AND 'ACTIVE' of parameter 'entityStatus' */
/lei/search?legalName=BlackRock&entityStatus==ACTIVE

To change the operator (default is 'AND') when searching for multiple parameters, attach parameter operator with value and or or to your query:

/* Results contain 'BlackRock' of parameter 'legalName' OR 'ACTIVE' of parameter 'entityStatus' */
/lei/search?legalName=BlackRock&entityStatus==ACTIVE&operator=or

Please refer to the individual endpoints for the specific filter options available

Request Limits

REQPORTER API applies reasonable request limits to ensure stability of our service to all users. These request limits can vary based on the API-endpoint you are accessing and in some instance depending on the subscription chosen. If you reach a request limit, the response will contain a 429 code and an explanation of the limit.

HTTP Response - Error (429):

/* Response Request Limit Error Example */
{
    "status": 429,
    "success": false,
    "message": {
        "name": "Rate limit error",
        "message": "Rate limit reached! We are sorry! Number of requests reached your limit! Please retry in 120 second(s).",
        "retrySecs": 120
    }
}							

Available Request Limits:

Daily Request Limits

Support

If you find any issues with our API or have any questions, please contact us:

If your account includes support, you’ll find additional support options when logged in to your account.


Get started for free

Getting started is easy and for free. While some data sets and APIs are free to use, for others a registered user needs to have an appropriate license. Register for free and get started:

Get started for free

Monetize your data

Ready to unleash and monetize the full potential of your data? We provide you the digital infrastructure, network and expertise to promote, match and deliver your data into the market and to your target audience.

Get in touch