Skip to main content
Version: v1

REST API

RESTful endpoint provides the widest range of data, based on HTTP protocol which works in Request-Reply scheme.

Implemented Standards:

Note: We adhere to the OpenAPI standards for documenting our API.

OpenAPI Specification

To access our API's OpenAPI specification, you can use the following link: OpenAPI v3

If you need to import the OpenAPI file into software like Postman, simply copy and paste the link below:

https://raw.githubusercontent.com/coinapi/coinapi-sdk/master/data-api/coinapi-marketdata-rest.yaml

Endpoints

EnviromentEncryptionValue
ProductionYeshttps://rest.coinapi.io/
ProductionNohttp://rest.coinapi.io/
info

For real-time market data streaming, you should use WebSockets. REST API only supports pooling, meaning you can periodically request the current market data state. In streaming, you subscribe and data or updates are delivered to you continuously.

General

If you want to learn how to authenticate to this API, you can find detailed instructions and guidance in authentication section of this documentation.

HTTP Requests

Each HTTP request must contain the header Accept: application/json as all our responses are in JSON format.

We encourage you to use the HTTP request header Accept-Encoding: deflate, gzip for all requests. This will indicate to us that we can deliver compressed data to you which on your side should be decompressed transparently.

tip

By allowing data compression you are lowering bandwidth requirements by approximately 80%. This is important for requesting large amounts of data or using WebSocket Streaming API, as we can deliver data to you faster and more effectively.

HTTP Success

Successful HTTP responses have the status code 200 and the body in a format according to documentation of the requested resource.

info

You should always check that your HTTP response status code is equal to 200, otherwise the requested was not successful.

HTTP Errors

Error message is returned in JSON structured like this:

{
"error": "Invalid API key"
}

All HTTP requests with response status codes different to 200 must be considered as failed and you should expect additional JSON inside the body of the response with the error message encapsulated inside it as shown in the example. We use the following error codes:

Error CodeMeaning
400Bad Request -- There is something wrong with your request
401Unauthorized -- Your API key is wrong
403Forbidden -- Your API key doesnt't have enough privileges to access this resource
429Too many requests -- You have exceeded your API key rate limits
550No data -- You requested specific single item that we don't have at this moment.
info

Good practice is to store all error messages somewhere along with request data for further manual review.

Output data format

By default we are using JSON output data format for all of our endpoints, you can control format of data by using output_format variable in query string parameters.

URL Parameters

ParameterTypeDescription
output_formatstringOutput data format (optional, default value is json, possible values are json, xml or csv)
csv_include_headerboolIgnore header line in CSV output? (optional, default value is true, true to include CSV header line, false otherwise)
csv_include_quotesboolEncapsulate strings with quotes in CSV output? (optional, default value is false, true to encapsulate all strings with ", false to leave them unquoted)
csv_exclude_colstringComma delimited list of column names to ignore in CSV output (optional, by default all columns are included)
csv_set_delimiterstringCharacter that will be used as column delimiter in CSV output (optional, default value is ;)
csv_set_dec_markstringCharacter that will be used as decimal separator in CSV output (optional, default value is .)
csv_set_timeformatstringFormat for datetime type in CSV output or unix for unix timestamp (optional, default value is yyyy-MM-ddTHH:mm:ss.fffffffZ)
csv_set_newlinestringNew line type (optional, default value is unix, possible values win, mac, unix)

Excel / G-Sheets

There are several ways to use data from our REST API inside the Excel, Google Sheets, or similar calculation sheet application. This section will do as best as possible to keep all information up to date on how you could load the data into these applications. Feel free to contact support if we are missing an option.

CSV download, import:

  1. Open the data in the CSV format from the browser eg. https://rest.coinapi.io/v1/exchangerate/USD?apikey=YOUR_API_KEY&invert=true&output_format=csv
  2. Save the data to the file with the .csv extension.
  3. Use the file saved and import it into the software.
  4. When configuring import, refer to the parameters like delimiter from the Output data format

The platform-independent way described above is based on CSV but could also be used in other formats like JSON and XML as long as the software support it, but the import procedure needs to be adjusted accordingly.

Microsoft Excel

  • Use PowerQuery to load the URL directly into the CSV import without saving the file locally.
  • Use the =WEBSERVICE function to load the API response directly into the sheet, but this will not parse the data; additional processing is required.

Google Sheets

  • Use =IMPORT function to load the REST API endpoint and automatically parse the CSV format data into the cells. eg. =IMPORTDATA("https://rest.coinapi.io/v1/exchangerate/USD?apikey=YOUR_API_KEY&invert=true&output_format=csv

OpenOffice Calc

  • Select the menu Insert -> Sheet From File, 2. In the Insert dialog, put the URL eg. https://rest.coinapi.io/v1/exchangerate/USD?apikey=YOUR_API_KEY&invert=true&output_format=csv in the File Name box at the bottom. Set the drop-down list next to that to Web Page Query and click Open. The Text Import dialog opens where you can change the defaults if needed.

Authentication

CoinApi API key needed to access the endpoints

Security Scheme Type:apiKey
Header parameter name:X-CoinAPI-Key