Architecture
Blockchain anchoring is asynchronous: the API responds with the operation inPENDING state and its transaction hash, and the anchor is confirmed once the transaction is mined. This applies to RKP-1 and to the on-chain path of RKP-3. RKP-2 writes nothing on-chain.
Core Resources
Vaults
Vaults are the top-level containers for your files. Each vault has its own protocol configuration, access controls, and lifecycle management.
Files
Files are the primary asset type within a vault. Each file supports versioning, validation, and history traversal - all with integrity anchoring.
Records
Individual records within a table, with full version history and per-record integrity validation.
Data Recovery
Restore soft-deleted vaults and files within the recovery window. Blockchain anchors are unaffected - on-chain proofs remain valid regardless of deletion state.
Key Capabilities
Base URLs
All endpoints are relative to this base URL. There is no separate development host: to try things out, use a test API key against the same API. See Test and Live Data.
Authentication
Every request must include your API key in thex-api-key header:
Protocol Configuration
Each vault is configured with a data processing protocol that determines how writes are anchored:Request Format
All request bodies must be sent as JSON with theContent-Type: application/json header.
Response Format
Responses are JSON objects. Successful responses return a2xx status code. Errors return a structured object with a machine-readable code and a human-readable message. See Error Reference for the full error schema.
Rate Limits
Each plan has its own API rate limit, in requests per minute, and some operations, such as listing and restoring deleted items, have limits of their own. Over a rate limit the API answers429 Too Many Requests with a Retry-After header. Your plan also sets quotas, such as a monthly number of API requests; a request over a quota is refused with usage_limit_exceeded. When ROOTKey is too busy to take a request it answers 503 Service Unavailable, also with Retry-After. See Rate Limits for the limits, and Retrying a failed request for which failures are safe to send again.