Free Fake Cryptocurrency Api Sandbox

Free fake cryptocurrency api sandbox

Our cryptocurrency data API powers the Internet's most dynamic startups, brands and organizations.

Introduction

Welcome to the CoinAPI developer documentation. This document should contain all the information required to properly implement applications using our API.

There are 3 main interfaces that can be used to access CoinAPI:

APICommunicationDescription
RESTfulRequest-responseStateless API providing the widest range of data, not capable of streaming, only pooling.
WebSocketPublish-subscribeStateful API providing streaming of realtime market data.
FIXPublish-subscribeStateful API providing streaming of realtime market data, widely adopted by the finance industry.

Sandbox

Each of the interfaces has production and sandbox endpoint for development and non-production use-cases.

Sandbox environment has few differences in comparison to the production one:

  1. You still need active API Key to access sandbox.

    Free fake cryptocurrency api sandbox

    To access REST or WebSocket protocol any active key will be sufficient (can be free one or paid one), but to access FIX API sandbox you need any paid one.

  2. We do not provide any support or SLA for this environment.
  3. You cant query for the historical data more than one day back.
  4. The limit parameter default and the maximum value is set to 10.
  5. Real-time and historical data is limited to GEMINI exchange + other exchanges which are not yet live, but in the stability testing or development phase.
  6. Data could be invalid/fake or delayed.
  7. API changes could be visible faster on the sandbox than in production.

SDK

Our Software Development Kit (SDK) is available on GitHub at https://github.com/coinapi/coinapi-sdk.

If possible then we are strongly recommending using our tested libraries available on GitHub, rather than creating new ones.

FAQ - Free Cryptocurrency & Airdrops

However, if you decide to create your own implementation or to change existing one, then we encourage you to create Pull Request to our main repository with proposed changes, then we will able to include your code in our official repository for use by other users, effectively creating collaboration.

In repository you can find libraries or examples for languages or enviroments like:

  • R
  • Matlab
  • C#
  • C++
  • .NET
  • Java
  • Ruby
  • Go
  • JavaScript
  • TypeScript
  • Node.js
  • PHP
  • Haskell
  • Objective-C

Security

Encryption in CoinAPI is not optional.

All communication to us is always encrypted using protocols that are considered best security practices.

You should assume that we are always providing certificates signed by Trusted Certification Authority.

Standards and conventions

This section represents used standards and conventions across all documents and API’s.

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119.

Variables naming

All variables are named using the Snake case (or ) naming convention. This means that words are separated by a single underscore character, no spaces are used, and letters are lowercase.

Asset codes

ISO 4217 currency code standard is used for fiat money identifications.

Cryptocurrency assets are identified using codes used by the general public or adopted by the majority of exchanges.

Numbers precision

Numbers in our platform can have maximum 19 digits overall, but no more than 9 decimal places.

In cases when number representing aggregate value then we allowing 38 digits overall, but still no more than 9 decimal places.

Time

For all input and output time values ISO 8601 standard is used.

Format specifierDescription
The year as a four-digit number.
The month, from 01 through 12.
The day of the month, from 01 through 31.
The hour, using a 24-hour clock from 00 to 23.
The minute, from 00 through 59.
The second, from 00 through 59.
The milliseconds in a date and time value.
The ten millionths of a second in a date and time value.

Input time values are parsed using the following formats as far as possible:

    When time zone information is not supplied, we will assume the UTC time zone.

    Output time values are formatted using the following patterns:

      All time values we provide are UTC time zone.

      Complete ticker

      Do not assume otherwise.

      REST API

      General

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

      Endpoints

      Production endpoint, requires API key for authentication and providing real data:
      Sandbox endpoint: or

      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.

      Authorization

      To use resources that require authorized access, you will need to provide an API key to us when making HTTP requests.

      There are 2 methods for passing the API key to us, you only need to use one:

      1. Custom authorization header named
      2. Query string parameter named

      You can authorize by providing additional custom header named and API key as its value.

      Assuming that your API key is , then the authorization header you should send to us will look like:

      This method is recommended by us and you should use it in production environments.

      Query string authorization parameter

      You can authorize by providing an additional parameter named with a value equal to your API key in the query string of your HTTP request.

      Assuming that your API key is and that you want to request all exchange rates from asset, then your query string should look like this:

      Query string method may be more practical for development activities.

      HTTP Requests

      Each HTTP request must contain the header as all our responses are in JSON format.

      We encourage you to use the HTTP request header for all requests.

      Built for FinTech Developers

      This will indicate to us that we can deliver compressed data to you which on your side should be decompressed transparently.

      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.

      Free fake cryptocurrency api sandbox

      HTTP Success

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

      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:

      All HTTP requests with response status codes different to 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.

      Bitcoin 101 - Calling All APIs - Coding Live Price Data From Bitcoin Exchanges

      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.
      Good practice is to store all error messages somewhere along with request data for further manual review.

      Request limits

      Any authenticated endpoint is providing (in HTTP response headers) information about the current state of the limits associated with API Key.

      Free fake cryptocurrency api sandbox

      The number of requests available to execute is calculated from the last 24-hour usage using the rolling window method.

      For example at the 2019-08-22 13:00 UTC value of the requests remaining (X-RateLimit-Remaining) will be equal to the allocated quota (X-RateLimit-Limit) decreased by the sum of the request costs (SUM(X-RateLimit-Request-Cost)) executed in the period 2019-08-21 13:00 UTC - 2019-08-22 13:00 UTC (last 24 hours).

      A request is deemed to be a single one if the limit query parameter on the endpoint isn’t available, isn’t used or it’s stated otherwise in the API documentation.

      Free fake cryptocurrency api sandbox

      Otherwise — if the limit query parameter is available and is used — then each of the 100 data points returned in the response is counted as one request.

      HTTP HeaderTypeDescription
      X-RateLimit-LimitintRequest limit allocated.
      X-RateLimit-RemainingintThe number of requests left at the moment based on the last 24-hour usage.
      X-RateLimit-Request-CostintThe number of requests used to generate current HTTP response.
      X-RateLimit-ResettimestringThe time when all provisioned requests are available to execute again if no more requests will be executed.

      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 variable in query string parameters.

      URL Parameters

      ParameterTypeDescription
      output_formatstringOutput data format (optional, default value is , possible values are , or )
      csv_include_headerboolIgnore header line in CSV output?

      (optional, default value is , to include CSV header line, otherwise)

      csv_include_quotesboolEncapsulate strings with quotes in CSV output? (optional, default value is , to encapsulate all strings with , 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 for unix timestamp (optional, default value is )
      csv_set_newlinestringNew line type (optional, default value is , possible values , , )

      Metadata

      List all exchanges

      The above command returns JSON structured like this:

      Get a detailed list of exchanges provided by the system.

      HTTP Request

      Output variables

      VariableDescription
      exchange_idOur exchange identifier
      websiteExchange website address
      nameDisplay name of the exchange
      data_startThe date of first data point.
      data_endThe date of last data point.
      data_quote_startThe date and time of first quote.
      data_quote_endThe date and time of last quote.
      data_orderbook_startThe date and time of first order book.
      data_orderbook_endThe date and time of last order book.
      data_trade_startThe date and time of first trade.
      data_trade_endThe date and time of last trade.
      data_symbols_countThe count of all symbols within exchange.
      volume_1hrs_usdThe usd volume sum of all symbols for 1 hour period.
      volume_1day_usdThe usd volume sum of all symbols for 1 day period.
      volume_1mth_usdThe usd volume sum of all symbols for 1 month period.

      List all exchange icons

      Gets the list of icons (of the given size) for all the exchanges.

      HTTP Request

      Output variables

      VariableDescription
      exchange_idOur exchange identifier.
      urlThe url of icon.

      List all assets

      The above command returns JSON structured like this:

      Get detailed list of assets.

      HTTP Request

      Output variables

      VariableDescription
      asset_idOur asset identifier.

      Superset of the ISO 4217 currency codes standard.

      nameDisplay name of the asset.
      type_is_cryptoBoolean value transported as integer; for cryptocurrency assets, otherwise.
      data_quote_startThe date and time of first quote.
      data_quote_endThe date and time for last quote.
      data_orderbook_startThe date and time for first order book.
      data_orderbook_endThe date and time for last order book.
      data_trade_startThe date and time for first trade.
      data_trade_endThe date and time for last trade.
      data_quote_countThe count of quotes.
      data_trade_countThe count of trades.
      data_symbols_countThe count of symbols for given asset.
      volume_1hrs_usdThe usd volume sum within 1 hour for all the symbols.
      volume_1day_usdThe usd volume sum within 1 day for all the symbols.
      volume_1mth_usdThe usd volume sum within 1 month for all the symbols.
      price_usdThe actual usd price.
      Our asset identifiers are aligned with the ISO 4217 currency codes standard only for fiat money (government or law regulated currency).

      Is cryptocurrency blockchain the same thing

      List all asset icons

      Gets the list of icons (of the given size) for all the assets.

      HTTP Request

      Output variables

      VariableDescription
      asset_idOur asset identifier.
      urlThe url of icon.

      List all symbols

      The above command returns JSON structured like this:

      Get detailed list of all symbols.

      HTTP Request

      URL Parameters

      ParameterTypeDescription
      filter_symbol_idstring[]Comma or semicolon delimited parts of symbol identifier used to filter response.

      (optional, full list available here)

      Common output variables

      VariableDescription
      symbol_idOur symbol identifier, see table below for format description.
      exchange_idOur identifier of the exchange where symbol is traded.
      symbol_typeType of the symbol.

      Valid values:

        asset_id_baseFX Spot base asset identifier, for derivatives it’s contact underlying (e.g. for BTC/USD)
        asset_id_quoteFX Spot quote asset identifier, for derivatives it’s contract underlying (e.g.

        for BTC/USD)

        asset_id_unitIdentifier of the symbol unit asset used to denominate: transactions and order books volume (optional, if not provided then data is denominated in )
        data_startDate of the first data point
        data_endDate of the last data point
        data_quote_startThe date and time of first quote.
        data_quote_endThe date and time of last quote.
        data_orderbook_startThe date and time of first order book.
        data_orderbook_endThe date and time of last order book.
        data_trade_startThe date and time of first trade.
        data_trade_endThe date and time of last trade.
        volume_1hrsLast 1 hour volume denominated in symbol unit asset
        volume_1hrs_usdLast 1 hour volume in
        volume_1dayLast 1 day volume denominated in symbol unit asset
        volume_1day_usdLast 1 day volume in
        volume_1mthLast 1 month volume denominated in symbol unit asset
        volume_1mth_usdLast 1 month volume in
        priceThe current price.

        Symbol identifier

        Our symbol identifier is created using a pattern that depends on symbol type.

        Type pattern
        SPOT
        FUTURES
        OPTION
        PERPETUAL
        INDEX
        In the unlikely event when the “symbol_id” for more than one market is the same.

        6 Comments

        We will append the additional term (prefixed with the “_”) at the end of the duplicated identifiers to differentiate them.

        Symbol types list (enumeration of output variable)

        TypeNameDescription
        SPOTFX SpotAgreement to exchange one asset for another one (e.g.

        Buy BTC for USD)

        FUTURESFutures contractFX Spot derivative contract where traders agree to trade fx spot at predetermined future time
        OPTIONOption contractFX Spot derivative contract where traders agree to trade right to require buy or sell of fx spot at agreed price on exercise date
        PERPETUALPerpetual contractFX Spot derivative contract where traders agree to trade fx spot continously without predetermined future delivery time
        INDEXIndexStatistical composite that measures changes in the economy or markets.

        Additional output variables for

        VariableDescription
        index_idIndex identifier
        index_display_nameHuman readable name of the index (optional)
        index_display_descriptionDescription of the index (optional)

        Additional output variables for

        VariableDescription
        future_delivery_timePredetermined time of futures contract delivery date in ISO 8601
        future_contract_unitContact size (eg.

        10 BTC if = and = )

        future_contract_unit_assetIdentifier of the asset used to denominate the contract unit

        Additional output variables for

        VariableDescription
        future_contract_unitContact size (eg.

        10 BTC if = and = )

        future_contract_unit_assetIdentifier of the asset used to denominate the contract unit

        Additional output variables for

        VariableDescription
        option_type_is_callBoolean value representing option type.

        Best trending forex pairs and indices

        for Call options, for Put options

        option_strike_pricePrice at which option contract can be exercised
        option_contract_unitBase asset amount of underlying spot which single option represents
        option_exercise_styleOption exercise style.

        Can be or

        option_expiration_timeOption contract expiration time in ISO 8601

        Exchange rates

        Get specific rate

        The above command returns JSON structured like this:

        Get exchange rate between pair of requested assets at specific or current time.

        HTTP Request

        URL Parameters

        ParameterTypeDescription
        asset_id_basestringRequested exchange rate base asset identifier.

        About Free Crypto

        Full list available here

        asset_id_quotestringRequested exchange rate quote asset identifier. Full list available here
        timetimestringTime at which exchange rate is calculated (optional, if not supplied then current rate is returned)

        Output variables

        VariableDescription
        timeTime in ISO 8601 of the market data used to calculate exchange rate
        asset_id_baseExchange rate base asset identifier
        asset_id_quoteExchange rate quote asset identifier
        rateExchange rate between assets
        If you are using an exchange rate for mission-critical operations, then for best reliability, you should measure the difference between current time and the time returned from the response to ensure that value of the difference between those meets your internal requirements.

        Get all current rates