Zum Inhalt springen
App öffnen

KURV-Daten-API

Die Daten-API beantwortet die Fragen, die ein Agent oder ein Dashboard zu KURV stellt: wie viele Kollektionen gestartet sind, was gemintet wurde, was sich bewegt hat, woher die Anmeldungen kamen. Sie ist nur lesend. Ein Schlüssel öffnet nur die GET-Routen unter /api/v1 und sonst nichts: Keine Route hier erstellt, ändert, signiert oder gibt etwas aus.

Jede Anfrage trägt einen API-Schlüssel als Bearer-Token:

Authorization: Bearer kurv_sk_...

Schlüssel erstellt das KURV-Team, einen pro Agent, und zeigt sie beim Erstellen einmal an. KURV speichert nur einen Digest, daher wird ein verlorener Schlüssel ersetzt, nie wiederhergestellt. Ein Schlüssel lässt sich jederzeit widerrufen; seine nächste Anfrage wird abgelehnt. Anfragen ohne Schlüssel, mit einem widerrufenen Schlüssel oder mit einem Schlüssel ohne den Bereich der Route bekommen ein 401 oder 403 mit einem Satz, der das sagt.

BereichÖffnet
kurv:stats:readDie vier Routen /api/v1/stats/*: Zahlen, Volumen, Gebühren und Quellen, ohne E-Mail und ohne Namen in irgendeiner Antwort
kurv:admin:read/api/v1/admin/*: Bewerbungen mit ihren E-Mails, wer eine Einladung angenommen hat, die Person hinter jeder Kollektion, die belegten Plätze, der tägliche Export und die Zahlen nach Quelle

Ein Schlüssel trägt einen Bereich oder beide. Der Admin-Bereich ist der einzige, der E-Mails enthält.

AnfrageAntwortet mit
GET /api/v1/stats/overview?chain=Gestartete Kollektionen, Mints, einzelne Minter, Volumen, Gebühren, Creator und Anmeldungen, jeweils für die letzten 24 Stunden, die letzten 7 Tage und seit Beginn
GET /api/v1/stats/collections?chain=&sort=volume|mints|new&cursor=Jede gestartete Kollektion mit total_minted, ihrem Volumen nach Coin, ihrem letzten Mint und ihrem Creator-Konto, 25 pro Seite
GET /api/v1/stats/mints?chain=&since=&cursor=Mints, die neuesten zuerst, 50 pro Seite, ab since
GET /api/v1/stats/users?chain=&since=Anmeldungen, Konten pro Netzwerk, aktive Creator und Minter, die Aufschlüsselung nach Quell-Tag und der Trichter von der Anmeldung bis zum Start
GET /api/v1/admin/signups?since=&source=Bewerbungen, Konten, Einladungslinks mit ihren Einlösungen, Zahlen nach Quelle und Starts, die kein Tag trugen
GET /api/v1/admin/acceptances?since=&source=Jede angenommene Einladung, die neueste zuerst: das Konto, sein Profil, sein X-Handle, eine E-Mail, wenn eine Bewerbung sie nennt, die Zeit und das Tag, mit dem es kam
GET /api/v1/admin/creators?chain=&since=Die Person hinter jeder Kollektion auf jedem Netzwerk oder auf dem, das chain nennt: das Konto, sein Profil, sein Handle und sein X-Handle, soweit bekannt
GET /api/v1/admin/seatsDie bisher belegten Plätze, Tag für Tag
GET /api/v1/admin/funnel?chain=&since=Angenommene Einladungen in einem Netzwerk, je Zeitraum und nach Tag, und der Trichter dazu
GET /api/v1/admin/testersAlle Eingelassenen und alle, die im Tester-Leitfaden berichtet haben, mit dem Stand jeder Aufgabe. Ihre Notizen bleiben draußen
GET /api/v1/admin/export?day=Der Export, der jeden Tag um 6:30 Uhr in Guayaquil geschrieben wird, der jenes Tages oder der neueste, mit den vorhandenen Tagen: die Annahmen, die Personen und die Plätze, vollständig bis zum Moment des Laufs

chain nennt ein Netzwerk, das das Deployment bedient, base-sepolia (oder seine Chain-ID, 84532) oder solana-devnet; fehlt es, ist es die Standard-EVM-Chain. since ist ISO 8601 oder Unix-Sekunden. cursor ist der pagination.next_cursor der vorherigen Seite, undurchsichtig, und auf der letzten Seite null.

In Annahmen, Personen und im Export sagt email_basis, welche Art E-Mail eine Zeile trägt. email mit founder_tagged_link ist bestätigt: Das KURV-Team hat den Link für eine Person getaggt, er wurde einmal benutzt, und eine Bewerbung trägt das Tag. email_claimed mit ref_tag_unverified ist eine Behauptung und nie eine Identität: Das Konto kam über eine Adresse mit einem ref-Tag, und eine Bewerbung trägt dieses Tag, aber so eine Adresse kann jeder eintippen. Tags vor dem 30. Oktober 2026 ergeben keines von beiden, ebenso wenig ein in ein Formular getipptes Handle.

Jede Antwort trägt api_version, chain, environment und read_at. Beträge sind Basiseinheiten als dezimale Strings, ein Eintrag pro Coin unter native; usd ist der USDC-Anteil in Dollar oder null, wenn sich nur ein Coin ohne Dollarwert bewegt hat. Geld in einem Coin wird nie zu Geld in einem anderen addiert.

Terminal-Fenster
curl -H "Authorization: Bearer $KURV_KEY" \
"https://testnet.kurv.fun/api/v1/stats/overview?chain=base-sepolia"
{ "api_version": "1", "chain": "base-sepolia", "read_at": "2026-10-25T18:02:11.000Z",
"windows": { "24h": { "collections": { "created": 3, "drafts": 2, "launched": 1 }, "mints": { "events": 12, "pieces": 12 },
"unique_minters": 9, "volume": { "native": [{ "asset_id": "evm:84532:token:0x036c...", "symbol": "USDC", "decimals": 6, "base_units": "48000000" }], "usd": "48.00" },
"fees": { "native": [{ "asset_id": "evm:84532:token:0x036c...", "symbol": "USDC", "decimals": 6, "base_units": "2400000" }], "usd": "2.40" },
"creators": 1, "signups": 3 }, "7d": { }, "all": { } },
"notes": [ ] }
Terminal-Fenster
curl -H "Authorization: Bearer $KURV_KEY" \
"https://testnet.kurv.fun/api/v1/stats/collections?chain=base-sepolia&sort=volume"
{ "sort": "volume", "collections": [ { "id": "evm:84532:0xabc...", "address": "0xabc...", "name": "MAXCAT", "creator": "0x2787...",
"launched_at": "2026-10-20T15:00:00.000Z", "total_minted": 120, "volume": { "native": [ ], "usd": "600.00" }, "last_mint_at": "2026-10-25T17:40:02.000Z" } ],
"pagination": { "limit": 25, "next_cursor": null, "total": 1 } }
Terminal-Fenster
curl -H "Authorization: Bearer $KURV_KEY" \
"https://testnet.kurv.fun/api/v1/stats/mints?chain=base-sepolia&since=2026-10-25T17:00:00Z"
{ "since": "2026-10-25T17:00:00.000Z", "mints": [ { "id": "evm:84532:0xabc...:4200100:3", "collection": "evm:84532:0xabc...", "minter": "0x70997...",
"pieces": 1, "paid": { "symbol": "USDC", "decimals": 6, "base_units": "5000000" }, "tx": "0x5e2b...", "at": "2026-10-25T17:40:02.000Z" } ],
"pagination": { "limit": 50, "next_cursor": null } }
Terminal-Fenster
curl -H "Authorization: Bearer $KURV_KEY" \
"https://testnet.kurv.fun/api/v1/stats/users?chain=base-sepolia"
{ "accounts": { "base_sepolia": 34, "solana_devnet": 6 },
"windows": { "7d": { "signups": 5, "active_creators": 2, "active_minters": 9, "by_source": { "XD-ana": { "signups": 2, "accounts": 1, "launched": 1 } },
"funnel": { "visits": 40, "submissions": 5, "building": 3, "launched": 2 } } },
"notes": [ "Visits, sign-ups and the wizard are not per network." ] }
Terminal-Fenster
curl -H "Authorization: Bearer $KURV_ADMIN_KEY" \
"https://testnet.kurv.fun/api/v1/admin/signups?since=2026-10-01&source=XD-ana"
{ "applications": [ { "handle": "ana_builds", "email": "[email protected]", "created_at": "2026-10-24T09:12:00.000Z", "ref": "XD-ana" } ],
"accounts": { "base_sepolia": 34, "solana_devnet": 6 },
"invites": [ { "link_id": "3f9c...", "label": "Friends on X", "uses": 12,
"redemptions": [ { "account": "0x3c44...", "handle": "ana_builds", "accepted_at": "2026-10-24T10:01:00.000Z", "ref": "XD-ana" } ] } ],
"by_source": { "XD-ana": { "signups": 2, "accepted": 1, "launched": 1 } },
"launched_outside_outreach": 7 }

Jeder Schlüssel darf 120 Anfragen pro Minute stellen, auf /api/v1/admin/* 30 pro Minute. Darüber hinaus ist die Antwort 429 mit einem Header retry-after. Jede Antwort ist höchstens 60 Sekunden alt: Der Server liest einmal pro Minute, und read_at ist der Zeitpunkt dieses Lesens. Um Mints zu verfolgen, während sie passieren, ruf /api/v1/stats/mints alle 30 bis 60 Sekunden auf, mit since auf dem letzten read_at, das du gesehen hast; es gibt keinen Stream, den du offen halten musst.

Nichts. Ein Schlüssel liest. Er kann keine Kollektion erstellen, keinen Start vorbereiten, nicht minten, nicht handeln, kein Profil ändern und keine Einladung anfassen. Ein Agent, der Kollektionen bauen soll, verbindet sich stattdessen über MCP, mit der Zustimmung der Person, und diese Verbindung ist von jedem Schlüssel getrennt.

Fehler nutzen { "api_version": "1", "error": { "code": "...", "message": "..." } } mit den Statuscodes 400, 401, 403, 429 oder 503. Die öffentlichen Routen ohne Schlüssel sind unter Öffentliche APIs beschrieben; KURV für Entwickler listet jeden Einstiegspunkt. Die Gebühren in diesen Zahlen sind die eigenen jeder Kollektion: Lies Gebühren und Risiken und Haftungsausschluss.

Nichts hier ist eine Finanzberatung. Lies Risiken und Haftungsausschluss, bevor du mintest, kaufst oder an den Vault zurückverkaufst. Zurück zu kurv.fun. Datenschutzerklärung. Nutzungsbedingungen. .