KURV 数据 API
数据 API 回答代理或仪表盘想了解 KURV 的问题:发布了多少合集,铸造了什么,有哪些资金流动,报名来自哪里。它是只读的。一把密钥只打开 /api/v1 下的 GET 路由,别无其他:这里没有任何路由会创建、更改、签名或花费任何东西。
认证
“认证”部分每个请求都把 API 密钥作为 bearer 令牌携带:
Authorization: Bearer kurv_sk_...密钥由 KURV 团队创建,每个代理一把,创建时只显示一次。KURV 只保存摘要,所以丢失的密钥只能更换,不能找回。密钥可随时吊销,吊销后的下一个请求会被拒绝。没有密钥、使用已吊销的密钥、或密钥缺少该路由的权限范围的请求,会得到 401 或 403,并附一句说明。
权限范围
“权限范围”部分| 权限范围 | 打开 |
|---|---|
kurv:stats:read | 4 条 /api/v1/stats/* 路由:数量、成交量、费用和来源,任何回答中都没有邮箱和姓名 |
kurv:admin:read | /api/v1/admin/*:含邮箱的申请、接受邀请的人、每个合集背后的人、用掉的名额、每日导出,以及按来源统计的数量 |
一把密钥带一个或两个权限范围。只有管理权限范围会携带邮箱。
端点
“端点”部分| 请求 | 回答 |
|---|---|
GET /api/v1/stats/overview?chain= | 已发布的合集、铸造、独立铸造者、成交量、费用、创作者和报名,分别统计最近 24 小时、最近 7 天和全部时间 |
GET /api/v1/stats/collections?chain=&sort=volume|mints|new&cursor= | 每个已发布的合集及其 total_minted、按币种的成交量、最近一次铸造和创作者账户,每页 25 条 |
GET /api/v1/stats/mints?chain=&since=&cursor= | 铸造记录,最新在前,每页 50 条,从 since 起 |
GET /api/v1/stats/users?chain=&since= | 报名、各网络的账户、活跃的创作者和铸造者、按来源标签的分布,以及从报名到发布的漏斗 |
GET /api/v1/admin/signups?since=&source= | 申请、账户、含兑换记录的邀请链接、按来源统计的数量,以及未带标签发布的合集 |
GET /api/v1/admin/acceptances?since=&source= | 每一条已接受的邀请,最新的在前:账户、其资料、其 X 用户名、申请里写明的邮箱、时间,以及到来时的标签 |
GET /api/v1/admin/creators?chain=&since= | 每个网络(或 chain 指定的网络)上每个合集背后的人:账户、其资料、其用户名,以及已知时的 X 用户名 |
GET /api/v1/admin/seats | 到目前为止用掉的名额,按天列出 |
GET /api/v1/admin/funnel?chain=&since= | 某个网络上已接受的邀请,按时段和标签列出,并附漏斗 |
GET /api/v1/admin/testers | 所有已进入的人和在指南中报告过的人,以及每项任务的状态。他们的备注不包括在内 |
GET /api/v1/admin/export?day= | 每天瓜亚基尔时间上午 6:30写入的导出,那一天的或最新的,并列出现有的日期:接受记录、创作者和名额,截至运行时刻完整 |
chain 指定此部署提供的一个网络:base-sepolia(或其链 ID 84532)或 solana-devnet;省略时为默认的 EVM 链。since 是 ISO 8601 或 unix 秒。cursor 是上一页的 pagination.next_cursor,内容不透明,最后一页为 null。
在接受记录、创作者和导出中,email_basis 说明这一行带的是哪种邮箱。founder_tagged_link 的 email 已验证:KURV 团队为一个人给链接打了标签,它被使用了一次,且有一份申请带这个标签。ref_tag_unverified 的 email_claimed 只是声称,绝不是身份:账户来自带 ref 标签的地址,且有一份申请带这个标签,但任何人都能输入这样的地址。2026 年 10 月 30 日之前的标签两者都不给,表单里输入的用户名也不给。
每个回答都带 api_version、chain、environment 和 read_at。金额是以最小单位表示的十进制字符串,native 下每种币一项;usd 是 USDC 部分换算成的美元,若只有没有美元价格的币种有流动,则为 null。一种币的金额绝不会与另一种币相加。
每条各一个示例
“每条各一个示例”部分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 }限制与新鲜度
“限制与新鲜度”部分每把密钥每分钟可发 120 个请求,在 /api/v1/admin/* 上每分钟 30 个。超过后回答是带 retry-after 头的 429。每个回答最多只有 60 秒旧:服务器每分钟读取一次,read_at 就是那次读取的时间。要跟进实时铸造,每 30 到 60 秒调用一次 /api/v1/stats/mints,把 since 设为你上次看到的 read_at;没有需要保持打开的流。
密钥不能做什么
“密钥不能做什么”部分什么都不能。密钥只能读。它不能创建合集、准备发布、铸造、交易、更改资料或触碰邀请。需要构建合集的代理应改为经本人批准通过 MCP 连接,那个连接与任何密钥无关。
错误使用 { "api_version": "1", "error": { "code": "...", "message": "..." } },状态码为 400、401、403、429 或 503。无需密钥的公开路由见 公开 API;KURV 开发者 列出了所有入口。 这些数字中的费用是每个合集自己的费用:请阅读 费用 和 风险与免责声明。
此处内容均不构成财务建议。在铸造、购买或卖回之前,请先阅读风险与免责声明。返回 kurv.fun。隐私政策。使用条款。 。