Re-index a wallet (keyed)
Ask Kyro to (re)index a wallet so its Observed Interaction Graph does
not stay not_indexed or stale forever. Runs the same persisted
indexing pipeline as intake; observed counterparties remain untrusted
observations and never confer endorsement.
Requires an API key. Anonymous callers receive 401 NOT_ALLOWED;
they can still index a never-seen wallet once via
POST /api/v1/intake/{wallet}.
State machine:
- an in-flight run answers
202withstatus: indexing(free); - a snapshot committed within the last 60 minutes answers
200withstatus: fresh,lastIndexedAt,nextRefreshAtandretryAfterSeconds(free); - otherwise the run starts and answers
202withstatus: startedandmode:reindexfor a wallet with a committed snapshot,first_indexfor one without.
Cost: starting a run consumes 5 units. A first_index start draws
from the caller's daily intake cap; a reindex start draws from the
separate daily refresh cap (developer 50, plus 150, pro 500, partner
1000 by default). Free answers (fresh, indexing) carry no rate
headers and consume nothing. A wallet whose last attempt failed within
the past 10 minutes answers 429 after units were consumed, same as
intake. Concurrent requests collapse into a single run.
If the refresh ledger is not provisioned on the deployment, reindex
requests answer 503 SCHEMA_MISSING and nothing is charged or
started (the endpoint fails closed; there is no in-memory fallback
for a paid budget).
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; keyed budgets follow the key's plan, starting
at developer 120). 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
application/json
curl -X POST "https://example.com/api/v1/interaction-graph/0x1234567890abcdef1234567890abcdef12345678/refresh"{ "ok": true, "version": "v1", "data": { "wallet": "0x1234567890abcdef1234567890abcdef12345678", "status": "fresh", "lastIndexedAt": "2026-08-25T14:32:18Z", "nextRefreshAt": "2026-08-25T15:32:18Z", "retryAfterSeconds": 2130 }}