Skip to main content
REST API REST is our primary API for interacting with the node from scripts, libraries, and system-to-system integration. Here you can find the latest OpenAPI documentation along with usage examples. Interactive Swagger UI is also available on HTTP port of all running nodes. If you are considering to build applications on top of Kamu Node - also consider using GraphQL API. For accessing individual components of the datasets (blocks, references, data slices) you can use ODF protocol.

Reading Data

To get dataset information like description, schema, etc. use /metadata endpoint:
To get sample data from any dataset use /tail endpoint:
To execute arbitrary SQL that can access multiple datasets at once use /query endpoint:
The /query endpoint also supports POST requests for finer control: Example request body:
Example response:

Cryptographic Proofs

Cryptographic proofs can be also requested to hold the node forever accountable for the provided result. Example request body:
Example response:
A client that gets a proof in response should perform a few basic steps to validate the proof integrity. For example making sure that the DID in proof.verificationMethod actually corresponds to the node you’re querying data from and that the signature in proof.proofValue is actually valid. Only after this you can use this proof to hold the node accountable for the result. A proof can be stored long-term and then disputed at a later point using your own node or a 3rd party node you can trust via the /verify endpoint. Example request:
Example response:
See commitments documentation for details.

Ingesting Data

Example using curl:
Example using xh:
Content types correspond directly to supported input formats:
Last modified on March 16, 2026