> For the complete documentation index, see [llms.txt](https://docs.coupler.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.coupler.io/sources/category/finance-and-accounting/coinmarketcap/best-practices.md).

# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Filter Quotes by symbol</strong></td><td>Don't pull all coins via Quotes — enter only the symbols you actually need. This keeps your dataset focused and saves API credits.</td></tr><tr><td><strong>Use Listings for broad market scans</strong></td><td>For market-wide analysis, use the Listings entity instead of entering hundreds of symbols in Quotes. Listings returns ranked data for all coins in one call.</td></tr><tr><td><strong>Join Listings with Quotes</strong></td><td>Use Coupler.io's Join transformation to attach real-time Quotes data to the ranked Listings table. This gives you both ranking context and precise quote figures in one sheet.</td></tr><tr><td><strong>Separate latest and historical flows</strong></td><td>Create separate data flows for latest and historical data types. Mixing them in one flow makes it harder to troubleshoot and schedule independently.</td></tr></tbody></table>

## Data refresh and scheduling

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Match refresh rate to your API plan</strong></td><td>The free CoinMarketCap plan has limited monthly credits. Refreshing every few minutes will burn through credits fast — hourly or every 15 minutes is usually sufficient for most use cases.</td></tr><tr><td><strong>Use timestamps to detect stale data</strong></td><td>Every entity returns a last_updated field. Include this in your destination to confirm data freshness and catch cases where the API returned a cached response.</td></tr></tbody></table>

## Performance optimization

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Aggregate category-level metrics</strong></td><td>Use Coupler.io's Aggregate transformation on Categories data to roll up sector performance (total market cap, average 24h change) without pulling individual coin-level data.</td></tr><tr><td><strong>Append multi-account data cleanly</strong></td><td>If you manage crypto data for multiple clients or portfolios, create one data flow per symbol set and use Append to combine them into a single master table in BigQuery or Google Sheets.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
Don't enter unverified symbols in the Quotes entity — a single unrecognized symbol can cause the entire sync to return no data. Always verify tickers on the CoinMarketCap website first.
{% endhint %}

{% columns %}
{% column %}

### Do

* Verify each symbol on CoinMarketCap before adding it to your Quotes filter
* Use Listings for market-wide pulls and Quotes for watchlists
* Monitor your API credit usage in the CoinMarketCap Developer Portal
* Set the data type explicitly — leaving defaults untouched may not match your plan
  {% endcolumn %}

{% column %}

### Don't

* Assume historical data will work on a free API key
* Run duplicate data flows pulling the same entity at the same time
* Use Quotes without any symbol filter — it will fail
* Ignore the last\_updated field when comparing data across sources
  {% endcolumn %}
  {% endcolumns %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.coupler.io/sources/category/finance-and-accounting/coinmarketcap/best-practices.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
