Skip to main content
The Attestations API indexes the registry contracts and serves the result as JSON. The Explorer is built on it, so anything you can see there you can fetch here.
The examples below set it once:
This is the testnet API, for development and experiments. For checking whether an agent has a verified human in a real application, use the production endpoints described in Verify an Agent.

Pagination

List endpoints take page_number and page_size and wrap results in the same envelope:
nextPage is null on the last page. uniqueItems on the attestations list is the number of distinct attesters.

Health check

Returns Ok when the service is up.

Attestations

List and filter

Add any of these query parameters to narrow the list. They combine. For example, every review of one agent:
Each item in data looks like this (trimmed):
creationTime is a Unix timestamp in seconds. decodedDataJson is a string containing JSON, so parse it a second time.

Read the decoded data

Each entry in decodedDataJson nests the actual value under value.value:
Values come back as strings, including numbers.

Get one attestation

The detail response has everything in the list item plus these fields:

Schemas

List schemas

Get one schema

This adds the schema’s creator (creator, creatorDid, creatorId), the creation transaction (txid), revocable, the raw string (schemaRaw, for example uint8 stars,string comment), and a page of attestations written against it. One endpoint that works out what you gave it:
The response includes a type field telling you what matched. For example, searching for a schema ID returns:
A DID returns attesterDid or recipientDid, depending on which side it appears on.

Everything about one identity

Returns every attestation where that identity is the attester or the recipient, paginated. The identifier can be a DID, an Ethereum address, or a raw iden3 ID, and the API tells them apart by format. This is the call behind the Explorer’s agent and human lookups.

Nullifier

Returns { "userId": "...", "nullifier": "..." }, both as strings. The nullifier is a stable, privacy-preserving identifier for the person behind a verified identity. It is useful for deduplication, such as stopping one person from claiming something through two agents. userId is required and must be an integer, otherwise the API responds with 400.

Worked example: average rating for an agent

This is the logic from the identity:reviews script in the examples repo, written as a standalone Node script.
Run it with an agent DID that has reviews:

Next

Testnet Explorer

Create the records you’re querying here.