Skip to main content
Connectors

CoinGecko connector

Set up the CoinGecko connector in Kaivo: authentication, configuration, the 2 BigQuery tables it syncs, and answers to common questions.

Written By Lauri Raivio

Last updated 16 days ago

Kaivo is a fully managed data platform that syncs your CoinGecko data into a Google BigQuery warehouse and keeps it up to date automatically. There is no pipeline to build and no infrastructure to run, so you can spend your time analysing your payment and finance data instead of moving it.

What is the CoinGecko connector

Sync your CoinGecko coin prices and market history into BigQuery with Kaivo to track crypto prices, market cap, and volume over time.

CategoryFinance & Payments
AuthenticationAPI key
SetupSelf-service

Getting started with the CoinGecko connector

  1. Sign up for Kaivo and create a workspace.
  2. Connect your CoinGecko account.
  3. Choose which tables to sync.
  4. Wait for the initial sync to finish.
  5. Query your data in BigQuery or your favourite AI or BI tool.

Authenticating CoinGecko

Authenticate with your API Key.

FieldDescription
API Key

CoinGecko Pro API key. Leave empty to use the free public API.

Configuring the CoinGecko connector

When you set up the connector, you provide:

FieldDescription
Coin ID

CoinGecko coin ID (e.g. bitcoin).

Target Currency

Target currency for market data (e.g. usd, eur, jpy).

Days

Number of days of market chart data to fetch.

Start Date

Any data before this date will not be fetched.

Tables and columns synced from CoinGecko

Kaivo syncs 2 tables from CoinGecko into a dedicated dataset in your BigQuery warehouse. Click any table to see its columns and types.

ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
idSTRING
symbolSTRING
nameSTRING
localization__enSTRING
localization__deSTRING
localization__esSTRING
localization__frSTRING
localization__itSTRING
localization__plSTRING
localization__roSTRING
localization__huSTRING
localization__nlSTRING
localization__ptSTRING
localization__svSTRING
localization__viSTRING
localization__trSTRING
localization__ruSTRING
localization__jaSTRING
localization__zhSTRING
localization__zh_twSTRING
localization__koSTRING
localization__arSTRING
localization__thSTRING
localization__idSTRING
localization__csSTRING
localization__daSTRING
localization__elSTRING
localization__hiSTRING
localization__noSTRING
localization__skSTRING
localization__ukSTRING
localization__heSTRING
localization__fiSTRING
localization__bgSTRING
localization__hrSTRING
localization__ltSTRING
localization__slSTRING
image__thumbSTRING
image__smallSTRING
market_data__current_price__aedFLOAT64
market_data__current_price__arsFLOAT64
market_data__current_price__audFLOAT64
market_data__current_price__bchFLOAT64
market_data__current_price__bdtFLOAT64
market_data__current_price__bhdFLOAT64
market_data__current_price__bmdFLOAT64
market_data__current_price__bnbFLOAT64
market_data__current_price__brlFLOAT64
market_data__current_price__btcFLOAT64
market_data__current_price__cadFLOAT64
market_data__current_price__chfFLOAT64
market_data__current_price__clpFLOAT64
market_data__current_price__cnyFLOAT64
market_data__current_price__czkFLOAT64
market_data__current_price__dkkFLOAT64
market_data__current_price__dotFLOAT64
market_data__current_price__eosFLOAT64
market_data__current_price__ethFLOAT64
market_data__current_price__eurFLOAT64
market_data__current_price__gbpFLOAT64
market_data__current_price__hkdFLOAT64
market_data__current_price__hufFLOAT64
market_data__current_price__idrFLOAT64
market_data__current_price__ilsFLOAT64
market_data__current_price__inrFLOAT64
market_data__current_price__jpyFLOAT64
market_data__current_price__krwFLOAT64
market_data__current_price__kwdFLOAT64
market_data__current_price__lkrFLOAT64
market_data__current_price__ltcFLOAT64
market_data__current_price__mmkFLOAT64
market_data__current_price__mxnFLOAT64
market_data__current_price__myrFLOAT64
market_data__current_price__ngnFLOAT64
market_data__current_price__nokFLOAT64
market_data__current_price__nzdFLOAT64
market_data__current_price__phpFLOAT64
market_data__current_price__pkrFLOAT64
market_data__current_price__plnFLOAT64
market_data__current_price__rubFLOAT64
market_data__current_price__sarFLOAT64
market_data__current_price__sekFLOAT64
market_data__current_price__sgdFLOAT64
market_data__current_price__thbFLOAT64
market_data__current_price__tryFLOAT64
market_data__current_price__twdFLOAT64
market_data__current_price__uahFLOAT64
market_data__current_price__usdFLOAT64
market_data__current_price__vefFLOAT64
market_data__current_price__vndFLOAT64
market_data__current_price__xagFLOAT64
market_data__current_price__xauFLOAT64
market_data__current_price__xdrFLOAT64
market_data__current_price__xlmFLOAT64
market_data__current_price__xrpFLOAT64
market_data__current_price__yfiFLOAT64
market_data__current_price__zarFLOAT64
market_data__current_price__bitsFLOAT64
market_data__current_price__linkFLOAT64
market_data__current_price__satsFLOAT64
market_data__market_cap__aedFLOAT64
market_data__market_cap__arsFLOAT64
market_data__market_cap__audFLOAT64
market_data__market_cap__bchFLOAT64
market_data__market_cap__bdtFLOAT64
market_data__market_cap__bhdFLOAT64
market_data__market_cap__bmdFLOAT64
market_data__market_cap__bnbFLOAT64
market_data__market_cap__brlFLOAT64
market_data__market_cap__btcFLOAT64
market_data__market_cap__cadFLOAT64
market_data__market_cap__chfFLOAT64
market_data__market_cap__clpFLOAT64
market_data__market_cap__cnyFLOAT64
market_data__market_cap__czkFLOAT64
market_data__market_cap__dkkFLOAT64
market_data__market_cap__dotFLOAT64
market_data__market_cap__eosFLOAT64
market_data__market_cap__ethFLOAT64
market_data__market_cap__eurFLOAT64
market_data__market_cap__gbpFLOAT64
market_data__market_cap__hkdFLOAT64
market_data__market_cap__hufFLOAT64
market_data__market_cap__idrFLOAT64
market_data__market_cap__ilsFLOAT64
market_data__market_cap__inrFLOAT64
market_data__market_cap__jpyFLOAT64
market_data__market_cap__krwFLOAT64
market_data__market_cap__kwdFLOAT64
market_data__market_cap__lkrFLOAT64
market_data__market_cap__ltcFLOAT64
market_data__market_cap__mmkFLOAT64
market_data__market_cap__mxnFLOAT64
market_data__market_cap__myrFLOAT64
market_data__market_cap__ngnFLOAT64
market_data__market_cap__nokFLOAT64
market_data__market_cap__nzdFLOAT64
market_data__market_cap__phpFLOAT64
market_data__market_cap__pkrFLOAT64
market_data__market_cap__plnFLOAT64
market_data__market_cap__rubFLOAT64
market_data__market_cap__sarFLOAT64
market_data__market_cap__sekFLOAT64
market_data__market_cap__sgdFLOAT64
market_data__market_cap__thbFLOAT64
market_data__market_cap__tryFLOAT64
market_data__market_cap__twdFLOAT64
market_data__market_cap__uahFLOAT64
market_data__market_cap__usdFLOAT64
market_data__market_cap__vefFLOAT64
market_data__market_cap__vndFLOAT64
market_data__market_cap__xagFLOAT64
market_data__market_cap__xauFLOAT64
market_data__market_cap__xdrFLOAT64
market_data__market_cap__xlmFLOAT64
market_data__market_cap__xrpFLOAT64
market_data__market_cap__yfiFLOAT64
market_data__market_cap__zarFLOAT64
market_data__market_cap__bitsFLOAT64
market_data__market_cap__linkFLOAT64
market_data__market_cap__satsFLOAT64
market_data__total_volume__aedFLOAT64
market_data__total_volume__arsFLOAT64
market_data__total_volume__audFLOAT64
market_data__total_volume__bchFLOAT64
market_data__total_volume__bdtFLOAT64
market_data__total_volume__bhdFLOAT64
market_data__total_volume__bmdFLOAT64
market_data__total_volume__bnbFLOAT64
market_data__total_volume__brlFLOAT64
market_data__total_volume__btcFLOAT64
market_data__total_volume__cadFLOAT64
market_data__total_volume__chfFLOAT64
market_data__total_volume__clpFLOAT64
market_data__total_volume__cnyFLOAT64
market_data__total_volume__czkFLOAT64
market_data__total_volume__dkkFLOAT64
market_data__total_volume__dotFLOAT64
market_data__total_volume__eosFLOAT64
market_data__total_volume__ethFLOAT64
market_data__total_volume__eurFLOAT64
market_data__total_volume__gbpFLOAT64
market_data__total_volume__hkdFLOAT64
market_data__total_volume__hufFLOAT64
market_data__total_volume__idrFLOAT64
market_data__total_volume__ilsFLOAT64
market_data__total_volume__inrFLOAT64
market_data__total_volume__jpyFLOAT64
market_data__total_volume__krwFLOAT64
market_data__total_volume__kwdFLOAT64
market_data__total_volume__lkrFLOAT64
market_data__total_volume__ltcFLOAT64
market_data__total_volume__mmkFLOAT64
market_data__total_volume__mxnFLOAT64
market_data__total_volume__myrFLOAT64
market_data__total_volume__ngnFLOAT64
market_data__total_volume__nokFLOAT64
market_data__total_volume__nzdFLOAT64
market_data__total_volume__phpFLOAT64
market_data__total_volume__pkrFLOAT64
market_data__total_volume__plnFLOAT64
market_data__total_volume__rubFLOAT64
market_data__total_volume__sarFLOAT64
market_data__total_volume__sekFLOAT64
market_data__total_volume__sgdFLOAT64
market_data__total_volume__thbFLOAT64
market_data__total_volume__tryFLOAT64
market_data__total_volume__twdFLOAT64
market_data__total_volume__uahFLOAT64
market_data__total_volume__usdFLOAT64
market_data__total_volume__vefFLOAT64
market_data__total_volume__vndFLOAT64
market_data__total_volume__xagFLOAT64
market_data__total_volume__xauFLOAT64
market_data__total_volume__xdrFLOAT64
market_data__total_volume__xlmFLOAT64
market_data__total_volume__xrpFLOAT64
market_data__total_volume__yfiFLOAT64
market_data__total_volume__zarFLOAT64
market_data__total_volume__bitsFLOAT64
market_data__total_volume__linkFLOAT64
market_data__total_volume__satsFLOAT64
community_data__facebook_likesJSON
community_data__twitter_followersJSON
community_data__reddit_average_posts_48hFLOAT64
community_data__reddit_average_comments_48hFLOAT64
community_data__reddit_subscribersFLOAT64
community_data__reddit_accounts_active_48hSTRING
developer_data__forksFLOAT64
developer_data__starsFLOAT64
developer_data__subscribersFLOAT64
developer_data__total_issuesFLOAT64
developer_data__closed_issuesFLOAT64
developer_data__pull_requests_mergedFLOAT64
developer_data__pull_request_contributorsFLOAT64
developer_data__code_additions_deletions_4_weeks__additionsFLOAT64
developer_data__code_additions_deletions_4_weeks__deletionsFLOAT64
developer_data__commit_count_4_weeksFLOAT64
public_interest_stats__alexa_rankJSON
public_interest_stats__bing_matchesJSON
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.
ColumnTypeDescription
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: market_chart__prices

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: market_chart__prices__list

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: market_chart__market_caps

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: market_chart__market_caps__list

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: market_chart__total_volumes

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

Subtable: market_chart__total_volumes__list

ColumnTypeDescription
_kaivo_parent_idSTRINGForeign key referencing _kaivo_id in the parent table. Auto-generated by Kaivo.
_kaivo_idSTRINGPrimary key that uniquely identifies the row. Auto-generated by Kaivo.
valueFLOAT64
_kaivo_extracted_atTIMESTAMPTimestamp that shows when the row was extracted. Auto-generated by Kaivo.

How the CoinGecko sync works

After the first load, Kaivo keeps your BigQuery warehouse up to date for you. Where CoinGecko supports it, each sync pulls only new and changed records so it stays fast; otherwise it refreshes the whole table. Every record keeps its original ID, so you won't get duplicate rows.

Frequently asked questions

How long does the initial sync take for CoinGecko?

It depends on how much history is in your CoinGecko account. Most initial syncs finish within minutes, while large accounts can take a few hours. After that, syncs only fetch new and changed records, so they're much faster.

Can I sync only some tables or columns?

Yes. You pick which tables to sync when you set up the connection and can change the selection later. Tables you don't select are never copied to your warehouse.

What happens when CoinGecko's schema changes?

New fields are never added automatically. You choose which fields to sync, so data you haven't selected (sensitive personal data, for example) never lands in your warehouse. When a new field appears, it becomes available for you to add. What happens to removed or renamed fields depends on a table's sync mode: full-refresh tables always match what's currently in CoinGecko, so dropped fields disappear, while incremental tables keep their existing columns and history, so an old field stays and newly added fields fill in over time.

How do I handle GDPR or data deletion requests?

Your data lives in your own Kaivo-managed BigQuery warehouse, so the most direct option is to delete or anonymise specific records right in BigQuery. If you delete data in CoinGecko instead, full-refresh tables drop it on the next sync, while incremental tables keep it, so you would remove the row in BigQuery or ask us to run a full refresh. To remove everything, delete the CoinGecko connector in Kaivo and all of its synced data is deleted with it.

Common use cases for CoinGecko data

Price tracking

Use market_chart prices to chart coin prices over your chosen window.

Analyse market_caps and total_volumes to see how coins move in size and liquidity.

Historical snapshots

Use history to compare market_data for a coin across dates.

Portfolio context

Join price history to your holdings to value a portfolio over time.

Use CoinGecko data in your AI and BI tools

Once CoinGecko data lands in your Kaivo-managed BigQuery warehouse, you can explore it with AI tools or any BI tool that connects to BigQuery. Here's how the most common destinations work with CoinGecko data.

Claude

Use Kaivo's MCP server to give Claude secure, workspace-scoped access to your data. Setup guide →

Power BI

Microsoft's BI tool with a native BigQuery connector. Supports direct query and scheduled refresh. Setup guide →

Data Studio

Free Google BI tool with native BigQuery support. One-click connection to your Kaivo warehouse; great for SMB teams on Google Workspace. Setup guide →

Tableau

The premium analytics standard, with native BigQuery integration. Setup guide →

Google Sheets

Use Connected Sheets to query BigQuery directly from a spreadsheet, with no SQL. Setup guide →

Excel

Connect via Power Query's BigQuery connector. Setup guide →

Metabase

Open-source BI tool with strong BigQuery support. Setup guide →

See our pricing page for CoinGecko connector pricing and plan details.

Was this helpful?

Still need help? Share an idea