API Documentation
Overview
The ParadigmAPI platform provides unified access to a diverse universe of crypto datasets. Our data engines consume a uniquely broad collection of data sources well above and beyond the generic 2-300+ exchanges accessible through a CCXT type library. We process all of it through our meta models to identify the most accurate, stable and reliable data.
Paradigm serves:
- Raw and pre-calculated data using conventional transformations for large historical and tabular sets
- Endpoints for curated content including research and related event timelines
- Complex and more advanced data including our scenario (risk, stress, growth) and portfolio allocation models
- Proprietary ‘mashup’ models for cross asset class, provider, industry analysis and meta integrity
- Datasets formatted to drive complex charts & visualizations
- In depth meta data on identifier, classification & taxonomy for thousands of crypto assets
- Endpoints for crypto specific metrics, valuation indicators, models and related benchmarks including definitions, formulas and use cases
We strive to serve pre-transformed, accurate and easily consumable datasets for a user accessing through a tabular BI interface (ie spreadsheets, charting tools). This means we dedicate substantial resources to maintaining complex daily data cycles while handling errors unique to crypto data.
Paradigm is designed to integrate natively and be easy for anyone to query through:
- REST API (can be called in browser)
- Web console sandbox
- Excel, Googlesheets, Plot.ly, Power BI, Python and others
- GraphQL (advanced users only)
Our backend and full stack integration allows us to scale real time and almost infinitely for enterprise level customers with specific needs (please contact us here if that’s you).
Our goal is to make difficult, non conforming crypto data easily accessible and consumable to all user types through familiar tools and methods.
We designed our API console sandbox to allow users to query live crypto data, test scenarios and parameters, consume content and visualizations and download all of it without having to sign up or leave the page.
Getting Started
Welcome to the Paradigm API platform! The primary Paradigm API uses HTTPS verbs and a RESTful
endpoint structure, designed to make it easy to request data of different types. Depending on your access level, authentication for requests may vary from nothing (free account), using your unique API key, basic authentication (administered over HTTPS) or 2FA and OAuth token authentication. Responses are delivered in JSON format by default but may also be returned in .CSV, .TSV or otherwise where available.
Paradigm API v(1.0.0)
E-mail: support@paradigmapi.com
Terms of Service
Sign Up
Authentication
You can subscribe to one of our plans here: https://docs.paradigmapi.com/resources/pricing Please keep your API key secure at all times! Do not store or share your secret API key in publicly accessible areas such as chats, GitHub, client-side code, emails or similar. If you feel like your account and/or API key have been compromised contact us immediately (support@paradigmapi.com) and we will block then reset your credentials.
API Server URL
The Paradigm API runs at https://api.paradigmapi.com/v1
Access Points
Paradigm provides multiple different API methods for flexible access:
Console
all Paradigm endpoints can be queried live and for free directly from the console including sample downloads in .CSV, .JSON formats.REST API
endpoints for data including asset profiles, taxonomies, historical prices, blockchain metrics, alternative data, scenario models and research.GraphQL
interface for experienced users including full parameterized query access to our biggest and most advanced datasets and models.Flat files
(including .CSV, .JSON, .TSV) for bulk download, historical backtesting, ML and AI applications. All endpoints can be queried with the parameter filter&format=csv
to return results in a .csv file format (example: https://api.paradigmapi.com/v1/paradigm/ta-cur?subscription-key=YOURKEY&format=csv)
Response Codes
The Paradigm API uses standard HTTP status codes to indicate success or failure of an inbound request.
200
represents success4xx
represents a user error (such as a problem with your access key, rate limit, or query)5xx
represents a problem with our API
There will also be a corresponding JSON payload with a data error message field
Response Codes Reference
CODE | MEANING |
---|---|
200 |
OK – Everything worked as expected |
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 |
Too Many Requests – You have hit a limit. See limits |
500 |
Internal Server Error – We had a problem with our server. Try again later. |
503 |
Service Unavailable – You have hit your throttle limit or Paradigm may be experiencing high system load. |
Rate limit
You may get the following error message if you go over your rate limit:
{
"statusCode": 429,
"message": "Rate limit is exceeded. Try again in [N] seconds or upgrade your account.",
"Response": "Error",
"RateLimit": {
"calls_made": {
"second": 53,
"minute": 915,
"hour": 63283,
"day": 127321,
"month": 6720577,
"total_calls": 29374377
},
"max_calls": {
"second": 50,
"minute": 2000,
"hour": 100000,
"day": 1500000,
"month": 15000000
}
},
"Data": {}
}
Parameters & Filters
Query Parameters
Query parameters can be found within each API console in the left tabbed section titled API Parameters. Each endpoint will include specific full string examples.
- Supported global parameters include:
limit
,page
,sort
,order
andexcl_cols
- Parameter values must be comma-delimited when requesting multiple unique identifiers or objects.
- example:
?symbol=BTC,ETH
is correct
- example:
- Case does not matter when passing values to a parameter unless specified in the docs.
- example: both
?symbol=btc
and?symbol=BTC
will work
- example: both
- Multiple parameters may be used to narrow query results by appending each subsequent filter with
&[parameter]=
Query Operators
Most endpoints support filtering to return a subset of data. Operators can be found within each API console in the left tabbed section titled API Parameters. Each endpoint will include specific full string examples.
- Supported global operators include:
range
,~
,logical
,null
,not_null
- Operator values must be comma-delimited when requesting multiple filters or ranges.
- example:
?sma200=100:200&sma50=50:150
is correct - example:
?category=~pol
and?category=~pol,~cor
are both correct
- example:
- Multiple operators may be used to narrow query results by appending each subsequent filter with
&[operator]=
- example: https://api.paradigmapi.com/v1/paradigm/ta-his-day?change180=0.5:&change365=1:&change90=0.25:&change50=0.1:
- *Note:
range
operators may be used with open ended colons to query for greater than or less than (example:&sma200=100:
will return sma200 values greater than 100)
- Word stemming allows the like
~
operator to search across multiple derviations of the same root word by passing only the root stem of the word.- example: https://api.paradigmapi.com/v1/paradigm/mod-tl-scn-benchmarks-his?category=`~pol,~cor` will return results for all category types beginning with “pol” or “cor” (policy postive, policy negative, corporate integration, corporate ban etc)
- example: https://api.paradigmapi.com/v1/paradigm/mod-tl-scn-benchmarks-his?category=regulatory will only return results for data specifically tagged as regulatory
- example: https://api.paradigmapi.com/v1/paradigm/mod-tl-scn-benchmarks-his?category=`~reg` will return results for categories regulation, regulatory, regulator
- Logical Operators allows you to dynamically filter using logical expressions for one parameter relative to another
[sma200D]=:[sma50D]
- example: https://api.paradigmapi.com/v1/paradigm/ta-chain-his-day?[txCountChg5]=:[feesChg5]&symbol=btc will return data for days when
BTC's 5D average percent change in daily transaction count
was equal to or less than its5D average percent change in daily transaction fees
(so find periods when BTC’s daily transactions were increasing while fees were decreasing at the same time) - example: https://api.paradigmapi.com/v1/paradigm/ta-his-day?[sma200D]=:[sma50D]&symbol=btc will return days when
BTC's 200D moving average was equal to or less then its 50D moving average
(commonly referred to as a cross in technical trading) - Currently only available with numerical data and some dates
- example: https://api.paradigmapi.com/v1/paradigm/ta-chain-his-day?[txCountChg5]=:[feesChg5]&symbol=btc will return data for days when
Example Responses
- All Paradigm Unified APIs are OAS (aka Swagger) 2.0/3.0 compliant
- All Paradigm Crypto API library definitions are OAS (aka Swagger) 2.0/3.0 compliant
Response Metadata
Each successfully returned API response will include (by default*) a meta header and footer each containing data about the dataset returned including:
(header): error
, response_time
, results_returned
, result
, data:{}
(footer): datetimeUTC
, metadata
, fetch_meta_time
, fetch_data_time
, next(page_url)
, prev(page_url)
, page
, page_size
(meta - optional*): row_count
, size_mb
, columns[array]
(metaColumns - optional*): column_name
, datatype
, max_length
, is_nullable
{
"error": false,
"response_time": 0.164,
"results_returned": 1000,
"result": {data}
"metadata": {
"column_meta": [
{
"column_name": "symbol",
"datatype": "string",
"max_length": 50,
"is_nullable": true
},
{
"column_name": "datetimeUTC",
"datatype": "datetime",
"max_length": 8,
"is_nullable": true
},
{
"column_name": "open",
"datatype": "float",
"max_length": 8,
"is_nullable": true
},
{
"column_name": "high",
"datatype": "float",
"max_length": 8,
"is_nullable": true
},
{
"column_name": "low",
"datatype": "float",
"max_length": 8,
"is_nullable": true
}
]
},
"datetimeUTC": "2019-03-09 00:07:35",
"metadata": "true",
"fetch_meta_time": 0.171,
"fetch_data_time": 0.335,
"next": "https://api.paradigmapi.com/v1/paradigm/[endpoint]?sort=datetimeUTC&order=desc&page=1",
"prev": null,
"page": 0,
"page_size": 1000,
}
Pagination
For most of our crypto datasets there is too much information in our system to serve in a single request of reasonable size. Therefore we limit results to a certain number per request and provide you with paging information which can be used to retrieve the remaining pages of data. In the Web API, you will notice that most requests contain pagination by default. This is done for performance and consistency among other things.
Flat file downloads (where available) may have paging information as well, listed in the first row.
In order to request the next page of data, append a page_number parameter to your request:
https://api.paradigmapi.com/v1/[endpoint]
https://api.paradigmapi.com/v1/[endpoint]?page=2
https://api.paradigmapi.com/v1[endpoint]?page=3
Example API return response tail with next page number (full URL) pre-served:
},
"fetch_meta_time": 0.096,
"fetch_data_time": 0.013,
"next": "https://api.paradigmapi.com/v1/paradigm/co?limit=5&sort=symbol&order=asc&page=1",
"prev": null
}
NOTE: All Paradigm API pagination defaults to begin and start with
page=0
Notifications
Be sure to check our status status page for real time information on API endpoints. Also check the changelog changelog page periodically for updates.
API Portal Navigation
The API is integrated across our entire platform as well as other third party BI & analytics services. Each API endpoint and method console will have indicators for integrations or examples of these as displayed by small icons for the given service (ie Excel
, Power BI
, GoogleSheets
, Tableau
, Plot.ly
, Widgets
)
API Explorer
All Paradigm API endpoints, research content, charts, widgets and data can be found using the API explorer without typing, reading or even thinking. Get from question to answer in one click.
- Fully documented API endpoints
- Interactive charts, graphs & visual analytics
- Example templates & dashboards for Excel, Googlesheets, Plot.ly, Pythong and others
- Example models
- Example API cluster modules with full string queries
- Curated research content
- Hundreds of fully unified plug and play crypto API schemas
Console Sandbox
All Paradigm API endpoints can be dynamically queried using our query builder through the console (aka sandbox). Each console is a fully self contained testing environment pointed to live endpoints and data. Test, query, build and download for free.
- All of the relevant documentation
- Detailed list of parameters with examples
- Live sample charts
- Example scenarios with full string queries
- Example clusters with full string queries
- Relevant research content, charts & widgets