API reference
Migrate from the old API
On 19 Oct 2026 coingraph.ai moved to a new API. Old endpoints now answer 410 Gone with their replacement, old API keys no longer work, and the 0.1 SDKs are retired. This page maps each old call to the new one.
What changed #
- One base URL,
https://coingraph.ai/api/v1, and one response envelope:{ object, id, as_of, data, sources }. Errors are{ error: { code, message } }. - Tokens are named by
token(a CoinGecko id likesolana, a symbol likeLINK, or a contract address) instead ofasset. - Keys come from a CoinGraph account and spend credits instead of a monthly call quota. Keys from the previous site were not carried over.
- Free endpoints still need no key: the token list, the standard check, briefs, the track record and proofs. Paid calls use a key with credits or pay per call with x402.
- The MCP server lives at
https://coingraph.ai/mcpand asks you to sign in when you connect.
Old endpoint → new endpoint #
| Old | New | Notes |
|---|---|---|
GET /api/v1/assets/{id} | GET /api/v1/state/{token} | Everything known about a token now, in sections. Add ?sections= to trim it. |
GET /api/v1/assets/{id}/diff?since=7d | GET /api/v1/history/{token}?since=… | Series and events since an ISO time, e.g. 2026-10-24T00:00:00Z, instead of a window like 7d. |
GET /api/v1/compare?assets=a,b | GET /api/v1/state/{token} | One call per token; compare on your side. |
GET|POST /api/v1/discover | GET /api/v1/tokens | The tracked tokens with price, 24h change and open signals. For a screened shortlist, run the Opportunity Scout. |
GET /api/v1/search?q= | GET /api/v1/tokens?q= | Name, symbol or contract address. |
GET /api/v1/signals | GET /api/v1/record?kind=signal | Signals with what happened next. One token's open signals: /api/v1/state/{token}?sections=signals. Pushed to you: monitors. |
POST /api/v1/evaluate | POST /api/v1/evaluate | Same path, new body: { token, size_usd, policy }. asset, intent and horizon_days are gone. Without a size, GET /api/v1/evaluate/{token} is free. |
POST /api/v1/validate | POST /api/v1/evaluate | Send size_usd and your policy; each rule comes back pass, fail or unknown. The rule names changed: see the evaluate page. |
POST /api/v1/portfolio/risk | POST /api/v1/agents/portfolio-checkup | For a wallet: { chain, address }. For a list of holdings, send each to POST /api/v1/evaluate with its size_usd. |
GET /api/v1/openapi.json | GET /openapi.json | Same path still works; it now describes the new API. |
What an old call gets now #
Every retired path answers 410 Gone with the replacement, a ready-made URL when the old request had enough to build one, and a Sunset header. A call that still sends a key also gets key_note.
{
"error": {
"code": "endpoint_retired",
"message": "GET /api/v1/search was retired on 19 Oct 2026 with the previous CoinGraph API. Search is now part of the token list: pass q for a name, symbol or contract address.",
"retired": "GET /api/v1/search",
"retired_on": "2026-10-19",
"replacement": {
"method": "GET",
"endpoint": "https://coingraph.ai/api/v1/tokens?q={query}",
"docs": "https://coingraph.ai/docs/api/tokens",
"example": "https://coingraph.ai/api/v1/tokens?q=link"
},
"migration_guide": "https://coingraph.ai/docs/migrate",
"key_note": "API keys were reissued on 19 Oct 2026: keys from the previous site no longer work. Create a new key (with credits) at https://coingraph.ai/account/keys."
}
}New API keys and credits #
Keys from the previous site no longer work: a paid call with one gets 401 invalid_key. Sign in at coingraph.ai/signin and create a key on Account → API keys. It still starts with cg_live_ and goes in the same header:
curl "https://coingraph.ai/api/v1/state/solana" \
-H "Authorization: Bearer $COINGRAPH_KEY"Paid calls spend credits: a data call costs 1, a premium call 5, a Pro agent 25. Every account starts with 1,000 free credits, then gets 250 a month. Plans and top-ups are on Pricing & payments; all the ways in are on Get access.
MCP server #
Connect to https://coingraph.ai/mcp. The old address, https://coingraph.ai/api/mcp, still reaches it. Your MCP client opens a sign-in page the first time; tool calls then spend your account's credits at the same prices as the REST API. Setup for each client is on Connect.
SDKs #
| Package | Status | Instead |
|---|---|---|
coingraph 0.1.0 (Python) | Retired | Calls the old endpoints, which now answer 410. |
@coingraph/sdk 0.1.0 (TypeScript) | Retired | Calls the old endpoints, which now answer 410. |
| ElizaOS and AgentKit adapters 0.1 | Retired | Built on the 0.1 SDKs. |
Until the new official SDKs are out, call the API over plain HTTP or generate a typed client from https://coingraph.ai/openapi.json: both are on Clients & SDKs. The new SDKs are not drop-in replacements for 0.1.
Tip