General
What is CoinAPI?

CoinAPI is a high-performance platform that provides a unified API to access both real-time and historical cryptocurrency market data. It integrates data from a wide range of cryptocurrency exchanges, offering developers and institutions:

  • A single access point for multiple exchange feeds
  • Both raw and normalized (preprocessed) data
  • Support for REST, WebSocket, FIX, and Flat File delivery
  • Low-latency infrastructure for time-sensitive applications

CoinAPI simplifies access to digital asset data, making it easier for users to build trading algorithms, analytics platforms, and enterprise-grade applications without needing to manage separate exchange integrations.

Is there an API endpoint to check my usage, or is it only visible on the dashboard?

Currently, CoinAPI does not provide a dedicated API endpoint for tracking usage metrics. The best way to monitor your usage is through the Customer Portal's dashboard, which offers real-time tracking and historical views of:

  • API credits used
  • Data transferred (Tier 1 & Tier 2 for WebSocket)
  • Flat Files usage
  • Billing activity

We recommend logging in to your Customer Portal and navigating to the Usage Metrics or Billing sections for the most accurate and up-to-date information.

Can I get a custom plan based on my data needs?

Yes, CoinAPI offers custom subscription plans tailored to meet specific data requirements and business needs. If your organization requires specialized data sets, higher rate limits, or unique integration support beyond the standard subscription offerings, you can reach out to our sales team to discuss a customized solution.

Are subscription payments executed automatically?

Yes, subscription payments are executed automatically on your primary payment method when the subscription remains active.

Are you planning to add an order exchange fee feature?

We have this in the product roadmap, but no date has been disclosed yet.

Can I get exchange wallet deposit and withdrawal status?

We currently don't have this feature. The majority of exchanges don't provide that information and because of that we can't make viable aggregation, but we are monitoring this opportunity.

Can I get the XML or CSV instead of the JSON output format?

Yes. Check the documentation for the output_format API parameter at https://docs.coinapi.io/market-data/rest-api#output-data-format (https://docs.coinapi.io/market-data/rest-api#output-data-format)

Can I have multiple API keys in one account?

Yes, it's possible to have multiple API keys for the same subscription. In the Customer Portal, navigate to API Keys > Create Standard API Key. It is important to note that the existence of each additional API Key for a subscription (enabled or disabled) above the plan quota is charged 1 USD per day, with a minimum of one day.

Using multiple API keys helps improve security and manageability by allowing separation between environments (e.g., development, testing, production), tracking usage per product or service, isolating potential issues, and simplifying key rotation without impacting unrelated systems.

Can I have multiple subscriptions?

Yes, you may have multiple subscriptions.

Multiple subscriptions are commonly used when:

  • The software is shipped to multiple third-party's by the customer (eg. self-hosted software)
  • To separate environments inside the company (development, testing, staging, production)
  • To separate multiple independent production sites (EUROPE, ASIA, etc)
  • To separate multiple teams inside the company working on different features or products
Can I participate in the CoinAPI GitHub repository?

Yes, please do!

  1. Sign in on the GitHub
  2. Fork our main GitHub repository: https://github.com/api-bricks/api-bricks-sdk (https://github.com/api-bricks/api-bricks-sdk)
  3. Work on the changes and push them into your forked repository
  4. When you are ready to share the changes with us. Create "Pull Request” to our main repository with a short description of the changes.
Can I use the API commercially to show prices on my website?

Yes, CoinAPI can be used commercially.

As per our legal policy, the following is a non-exhaustive list of practices that would not be considered "Legitimate Use":

  1. Using our services for unreasonable workloads we determine (in our sole discretion) to be unrelated to the deployment and maintenance of your own services;
  2. Re-selling our services or parts thereof to another party;
  3. Using our services in a manner we determine (in our sole discretion) could cause harm to our services or another party; or
  4. Unusual usage patterns inconsistent with those we reasonably consider as normal use when compared to other customers.

More information can be found in our legal information here: https://www.coinapi.io/legal (https://www.coinapi.io/legal)

Can I use the API to show graphs, charts or tables?

Yes, you can use our data to display graphs, charts, or tables. The simplest way is to plug our data into any third-party charting library, for example:

  • https://www.highcharts.com/ (https://www.highcharts.com/)
  • https://www.amcharts.com/ (https://www.amcharts.com/)
  • https://www.vobcocharts.com/demos/getting-started (https://www.vobcocharts.com/demos/getting-started)
  • https://plot.ly/javascript/box-plots/ (https://plot.ly/javascript/box-plots/)
  • https://canvasjs.com/javascript-charts/candlestick-line-chart/ (https://canvasjs.com/javascript-charts/candlestick-line-chart/)
  • http://techanjs.org/ (http://techanjs.org/)
  • (http://recharts.org/)http://recharts.org (http://recharts.org)
  • https://uber.github.io/react-vis/examples/showcases/plots (https://uber.github.io/react-vis/examples/showcases/plots)
  • https://developers.google.com/chart/interactive/docs/gallery (https://developers.google.com/chart/interactive/docs/gallery)
Do you provide historical market data in flat files?

Yes, CoinAPI provides a dedicated Flat Files product that allows users to access and download large-scale historical crypto market data. This includes data such as trades, quotes, and limit order books (L2) from all supported exchanges. Files can be accessed via our S3-compatible API and downloaded in bulk by date, symbol, and exchange. Enterprise users can also request data delivery to their own Amazon S3 buckets.

Do you offer discount for University/non-profit/research-only usage?

We no longer offer discounts for University/Non-profit/Research-only usage. We will be happy to speak with you to discuss your requirements and the best plan & pricing that will fit your needs! Contact us here: https://www.coinapi.io/contact-us (https://www.coinapi.io/contact-us)

Do you have a Status Page?

Yes, we have a Status Page at: https://status.coinapi.io (https://status.coinapi.io/)

Does CoinAPI provide asset icons/images of the cryptocurrencies?

Yes, we do provide asset icons via REST API under the Metadata. More information can be found in our documentation here: https://docs.coinapi.io/market-data/rest-api/metadata/list-all-asset-icons (https://docs.coinapi.io/market-data/rest-api/metadata/list-all-asset-icons)

How can I set custom timezone in the data?

We do not support custom timezones, data is always processed in the UTC.

If you need to operate in the custom timezone then input and output values should be converted on the client-side before a request is sent to us or output data processed.

In the corner cases like OHLCV data on the higher than 1HRS periods (eg. 1DAY), you should execute queries only to the 1HRS period at the maximum and assemble higher periods like 1DAY on the client-side, as our 1DAY always starts and ends at the UTC midnight.

Does CoinAPI offer SLAs (Service Level Agreements) for enterprise clients?

Yes, CoinAPI provides Service Level Agreements (SLAs) tailored specifically for enterprise clients. These SLAs define key performance and reliability metrics to support mission-critical applications, including:

  • Guaranteed uptime and availability targets
  • Maximum response time thresholds
  • Dedicated support availability and escalation paths
  • Incident response and resolution timelines

SLAs are structured to meet the needs of high-throughput trading platforms, institutional users, and large-scale data consumers who rely on consistent and predictable API behavior.

To discuss SLA options and terms, please contact our sales team at:

https://www.coinapi.io/contact-us (https://www.coinapi.io/contact-us)

How long does it take to integrate CoinAPI?

You can generate an API Key via the Customer Portal. Once you have your API key, you can begin making requests immediately.

The actual integration time depends on the complexity of your project:

  • For simple use cases, setup can take as little as 5 minutes
  • For more complex systems (e.g., production-grade trading platforms or data pipelines), integration may take several days

Our SDKs, documentation, and sample code are designed to help accelerate the process, regardless of your environment or programming language.

Start here: (https://docs.coinapi.io/)https://docs.coinapi.io (https://docs.coinapi.io)

How can I be notified about CoinAPI issues or incidents?

To stay informed about service status, outages, or scheduled maintenance, CoinAPI provides a dedicated status page:

Status Page: (https://status.coinapi.io/)https://status.coinapi.io (https://status.coinapi.io)

We recommend subscribing to email notifications directly on the page to receive real-time alerts.

If you encounter an issue that is not reflected on the status page or disagree with its current content, please report it using our support form:

Submit a request: https://support.apibricks.io/hc/en-us/requests/new (https://support.apibricks.io/hc/en-us/requests/new)

Is there an SLA agreement available with CoinAPI?

Yes, CoinAPI provides a standard Service Level Agreement (SLA) for all paid plans. This covers key performance metrics such as uptime, availability, and support responsiveness.

If your organization requires a custom SLA, this is available through our Enterprise Plan. Custom SLAs can include specific commitments around latency, incident response times, and dedicated infrastructure options.

To discuss custom SLA requirements, please submit a request here:

https://www.coinapi.io/contact-us (https://www.coinapi.io/contact-us)

Should we file a support ticket every time we experience a problem?

Yes, your company should file a support ticket whenever an issue occurs. This is essential even if the problem seems temporary or intermittent.

Here’s why:

  • Your support SLA (if applicable) is only activated when a ticket is submitted.
  • Without a formal ticket, we cannot guarantee prioritization, investigation, or tracking of the issue.
  • If your plan does not include a service-level SLA, we do not monitor or proactively respond to issues unless they are reported.

For customers with custom SLAs, we track specific metrics and build infrastructure to meet those guarantees. For all other users, we rely on incoming tickets to understand what matters to your business.

Our process:

  • We continuously monitor infrastructure and act on system-level issues.
  • However, without ticket input, we may not detect or be accountable for individual cases that affect your workflow.
  • If needed, we expand monitoring and internal metrics based on patterns in submitted tickets.

To submit a ticket, use:

https://support.apibricks.io/hc/en-us/requests/new (https://support.apibricks.io/hc/en-us/requests/new)

What types of data does CoinAPI provide?

CoinAPI delivers a comprehensive range of cryptocurrency market data across multiple formats and timeframes. The data includes both raw and aggregated market information from hundreds of supported exchanges.

Available data types:

  • Metadata – Full metadata on supported trading pairs and instrument identifiers
  • Exchange and asset information – Details about connected exchanges and tradable assets
  • Quotes (Level 1) – Best bid/ask prices and sizes
  • Order books (Level 2) – Full depth of market including all visible bids/asks
  • Trades – Executed transaction data with price, size, and timestamp
  • Exchange rates – Aggregated volume-weighted rates across markets
  • OHLCV – Aggregated Open, High, Low, Close, and Volume data for timeframes starting at 1 second

This coverage supports a wide range of use cases—from algo trading and analytics to compliance, portfolio valuation, and backtesting.

Do you offer integration assistance or paid onboarding support?

Yes, CoinAPI offers integration assistance as part of our Enterprise Tier for the Market Data API and other services. This support can be tailored to your technical architecture, workflow requirements, and business objectives.

If you’re interested in hands-on onboarding, architecture reviews, or guided implementation, please contact our team to discuss the best setup for your use case.

Overview & Basics
What is Exchange Rate API?

The Exchange Rate API is a service offered by CoinAPI that provides real-time and historical exchange rate data for a wide range of cryptocurrencies and fiat currencies. This API is essential for developers and businesses that require accurate and up-to-date pricing information to power their applications, trading platforms, financial analytics, and more.

What are the exchange rates in crypto?

Exchange rates in cryptocurrency refer to the relative value or price of one cryptocurrency compared to another cryptocurrency or to fiat currencies. These rates are determined by:

  1. Market supply and demand
  2. Market depth and liquidity
  3. Trading pairs

Most common reference rates:

  • BTC/USD (Bitcoin to US Dollar)
  • ETH/BTC (Ethereum to Bitcoin)
  • ETH/USD (Ethereum to US Dollar)
What are some common use cases of exchange rate data?

Exchange rate data provided by CoinAPI serves a multitude of applications across various industries and applications:

  1. Algorithmic and High-Frequency Trading
    • Traders use real-time exchange rate data to develop and deploy algorithmic trading strategies
    • High-frequency traders leverage discrepancies for arbitrage strategies
  2. Financial Analysis and Research
    • Analysts utilize historical and real-time data to identify and analyze market trends
  3. Portfolio Management
    • Portfolio managers use exchange rate data to accurately value cryptocurrency holdings
  4. Risk Management
    • Monitoring exchange rates assists in assessing and mitigating currency volatility risks
  5. Payment Processing
    • Businesses rely on up-to-date exchange rates for accurate currency conversion
  6. DeFi Apps
    • DeFi platforms integrate exchange rate data for smart contracts functionality
  7. Liquidity Pools
    • Accurate exchange rates help in managing liquidity pools
  8. Tax Reporting
    • Historical exchange rate data aids in tax reporting compliance
  9. Education
    • Used to create simulations and learning tools
  10. Market Analysis Projects
    • Employed for academic projects and market analyses
How Exchange Rates Work
What affects cryptocurrency exchange rates?

Cryptocurrency exchange rates are influenced by a variety of dynamic factors, including:

  • Market Supply and Demand: The most fundamental driver — prices rise when demand exceeds supply and fall in the reverse scenario.
  • News and Regulatory Developments: Announcements about regulation, bans, or institutional adoption can significantly impact market behavior.
  • Network Events: Hard forks, protocol upgrades, or changes in tokenomics (e.g., halvings) can alter perceived value and price.
  • Market Sentiment: Public perception, social media trends, and investor confidence play a key role, especially in volatile markets.
  • Trading Volume and Liquidity: Assets with higher liquidity tend to have more stable rates, while low-volume markets are more prone to price swings.
  • Macroeconomic Trends: Inflation rates, interest rates, and broader financial market shifts (e.g., stock market moves or fiat currency fluctuations) can also impact crypto valuations.

These factors often interact in real-time, which is why CoinAPI aggregates data from multiple exchanges to help users monitor and respond to these influences with precision.

Why do exchange rates differ between platforms?

Rate differences between exchanges occur due to:

  • Different trading volumes and liquidity depths
  • Geographic restrictions and regulations
  • Fees and spread policies
  • Local market conditions
  • Arbitrage opportunities not yet balanced out
Why are there no Exchange Rates data for some assets for a given period?

Some assets can be supported at a particular date but not have Exchange Rates data available for a given period. This is because Exchange Rates data is produced from Quotes, Trades, and Metadata datasets. Quotes and Trades data are symbol-based, and some assets may not have symbols available yet for the queried period.

Data Sources & Aggregation
Can you provide proof or documentation of the source for CoinAPI’s exchange rates?

CoinAPI maintains confidentiality of its proprietary data aggregation sources for the Exchange Rates API to ensure both security and performance consistency. While we don’t disclose each contributing source publicly, we follow strict quality control standards to deliver accurate, reliable, and consistent exchange rate data.

Need verified source transparency?

We recommend using our Indexes API, which:

  • Provides detailed breakdowns of contributing markets and exchanges
  • Uses transparent methodologies such as PRIMKT and VWAP
  • Offers full documentation and historical insight into source composition and weighting

VWAP Index Methodology Documentation

Do you have any details on how prices are aggregated from multiple exchanges like Coinbase, OKX, Binance, Bybit, and Kraken?

Yes, we aggregate exchange rates using a Volume-Weighted Average Price (VWAP) over a 24-hour rolling window. This VWAP is calculated across multiple high-quality data sources listed on our platform, including major exchanges like Coinbase, OKX, Binance, Bybit, and Kraken. We carefully select and manage these sources to ensure the highest data quality.

Please note that:

  • The Exchange Rates API is not available via the FIX API.
  • To access exchange rate data, you can choose from two alternatives:
    1. Realtime REST API
    2. WebSocket API
Are fields exchange-native or normalized?

Mostly CoinAPI-normalized, with some exchange-native fields preserved. Some datasets (e.g. OHLCV) are calculated by CoinAPI.

Access & Delivery
What are the data delivery methods?

We offer two API connections:

  • REST API: For operations that can tolerate latency, used for historical data and account management
  • WebSocket: For real-time applications, offering lower latency and continuous data streams
What are the time periods I can use for Exchange Rates and OHLCV?

For Exchange Rates historical time series data:

[@portabletext/react] Unknown block type "table", specify a component for it in the `components.types` prop

You can get a full list of supported time periods at: https://docs.coinapi.io/exchange-rates-api/rest-api-historical/timeseries-periods

API Usage, credits and limits
Where can I get more information about API Usage and Limits?

Information about the request calculation algorithm for the REST API is available here[1], along with the details of how you can measure requests remaining or used after every request.

Utilize the Quotas and Limits[2] section and Usage Explorer[3] sections of the Customer Portal to track your usage.

[1] https://docs.coinapi.io/market-data/rest-api#limits (https://docs.coinapi.io/market-data/rest-api#limits) [2] https://docs.coinapi.io/general/customer-portal/QuotasLimits (https://docs.coinapi.io/general/customer-portal/QuotasLimits) [3] https://docs.coinapi.io/general/customer-portal/UsageMetrics (https://docs.coinapi.io/general/customer-portal/UsageMetrics)

How does CoinAPI’s credit system work? Do I need to preload credits, and how fast are charges reflected?

Yes, to use credit-based services like Flat Files or REST API access, you must preload usage credits to your account. Here's how it works:

Preloading Credits

  • Once you link your credit card, you’ll need to manually add credits through the Billing > Add Usage Credits section in your dashboard.
  • Optionally, you can enable Auto Recharge, which automatically tops up your credits once your balance falls below a defined threshold.

How Charges Work

  • Credits are prepaid, meaning you load your account before downloading data.
  • The cost of your activity (e.g., API calls, Flat File access) is deducted from your available credit balance.

Processing Time

  • Credit top-ups are processed in near real-time.
  • Your available balance updates almost immediately after the credit card is charged.
  • Only exception: crypto payments may have a short delay (up to 1 hour) due to blockchain confirmation times.

Usage Credits Documentation (https://docs.coinapi.io/general/usage-credits)

How do I enable overage?

If you are finding that you are always requiring more daily requests, one way to circumvent this is by enabling Spend Management and Auto Recharge, wherein you can go above the limit of requests per day.

You may enable Spend Management and Auto Recharge through the Customer Portal (https://console.coinapi.io/).

You may read more about these features here:

  • Spend Management (https://docs.coinapi.io/general/customer-portal/billing#spend-management)
  • Auto Recharge (https://docs.coinapi.io/general/customer-portal/billing#auto-recharge)
What happens if I exceed my daily REST API request limit on my CoinAPI plan?

If your CoinAPI subscription has a hard limit, exceeding your daily REST API quota will trigger an HTTP 429 Too Many Requests error response. This means no further requests will be processed until your 24-hour rolling window resets.

For soft-limited plans, we may allow overages temporarily, but we will contact you if usage consistently exceeds your plan limits, prompting an upgrade discussion.

How to Monitor Usage:

  • Use our Subscription Management API to track usage and quotas in real-time: View Subscription API Docs (https://docs.coinapi.io/management/subscriptions)
  • Review HTTP status codes and errors: Error Handling Reference (https://docs.coinapi.io/market-data/rest-api#http-errors)
Why do some CoinAPI responses not include rate limit headers?

The reason why response headers are not always present in the API responses is that, in some cases, we are unaware of their specific usage or requirements. To ensure that we promptly respond to your API calls and avoid unnecessary delays, we choose to provide a response without including the response headers. This decision is made with the intention of optimizing the operation of our API. By selectively excluding the inclusion of response headers in every request, we can enhance the overall performance and efficiency of the API.

It takes a while to verify the current usage as for the very first call for a given client we do not have a rate limit then yet. Once the request is made, we start the rate limit verification process In the background. We may then in the meantime process many requests for this client and at some point we append the result of current usage to the header. All requests that were made during that process are also included in the limit after some time.

For example (each bullet point representing a request made):

  • Request (no info about clients usage)
  • What's the usage? Starting the verification
  • Request
  • Request
  • 5 requests used today (those 3 above are not counted yet), appended to the header
  • Request (5 used)
  • Request (5 used)
  • Request (5 used)
  • Request (5 used)
  • Request (10 requests used today)

To provide clarity and transparency regarding the absence of response headers, we have documented this behavior on our official documentation page, which can be found at https://docs.coinapi.io/market-data/rest-api#request-limit--apikey (https://docs.coinapi.io/market-data/rest-api#request-limit--apikey)

How can I check my historical API usage with CoinAPI?

You can view your past API usage directly in the CoinAPI Customer Portal:

  1. Log in at: https://console.coinapi.io/ (https://console.coinapi.io/)
  2. Navigate to the Usage Explorer tab
  3. Review your usage breakdown by using the Metrics available on the dropdown and filter by selecting a date range.

Additionally, for real-time tracking, you may refer to the Quotas and Limits section of the Customer Portal.

How can I retrieve more than 100 items in a single API response?

By default, CoinAPI limits responses to 100 items per request. However, you can increase this by using the limit query parameter.

  • The maximum value for limit is 100,000 items
  • If you request more than 100 items, every 100 items counts as one request toward your usage quota

Example:

bash

GET /v1/trades?limit=500

This call will return up to 500 trades and count as 5 requests in your quota.

Use this option when you need to retrieve large result sets efficiently, but be mindful of your daily request limits.

I barely use the REST API. Why is my usage still so high?

REST API usage is measured not by the number of API calls alone, but by request credits, which depend on how much data each call retrieves.

Key points to understand:

  • CoinAPI uses a rolling 24-hour window to calculate usage
  • Each data request credit counts as one "request"
  • Some API endpoints return multiple data points per call
  • If the limit parameter is used, every 100 items returned counts as one request credit

Example:

If you make a single call to retrieve 10,000 OHLCV records using limit=10000, that counts as 100 requests (10,000 ÷ 100), not just 1.

So, while your logs may show only 85 API calls in a day, your total usage could reflect over 10,000 request credits—especially when pulling large data batches.

This can lead to exceeding the daily request quota for plans like Streamer, which has a 10,000 daily request limit, and result in HTTP 429 Too Many Requests errors.

For technical details, refer to the API documentation:

https://docs.coinapi.io/market-data/rest-api#request-limit--apikey (https://docs.coinapi.io/market-data/rest-api#request-limit--apikey)

How do I calculate the number of requests I’ll be making for a specific query?

CoinAPI uses a credit-based system for REST API requests. The number of request credits consumed depends on how many data items you retrieve in a single call.

How it works:

  • If you do not use the limit parameter, the default is limit=100, which counts as 1 request
  • If you do use the limit parameter, every 100 data items returned counts as 1 request

Example:

bash

GET /v1/ohlcv/BINANCE_SPOT_BTC_USDT/history?limit=1500

This call returns 1,500 items, which counts as:

yaml

1500 ÷ 100 = 15 requests

Additional tips:

  • limit minimum: 1
  • limit maximum: 100,000
Why does using limit=1 still count as 1 full request in my API usage? Isn't pricing based on 100 data points?

Yes, CoinAPI uses a credit-based model, but here's how the request-based billing works with the limit parameter:

How Credit Consumption Works:

  • Each successful API request counts as at least 1 request.
  • If your request includes the limit parameter:
    • Every 100 data points = 1 credit (rounded up).
    • Example: limit=200 = 2 credits, limit=1 = still 1 credit.

Even if you only request 1 data point (limit=1), it still triggers a full request and uses 1 credit, because that's the minimum unit for billing.

Billing, payment & subscriptions
Can I cancel my subscription anytime?

Yes, as stated on our legal terms under Customer Agreement section 2.4:

"You may terminate your initial Order of the applicable Software or Cloud Services under this Agreement, for no reason or any reason, by providing notice of termination. At your request (which may be made through your Account or by contacting us), we may disable the license key that allowed the Software to operate or disable access to the Cloud Services. All fees paid are non-refundable."

More information can be found here: https://www.coinapi.io/legal (https://www.coinapi.io/legal)

Can I still use my API key if I cancel my subscription?

Cancelling your API key's subscription will render it unusable up until the end of your current billing period. If you still want to be able to use your API key, you may instead opt to downgrade to our Pay As You Go tier.

To learn more about the scope of the Pay As You Go tier, please refer to our Pricing page: https://www.coinapi.io/products/market-data-api/pricing (https://www.coinapi.io/products/market-data-api/pricing)

How to reactivate my canceled subscription?

If your subscription was marked for cancelation using the customer portal and your billing period date has not passed, then you can still reactivate it by logging into the Customer Portal (https://console.coinapi.io/ (https://console.coinapi.io/)) and navigating to Subscriptions > Renew Subscription. You will be able to resume the subscription here.

If your subscription was marked for cancelation and your current billing period date has already passed, then you must acquire a new subscription from our Pricing page (https://www.coinapi.io/market-data-api/pricing (https://www.coinapi.io/market-data-api/pricing)).

How to subscribe to the API?

Subscriptions for the predefined plans are sold through our Pricing page. [1]

Enterprise Plan agreement is custom-tailored to specific project needs. Please contact support or sales to get more information. [2]

References:

[1] https://www.coinapi.io/products/market-data-api/pricing (https://www.coinapi.io/products/market-data-api/pricing)

[2] https://www.coinapi.io/contact-us (https://www.coinapi.io/contact-us)

How to upgrade/downgrade my subscription?

You may upgrade/downgrade your subscription via the Customer Portal (https://console.coinapi.io/ (https://console.coinapi.io/)). After logging in, please navigate to Subscriptions > Update Subscription > Select the appropriate subscription that you want to switch to > Continue. We can upgrade or downgrade your subscription as well via a support request.

Upgrading and downgrading operations are prorated; the remaining amount on your subscription at the moment of the change will be credited towards future liabilities. Your billing period cycle is not affected by the plan change.

Example 1:

If you have a Streamer subscription with a billing date of 2018-07-15 and it's 2018-07-05 and you want to upgrade your Streamer plan to the Professional, then:

  • Unused Streamer subscriptions between 2018-07-05 and 2018-07-15 will be credited
  • Professional subscriptions between 2018-07-05 and 2018-07-15 will be debited.

Example 2:

You have the Professional subscription with billing date 2018-07-15, and it's 2018-07-05, and you want to downgrade to the Streamer plan, then:

  • Unused Professional subscriptions between 2018-07-05 and 2018-07-15 will be credited
  • Streamer subscriptions between 2018-07-05 and 2018-07-15 will be debited.
  • The remaining credit will be applied to future invoices

To execute the request, kindly submit a request here: https://support.coinapi.io/hc/en-us/requests/new (https://support.coinapi.io/hc/en-us/requests/new)

What do I need to complete a subscription payment?

Purchasing a subscription is straightforward. Here’s what you need to do:

Steps to Complete Payment:

  1. Log in to your company's main account on the CoinAPI Customer Portal (https://console.coinapi.io/ (https://console.coinapi.io/))
  2. After logging in, visit the pricing page to choose your desired subscription: https://www.coinapi.io/products/market-data-api/pricing (https://www.coinapi.io/products/market-data-api/pricing)
  3. After choosing the subscription, you'll be redirected to a secure Stripe checkout page.
  4. Enter your credit card details and, if applicable, your VAT ID.
  5. Once the payment is completed, your subscription will be activated and you'll receive an invoice.

Important Notes:

  • Please complete your company information in the Billing section before purchasing. This info is used to generate your invoice.
  • VAT ID is required only for companies in the EU, except for the UK and Switzerland.

Need help with Stripe or billing? Contact [email protected] (mailto:[email protected]) or reach out through the portal.

Do you accept bank or wire transfers?

Yes, bank and wire transfers are accepted, but only for annual subscriptions.

For monthly subscription plans, payment must be made via credit card through our secure Stripe checkout.

If you're interested in setting up an annual subscription via wire transfer, please contact our Support Team (https://support.coinapi.io/hc/en-us/requests/new) or Sales for invoicing assistance.

How should I handle payment errors during sign-up?

When signing up for a CoinAPI subscription, you may encounter payment errors returned by our payment processor, Stripe. Common examples include:

  • balance_insufficient – Not enough funds on the card or account
  • card_decline_rate_limit_exceeded – Too many decline attempts
  • email_invalid – The email format is incorrect or unsupported by Stripe

How to resolve:

  1. Refer to Stripe’s official error documentation for guidance:
    • Error codes: https://stripe.com/docs/error-codes#email-invalid (https://stripe.com/docs/error-codes#email-invalid)
    • Decline reasons: https://stripe.com/docs/declines/codes (https://stripe.com/docs/declines/codes)
  2. If the error persists or you're unable to resolve it, please contact the CoinAPI support team here: https://support.coinapi.io/hc/en-us/requests/new (https://support.coinapi.io/hc/en-us/requests/new)

We’ll help you investigate and complete your sign-up.

Is there a free tier for CoinAPI's Market Data API?

CoinAPI does not offer a traditional free plan, but it does provide a Pay-As-You-Go metered plan that includes:

  • $25 in free credits upon signup (generated API Key and verified payment method required)
  • Access to both historical and real-time market data
  • Support for REST and WebSocket protocols
  • Volume-based discounts for higher usage
  • Email support included
  • No monthly commitment — you only pay for what you use

This plan is ideal for developers and small teams who want to test the platform, explore its capabilities, and scale up as needed. Once the $25 credit is exhausted, usage is billed according to the metered pricing.

You can start here: https://www.coinapi.io/market-data-api/pricing (https://www.coinapi.io/market-data-api/pricing)

Can I top up credits at a discounted rate on different days under the metered plan?

Under the metered plan, credits are priced based on daily usage, not accumulated balance. Here’s how it works:

  • The first 1,000 credits used in a single day cost $5.26.
  • Additional blocks of 1,000 credits used on the same day cost $2.63 each.

Discounted rates only apply to same-day usage.

Examples:

  • On Monday, you use 1,000 credits → pay $5.26.
  • On Wednesday, you use 1,000 more credits → another $5.26 (new day, standard rate).
  • On Friday, you use 2,000 credits →
    • First 1,000 = $5.26
    • Second 1,000 = $2.63

Unused credits don’t expire; you can use leftover credits (e.g., 500 credits from Friday) anytime later.

What happens if we exceed our credit limit? Will we be notified the same day? And how do upgrades work on an annual subscription?

Yes, CoinAPI offers proactive monitoring and alerting through its Spend Management System:

  • You can set daily usage thresholds and receive email alerts when they’re exceeded.
  • You can also configure a webhook URL for real-time programmatic notifications.
  • To ensure uninterrupted access, enable Spend Management, which lets you exceed your credit limit at a set daily credit usage budget.

Setup path: Customer Portal > Billing > Spend Management

Upgrading an Annual Subscription

Yes — if you're on an annual plan, you can upgrade at any time:

  • Go to Customer Portal > Subscriptions > Update Subscription
  • This method ensures you're only billed the difference for the remainder of your annual term.

Important: Do not purchase a new plan from the Pricing page — this will create a second, separate subscription rather than upgrading the current one.

Can I customize my plan?

Yes. CoinAPI offers customization through the Enterprise plan, which is fully adaptable to your technical, legal, and operational needs.

Custom options include:

  • Dedicated account manager
  • Custom onboarding and SLAs
  • Premium support (including a dedicated Slack channel for $200/month)
  • Flexible limits on API usage, request volume, and exchange coverage
  • Tailor-made data delivery (e.g., custom S3 uploads, VPC peering, regional endpoints)

Add-ons:

  • Business Plan users can also add a Slack support channel ($200/month)
  • Additional data transfer is available at $1.25 per GB beyond the plan’s included 16 GB

To request a customized plan or explore upgrade options, contact CoinAPI Support (https://support.coinapi.io/hc/en-us/requests/new).

How do I pay overdue invoices?

To pay an overdue invoice:

  1. Log in to the Customer Portal (https://console.coinapi.io/)
  2. Navigate to the Billing > Invoices section
  3. Select the unpaid invoice and proceed with payment using your saved payment method

If the payment method fails or you encounter issues accessing your account, please contact CoinAPI Support (https://support.coinapi.io/hc/en-us/requests/new) for assistance.

What is a billing cycle?

CoinAPI’s billing cycle is monthly by default.

  • Monthly plans: You are charged once every month based on your subscription tier.
  • Annual plans: You pay for the entire year upfront, but billing and usage limits are still calculated on a monthly basis (e.g., monthly credit quotas, data caps).

You can view your current billing period, invoice history, and usage metrics in the Customer Portal (https://console.coinapi.io/).

Security and Privacy
What CDN does the API use?

We build our own CDN network with nodes directly distributing data between each other via the fastest routes. Any existing CDN solutions are targeted on the caching which is not applicable to financial data.

What security mechanisms does CoinAPI use to protect my data?

Your sensitive information is stored inside the service provider, which is constantly audited and certified as a PCI-DSS Level 1 Service Provider. This is the most stringent level of certification available in the payments industry. To retain the certification, a payment provider must use world-class security tools and techniques to maintain a high level of security.

What should I do if my API key was compromised?

You may delete the compromised key and generate a new one on the API Keys section of the Customer Portal (https://console.coinapi.io/ (https://console.coinapi.io/)). This way, the compromised key will no longer be active for use and will not affect your subscription limits.

API access & integration
How can I troubleshoot FIX API logon issues with CoinAPI?

If you're experiencing issues logging in to the FIX API, follow these steps to ensure proper configuration:

  1. Verify access: You must have a PRO plan or FIX access enabled on your API key.
  2. Use the correct configuration: Download the FIX initiator config and FIX44.xml file from our GitHub SDK repository (https://github.com/api-bricks/api-bricks-sdk/tree/master/coinapi/market-data-api-fix).
  3. Set the API key correctly: Paste your API key into the SenderCompID field in your initiator configuration.
  4. Check the timestamp: Ensure that the TAG=52 (logon time) in your message is set in UTC and is closely synchronized with actual server time. Large time drift will cause the logon to fail.

If issues persist, contact our Support Team (https://support.coinapi.io/hc/en-us/requests/new) with your log trace and setup details.

Where are CoinAPI’s servers located, and how does latency vary by region?

CoinAPI operates a globally distributed infrastructure with low-latency data centers in the following locations:

  • AWS Regions: us-east-1, eu-central-1, eu-west-1
  • Colocated Sites:
    • USA: Chicago, New York
    • UK: London
    • Poland: Warsaw
    • Asia: Tokyo

Latency Behavior:

  • Real-time data (via REST /current, WebSocket, FIX) is delivered from the site you’re connected to, routed using GeoDNS to the closest available server.
  • Average latency for public endpoints is ~20ms.
  • On Enterprise Plans, customers can achieve sub-1ms latency using direct connections or AWS VPC Peering.

Historical data (via REST /history and Flat Files) is consolidated across all regions to produce a single, globally consistent dataset. This reduces geographic discrepancies but can be impacted by replay process constraints.

Learn more about optimizing connectivity or request direct site access by contacting our Support Team (https://support.coinapi.io/hc/en-us/requests/new).

How does CoinAPI calculate cryptocurrency exchange rates?

CoinAPI calculates exchange rates using a volume-weighted average price (VWAP) model across multiple exchanges, based on the past 24 hours of trading activity.

To ensure accurate market valuation, we combine both:

  • Passive market data (Order book quotes)
  • Active market data (Executed transactions)

The algorithm uses a combination of:

  • Direct market pairs (e.g., BTC/USD)
  • Indirect conversions (e.g., BTC/JPY → JPY/USD) using central bank FX reference rates

We prioritize trusted exchanges with high data quality. If data is unavailable from these sources, we intelligently include additional exchanges to maintain coverage—without compromising accuracy.

🔗 See full exchange rate methodology (https://docs.coinapi.io/market-data/rest-api/exchange-rates)

How can I fix certificate validation errors when connecting to CoinAPI?

Certificate validation errors typically occur when your system lacks updated CA (Certificate Authority) certificates. Here’s how to resolve it based on your operating system:

On Windows:

  • Ensure your Windows Updates are fully installed, as CA certificates are updated through the standard update process.

On Ubuntu/Debian Linux:

  • Run the following command to refresh your certificate store:

sql
sudo update-ca-certificates

Alternative Option:

If updating certificates isn't feasible, you may connect via an unencrypted HTTP endpoint—though this is not recommended for production due to security concerns.

For production environments, we recommend using HTTPS with properly updated CA bundles.

How can I use CoinAPI from MATLAB?

You can integrate CoinAPI with MATLAB using multiple approaches, depending on your preferred development environment:

  1. Java SDK integration: Use Java libraries from MATLAB – Learn how (https://www.mathworks.com/help/matlab/using-java-libraries-in-matlab.html)
  2. .NET SDK integration: Call .NET libraries from MATLAB – Guide here (https://www.mathworks.com/help/matlab/using-net-libraries-in-matlab.html)
  3. Python SDK integration: Use Python libraries (like CoinAPI’s Python SDK) within MATLAB – Instructions (https://www.mathworks.com/help/matlab/call-python-libraries.html)
  4. Use webread() for direct API access: The webread function can call RESTful APIs and automatically convert JSON into MATLAB objects. – See how (https://www.mathworks.com/help/matlab/ref/webread.html)

This flexibility allows you to access CoinAPI’s market data or exchange rates from within MATLAB for trading strategies, analysis, or research.

What programming languages are supported by CoinAPI?

CoinAPI is language-agnostic, you can use it with any programming language that supports HTTP requests and JSON parsing.

To make development easier, we provide official SDKs and code examples in our GitHub repository (https://github.com/api-bricks/api-bricks-sdk) for the following languages:

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

These SDKs cover common integration patterns for REST, WebSocket, and FIX APIs.

What timezone does CoinAPI use for date and time values?

All timestamps returned by CoinAPI, across REST, WebSocket, and FIX protocols, are standardized to UTC (Coordinated Universal Time).

This applies to:

  • Historical data (e.g., OHLCV, trades)
  • Real-time streams
  • Metadata and time range filters

For details on time formatting and handling across endpoints, refer to our documentation:

CoinAPI Timezone & Timestamps (https://docs.coinapi.io/market-data#time)

Where can I find API examples and SDK source code for CoinAPI?

You can explore our official SDKs, integration examples, and client libraries on GitHub:

CoinAPI GitHub Repository (https://github.com/api-bricks/api-bricks-sdk)

The repository includes:

  • Sample code for REST, WebSocket, and FIX APIs
  • SDKs in multiple programming languages (e.g., Python, Java, C#, Go, etc.)
  • Flat Files and EMS Trading API usage demos

This is the best place to get started with real-world examples and accelerate your integration process.

Can using a VPN affect my connection to CoinAPI?

CoinAPI does not block or restrict VPN usage, and in most cases, a VPN should not impact your API connection. However, several factors can influence performance:

What to Consider When Using a VPN:

  1. VPN Quality
    • Low-quality VPNs may block API traffic, limit bandwidth, or introduce instability.
  2. Server Location & Latency
    • The physical distance between you, the VPN server, and CoinAPI’s infrastructure can increase latency.
    • In countries with internet restrictions (e.g., China), a VPN may be required to access CoinAPI.
  3. VPN Configuration
    • Ensure your VPN allows outbound HTTPS traffic and isn’t blocking specific ports or protocols used by CoinAPI.
  4. Your ISP
    • Even with a VPN, poor underlying internet quality can cause timeouts or dropped connections.

Troubleshooting Tips:

  • Temporarily disable the VPN to check if it’s causing the issue
  • Switch VPN servers or providers for better performance
  • Update your VPN software to the latest version
  • Contact your VPN provider if API traffic is being throttled or blocked

If problems persist, please contact our support team (https://support.coinapi.io/hc/en-us/requests/new) for assistance.

How should I document and troubleshoot CoinAPI connectivity issues?

If you're experiencing connection issues with CoinAPI, please follow the steps below before submitting a support request:

  1. Check CoinAPI's Status Page Confirm there are no ongoing service disruptions at: https://status.coinapi.io/ (https://status.coinapi.io/)
  2. Verify DNS resolution Use the dig command to check domain name resolution: A correct response includes an ANSWER SECTION with IP resolution like: If the ANSWER SECTION is missing, this indicates a DNS resolution issue.

pgsql

dig [domain name here]

lua

;; ANSWER SECTION:
fix.coinapi.io. IN CNAME api.coinapi.io.
api.coinapi.io. IN CNAME api.coinapi.net.
...
hdc1-enc-02-bay-08.coinapi.net. IN A 185.204.225.28

  1. Check TCP connectivity Use nc to verify port access: Expected output: If the command fails, analyze the TCP connectivity on your side before contacting support.

cs
nc -v [hostname] -p [port]

css

Connection to fix.coinapi.io 3302 port [tcp/*] succeeded!

  1. Test encryption behavior Try switching between HTTPS and HTTP endpoints. If the issue appears only with one type, document that in your report—it helps isolate encryption-related errors.
  2. Capture a PCAP dump for analysis Use tcpdump to capture traffic. Adjust the port according to the API protocol:
    • REST or WebSocket API:

bash

tcpdump -i [interface] port 80 or port 443 -w dump.$(date +"%Y%m%dT%H%M%S").cap

  • FIX API:

bash

tcpdump -i [interface] port 3302 or port 3303 -w dump.$(date +"%Y%m%dT%H%M%S").cap

  1. Analyze the PCAP file before submission Ensure:
    • CoinAPI is on the other end of the connection
    • The problem is not caused by internal proxies, gateways, or firewall misbehavior
    • The capture was performed from a system directly connected to the internet (not behind NAT if possible)
  2. Submit a support request Use the "API Issues" form at: https://support.coinapi.io/ (https://support.coinapi.io/) Include:
    • Accurate problem description with UTC timestamps
    • Results of the DNS (dig) and TCP (nc) checks
    • A PCAP file with analysis details
    • Set the issue priority according to impact:
      • Urgent – Production system down
      • High – Production system impaired
      • Normal – Feature/system partially affected
      • Low – General guidance or questions

This structured process ensures the support team can respond efficiently and effectively to network-related issues.

Why am I getting an "Invalid API Key" error after generating a new key?

If you're receiving an "Invalid API Key" error shortly after generating a new key, this is expected behavior for a brief period.

CoinAPI operates multiple geographically distributed and independent server sites for high availability. Because of this architecture, it may take a few minutes for your new API key to fully propagate across all regions.

What to do:

  • Wait a few minutes and retry your request
  • Do not regenerate a new key unless the issue persists for more than 5–10 minutes
  • If the problem continues, contact support at: https://support.coinapi.io/hc/en-us/requests/new (https://support.coinapi.io/hc/en-us/requests/new)

This short delay is a trade-off for ensuring there is no single point of failure in our infrastructure.

How do I troubleshoot API errors?

If you encounter errors while using CoinAPI, follow these steps to diagnose and resolve the issue:

  1. Refer to the Error Documentation Review the CoinAPI HTTP error guide (https://docs.coinapi.io/market-data/rest-api#http-errors) to understand the meaning of status codes like 400, 403, 429, or 550.
  2. Check Your Request Syntax Ensure your request uses the correct endpoint, method, headers, and query parameters. Invalid symbol IDs, time formats, or unauthorized data types are common causes of failure.
  3. Monitor CoinAPI Service Status Visit status.coinapi.io (https://status.coinapi.io/) to see if there are any ongoing incidents or outages affecting API performance or data delivery.
  4. Use Logging and Monitoring Log your request and response data, including timestamps, error codes, and rate limit headers. This helps identify rate limit breaches, invalid keys, or malformed requests.
  5. Contact Support If you’ve verified your request and service status but the issue persists, contact us through the Support Portal (https://support.coinapi.io/hc/en-us/requests/new) for further investigation.
How do I generate an API key for FIX API access?

To access CoinAPI via FIX protocol, you can use a standard Market Data API key. Here's how to generate it:

How to Generate Your API Key

  1. Log in to your Customer Portal
  2. In the left-side navigation, go to API Keys
  3. Click Create Standard API Keys
  4. Your new API key will be valid for both REST/WebSocket and FIX interfaces

You can also disable or delete keys from the same portal interface as needed.

Why does my WebSocket connection keep disconnecting with code 1006 and no reason?

The WebSocket error code 1006 typically indicates that the connection was closed abnormally, without a proper closing handshake. This can be caused by several external or local factors:

Common Causes:

  • Unstable Internet Connection: Temporary drops or packet loss can trigger disconnections.
  • Firewall or Proxy: Network security layers may block or interrupt persistent WebSocket connections.
  • Client-Side Crashes: Application errors or memory leaks could cause forced shutdowns.
  • Timeouts or Rate Limits: Ensure you’re not exceeding subscription limits or timeouts set by your environment.

Troubleshooting Tips:

  • Ensure a stable and continuous internet connection.
  • Whitelist WebSocket traffic in your firewall or proxy settings.
  • Review your application logs for crashes or timeout issues.
  • Consider implementing reconnection logic in your WebSocket client to handle disconnects gracefully.

If the issue persists and you're on a corporate network, consult your network administrator or reach out to [email protected] (mailto:[email protected]) for assistance.

Enterprise plan
What is included in the CoinAPI Enterprise Plan?

The CoinAPI Enterprise Plan is designed for institutions and businesses that require premium performance, flexibility, and support. It includes a range of customizable features and services not available in standard plans.

Enterprise Plan inclusions:

  1. Custom or unlimited usage limits on REST, WebSocket, and FIX APIs
  2. Roadmap assurance for planned features and improvements
  3. Custom legal agreements tailored to your organization’s compliance needs
  4. Custom SLAs, optionally measured and verified by a third party
  5. Integration assistance from CoinAPI engineers
  6. Tailor-made API endpoints to meet your specific technical requirements
  7. Dedicated infrastructure to ensure high availability, low latency, and minimal variance
  8. Historical data delivered via daily flat file uploads to your preferred cloud provider (S3, GCP, Azure, B2)
  9. Access to tick-by-tick order book data
  10. Access to the EMS (Order and Execution Management) Trading API
  11. Support for custom data delivery requirements (geolocation, latency, delivery protocols)

Get in touch:

To request a proposal or discuss options, contact us at:

https://share.hsforms.com/1cY_sFZHRT_mjnq3KxoItuQbm7f2

How do I set up AWS VPC peering with CoinAPI?

CoinAPI supports AWS VPC peering for customers on Enterprise Plans. This setup provides ultra-low latency, private connectivity between your AWS infrastructure and CoinAPI's systems.

Steps to set up AWS VPC peering:

  1. Open a Support Case: Submit a support request with your AWS region (e.g., us-east-1) and intended VPC setup.
  2. Receive Setup Details: Our support team will send the required details for initiating the peering request from your AWS Console.
  3. Create the Peering Request: In your AWS account, navigate to: VPC Console > Create Peering Connection
  4. Connection Approval: CoinAPI will accept your peering request from our side.
  5. Customer Confirmation: After acceptance, you should verify the connectivity. Confirm that routing and communication work as expected.

This setup enables private, high-throughput access to CoinAPI endpoints with reduced latency and improved reliability, ideal for enterprise-grade applications.