API ข้อมูลของ KURV
API ข้อมูลตอบคำถามที่เอเจนต์หรือแดชบอร์ดถามเกี่ยวกับ KURV: เปิดตัวคอลเลกชันไปกี่ชุด มินต์อะไรไปบ้าง มีอะไรเคลื่อนไหว การสมัครมาจากไหน มันอ่านได้อย่างเดียว คีย์หนึ่งดอกเปิดเฉพาะเส้นทาง GET ใต้ /api/v1 และไม่มีอย่างอื่น: ไม่มีเส้นทางใดที่นี่สร้าง เปลี่ยน ลงนาม หรือใช้จ่ายสิ่งใด
การยืนยันตัวตน
หัวข้อที่มีชื่อว่า “การยืนยันตัวตน”ทุกคำขอส่งคีย์ API ไปเป็น bearer token:
Authorization: Bearer kurv_sk_...คีย์สร้างโดยทีม KURV หนึ่งดอกต่อหนึ่งเอเจนต์ และแสดงเพียงครั้งเดียวตอนสร้าง KURV เก็บไว้เฉพาะค่าสรุป ดังนั้นคีย์ที่หายจะถูกออกใหม่ ไม่ใช่กู้คืน คีย์เพิกถอนได้ทุกเมื่อ คำขอถัดไปจะถูกปฏิเสธ คำขอที่ไม่มีคีย์ ใช้คีย์ที่ถูกเพิกถอน หรือใช้คีย์ที่ไม่มีขอบเขตของเส้นทางนั้น จะได้ 401 หรือ 403 พร้อมประโยคเดียวที่บอกเหตุผล
| ขอบเขต | เปิด |
|---|---|
kurv:stats:read | เส้นทาง /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 (หรือรหัสเชน 84532) หรือ solana-devnet หากไม่ระบุจะเป็นเชน EVM เริ่มต้น since เป็น ISO 8601 หรือวินาที unix cursor คือ pagination.next_cursor ของหน้าก่อน เป็นค่าทึบ และเป็น null ในหน้าสุดท้าย
ในการตอบรับ ผู้สร้าง และข้อมูลส่งออก email_basis บอกว่าแถวนั้นมีอีเมลแบบใด email กับ founder_tagged_link ได้รับการยืนยันแล้ว: ทีม KURV ติดแท็กลิงก์ให้คนเดียว ใช้ไปหนึ่งครั้ง และมีใบสมัครหนึ่งใบที่มีแท็กนั้น ส่วน email_claimed กับ ref_tag_unverified เป็นการอ้าง ไม่ใช่ตัวตน: บัญชีมาจากที่อยู่ที่มีแท็ก ref และมีใบสมัครหนึ่งใบที่มีแท็กนั้น แต่ใครก็พิมพ์ที่อยู่แบบนั้นได้ แท็กก่อนวันที่ 30 ตุลาคม 2026 ไม่ให้ทั้งสองอย่าง และแฮนเดิลที่พิมพ์ในแบบฟอร์มก็เช่นกัน
ทุกคำตอบมี 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 ครั้งต่อนาที และ 30 ครั้งต่อนาทีบน /api/v1/admin/* เกินกว่านั้นคำตอบคือ 429 พร้อมส่วนหัว retry-after ทุกคำตอบเก่าได้ไม่เกิน 60 วินาที: เซิร์ฟเวอร์อ่านนาทีละครั้ง และ read_at คือเวลาของการอ่านครั้งนั้น หากต้องการตามการมินต์ที่เกิดขึ้น ให้เรียก /api/v1/stats/mints ทุก 30 ถึง 60 วินาที โดยตั้ง since เป็น read_at ล่าสุดที่คุณเห็น ไม่มีสตรีมที่ต้องเปิดค้างไว้
สิ่งที่คีย์ทำไม่ได้
หัวข้อที่มีชื่อว่า “สิ่งที่คีย์ทำไม่ได้”ทำอะไรไม่ได้เลย คีย์มีไว้อ่าน มันสร้างคอลเลกชัน เตรียมการเปิดตัว มินต์ ซื้อขาย เปลี่ยนโปรไฟล์ หรือแตะต้องคำเชิญไม่ได้ เอเจนต์ที่ควรสร้างคอลเลกชันให้เชื่อมต่อผ่าน MCP แทน โดยได้รับการอนุมัติจากบุคคลนั้น และการเชื่อมต่อนั้นแยกจากคีย์ใด ๆ
ข้อผิดพลาดใช้ { "api_version": "1", "error": { "code": "...", "message": "..." } } พร้อมรหัสสถานะ 400, 401, 403, 429 หรือ 503 เส้นทางสาธารณะที่ไม่ต้องใช้คีย์อธิบายไว้ใน API สาธารณะ ส่วน KURV for Developers แสดงจุดเข้าทุกจุด ค่าธรรมเนียมในตัวเลขเหล่านี้เป็นของแต่ละคอลเลกชันเอง: อ่าน ค่าธรรมเนียม และ ความเสี่ยงและข้อจำกัดความรับผิด
เนื้อหาในที่นี้ไม่ใช่คำแนะนำทางการเงิน โปรดอ่านความเสี่ยงและข้อจำกัดความรับผิดชอบก่อนมินต์ ซื้อ หรือขายคืน กลับไปที่ kurv.fun นโยบายความเป็นส่วนตัว ข้อกำหนดการใช้งาน