# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Verify your Coin ID before configuring</strong></td><td>Look up the exact CoinGecko internal ID at the coins list endpoint before entering it in Coupler.io. A wrong ID (e.g. "BTC" instead of "bitcoin") will silently return no data.</td></tr><tr><td><strong>Use Append to consolidate multiple coins</strong></td><td>Set up one source per coin, then use Coupler.io's Append transformation to merge them into a single table. This is cleaner than managing separate destinations for each coin.</td></tr><tr><td><strong>Choose the right entity for your use case</strong></td><td>Use Market charts for trend analysis and time-series dashboards. Use Histories for point-in-time snapshots, audits, or backfilling a dataset.</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 your refresh frequency to the days parameter</strong></td><td>If you're using a 1-day market chart window (hourly data), a frequent refresh schedule makes sense. For 90-day or 365-day windows (daily data), a daily or weekly refresh is sufficient — running more often won't add new granularity.</td></tr><tr><td><strong>Stagger schedules across multiple coin data flows</strong></td><td>If you're tracking many coins, offset their scheduled run times by a few minutes to avoid hitting CoinGecko rate limits all at once.</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>Avoid "max" days unless you need full history</strong></td><td>The max setting pulls all available data for a coin, which can be years of records. Use a specific days value (e.g. 90 or 365) unless you genuinely need full historical backfill — it reduces load and speeds up runs.</td></tr><tr><td><strong>Use Aggregate to pre-summarize in Coupler.io</strong></td><td>If you're loading into a spreadsheet destination, use Coupler.io's Aggregate transformation to compute daily averages or weekly totals before export. This keeps your sheets lean and avoids row-count bloat.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
Do not rely solely on Coupler.io field names to interpret CoinGecko data — always cross-reference with the [CoinGecko API docs](https://www.coingecko.com/api/documentations/v3) to understand what each field represents, especially for community and developer metrics that vary by coin.
{% endhint %}

{% columns %}
{% column %}
**Do**

* Use the CoinGecko coins list to confirm the exact coin ID
* Use one source per coin and combine with Append
* Check your API plan's rate limits before adding many data flows
* Use AI destinations (ChatGPT, Claude, Gemini) to generate summaries or alerts from price data
  {% endcolumn %}

{% column %}
**Don't**

* Assume ticker symbols like "ETH" or "BTC" are valid Coin IDs — they're not
* Run all coin data flows simultaneously if you're on a free API plan
* Use the `max` days setting for routine scheduled refreshes
* Expect sub-daily granularity for market chart windows longer than 1 day
  {% endcolumn %}
  {% endcolumns %}
