KyroKyro Docs
ReferenceAPI Reference

Read a decision receipt by id

GET
/api/v1/decision-receipts/{id}

Returns the immutable receipt. Successful reads are served with long-lived immutable caching. Costs 1 rate unit.

Authorization

bearerApiKey
AuthorizationBearer <token>

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

id*string

Receipt id. rcp_ followed by 16 URL-safe characters.

Match^rcp_[A-Za-z0-9_-]{16}$

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/decision-receipts/rcp_Zt3kQ9wXb2LmNpQr"
{  "ok": true,  "version": "v1",  "data": {    "receipt": {      "id": "string",      "createdAt": "2019-08-24T14:15:22Z",      "payloadHash": "string",      "wallet": "string",      "username": "string",      "useCase": "payment",      "decision": "allow",      "riskLevel": "string",      "recommendedLimit": {        "amountUsdc": 0,        "currency": "string",        "basis": "string"      },      "reasons": [        {          "code": "string",          "message": "string"        }      ],      "warnings": [        {          "code": "string",          "message": "string"        }      ],      "score": 0,      "evidence": {        "used": [          "string"        ],        "missing": [          "string"        ]      },      "freshness": {        "cacheStatus": "string",        "lastIndexedAt": "2019-08-24T14:15:22Z",        "refreshInProgress": true,        "refreshRecommended": true      },      "scoreModelVersion": "string",      "decisionModelVersion": "string"    }  }}