API Documentation

Connecting to and using the Paradigm API

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:

  1. Console all Paradigm endpoints can be queried live and for free directly from the console including sample downloads in .CSV, .JSON formats.
  2. REST API endpoints for data including asset profiles, taxonomies, historical prices, blockchain metrics, alternative data, scenario models and research.
  3. GraphQL interface for experienced users including full parameterized query access to our biggest and most advanced datasets and models.
  4. 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 success
  • 4xx 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.

  1. Supported global parameters include: limit, page, sort, order and excl_cols
  2. Parameter values must be comma-delimited when requesting multiple unique identifiers or objects.
    • example: ?symbol=BTC,ETH is correct
  3. Case does not matter when passing values to a parameter unless specified in the docs.
    • example: both ?symbol=btc and ?symbol=BTC will work
  4. 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.

  1. Supported global operators include: range, ~, logical, null, not_null
  2. 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
  3. Multiple operators may be used to narrow query results by appending each subsequent filter with &[operator]=
  4. 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.
  5. Logical Operators allows you to dynamically filter using logical expressions for one parameter relative to another [sma200D]=:[sma50D]

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.

The API explorer currently serves data & content objects including:
  • 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
For a comprehensive breakout of how to navigate the explorer, please see our guides & tutorials here.

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.

Each console has its own specific, default endpoint configured including:
  • 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
For a comprehensive breakout of how to navigate the console, please see our guides & tutorials here.