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.
Authentifizierung
Abschnitt betitelt „Authentifizierung“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.
Bereiche
Abschnitt betitelt „Bereiche“| Bereich | Öffnet |
|---|---|
kurv:stats:read | Die 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.
Endpunkte
Abschnitt betitelt „Endpunkte“| Anfrage | Antwortet 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/seats | Die 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/testers | Alle 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.
Je ein Beispiel
Abschnitt betitelt „Je ein Beispiel“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": [ ] }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 } }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 } }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." ] }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 }Grenzen und Aktualität
Abschnitt betitelt „Grenzen und Aktualität“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.
Was ein Schlüssel nicht kann
Abschnitt betitelt „Was ein Schlüssel nicht kann“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. .