Index a wallet Kyro has not seen yet
On-demand intake for anyone about to transact with an address Kyro has
never indexed. Starts a multi-chain scan of public on-chain data; the
wallet owner is not involved and no consent gate exists because all
evidence is public. Intake never invents a verdict: poll
GET /api/v1/score/{wallet} until the snapshot commits, then re-run the
decision read.
Idempotent by state: an already-indexed wallet answers 200 with no work;
an in-flight indexing job answers 202 (status: indexing); otherwise a
new job starts (202, status: started). One indexing attempt per wallet
per 10 minutes; a recent failed attempt answers 429 with Retry-After.
One intake consumes 5 rate units (it is far heavier than a cached
read).
Authorization
bearerApiKey Optional Kyro API key: Authorization: Bearer kyro_live_.... Anonymous
access (no header) works on every endpoint with a lower rate limit
(20 units/minute per IP vs 120 units/minute per key). Keys are validated
only when the header is present; a malformed, unknown or revoked key is
rejected with 401 INVALID_KEY.
In: header
Path Parameters
EVM wallet address. 0x + 40 hex characters (case-insensitive).
^0x[a-fA-F0-9]{40}$Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/api/v1/intake/0xd8da6bf26964af9d7eed9e03e53415d37aa96045"{ "ok": true, "version": "v1", "data": { "wallet": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045", "status": "already_indexed", "lastIndexedAt": "2026-08-11T13:36:05.979Z" }}