API FAQ
21 questions. Short answers about keys, limits, idempotency, verification and errors. Product and pricing questions are on the site FAQ.
What is the Invoance API?
How do I create an API key?
Open Settings in the dashboard and create a key. It is shown once; the server stores only its SHA-256. A key looks like invoance_live_<8 characters>_<43 characters>. Set it as INVOANCE_API_KEY or pass it to the SDK client.
AuthenticationWhat do I need to start?
An API key and one SDK, or plain HTTP. Every endpoint is documented with a REST sample. Install the SDK, set the key and send your first record.
npm install invoance
pip install invoance
go get github.com/Invoance/invoance-go
cargo add invoance
gem install invoance
composer require invoance/invoance
dotnet add package Invoance
# Java: com.invoance:invoance on Maven Central
Which SDKs are available?
Is there a sandbox?
No. The Developer plan is free, and its records are real records signed with your key. Use a separate API key for staging so you can revoke it on its own.
PricingHow does authentication work?
Send the key as a Bearer token in the Authorization header, or in the X-API-Key header. Authorization is read first when both are present. A missing, malformed, unknown or revoked key returns 401. A key belongs to one organization and cannot read another organization's records.
AuthenticationWhat scopes does a key have?
Can I have more than one key?
Can I restrict a key to certain IP addresses?
What can I send?
Five record types, one endpoint each. Events go to POST /v1/events, document hashes to POST /v1/document/anchor, AI attestations to POST /v1/ai/attestations and audit events to POST /v1/audit/events. POST /v1/traces opens a trace that groups events, documents and attestations into one sealed bundle.
All endpointsWhat are the size limits?
Does the API support idempotency?
Can I change or delete a record?
How do I verify a record?
Recompute the SHA-256 of what you hold and compare it with the recorded hash. Then check the Ed25519 signature against the organization's public key. Events, documents, AI attestations and public traces have proof endpoints under /v1/proof that need no key. Audit events are verified with a key that has audit:read.
Open the verifierWhere is my organization's public key?
Can I verify offline?
Yes. Every SDK checks an attestation signature from the get response with no call to Invoance, and does the same for an audit event, pinning the key from GET /keys/{domain} when you pass it. Any Ed25519 library can do the same with the signed bytes, the signature and the key.
Verification guideDoes the proof endpoint show my data?
What are the rate limits?
What does an error response look like?
A JSON object with two fields. error is a stable code you can match on. message is text for people and may change. A 429 rate_limited also carries retry_after, plan_tier, limit_per_sec, upgrade_url.
{
"error": "invalid_api_key",
"message": "The API key is invalid or does not exist. Double-check the key and try again."
}
What happens when I reach my monthly quota?
Where is the full list of error codes?
On the Errors page, grouped the way the backend groups them, with the HTTP status for each code and when it is returned.
Every error code