Browsing records
Record inventory lists the facts Taisce holds, without asking a question first. Record history shows every earlier version of one fact. Both work with a read-only credential.
List records
POST /v1/records/list
Authorization: Bearer <credential>
Content-Type: application/json
{"data_subject_id":"subject-1","limit":20}
{
"records": [{
"id": "4b7f0c1e-2d9a-4e3b-8f61-0a5c9e2d7b14",
"version": "c2e8…",
"subject_entity_id": "…",
"object_entity_id": "…",
"predicate": "lives_in",
"statement_preview": "I moved to Dublin in March.",
"statement_bytes": 27,
"preview_truncated": false,
"source_role": "user",
"recorded_at": "2026-03-04T10:12:00Z",
"status": "current"
}],
"next": {"id": "4b7f0c1e-2d9a-4e3b-8f61-0a5c9e2d7b14"}
}
Leave out data_subject_id to list the whole project. For the next page, send next back as after
with the same filter:
{"data_subject_id":"subject-1","limit":20,"after":{"id":"4b7f0c1e-2d9a-4e3b-8f61-0a5c9e2d7b14"}}
statement_preview holds up to 512 characters. statement_bytes is the size of the full statement,
and preview_truncated tells you the preview was cut. For the full text and its sources, pass the ID
to citation inspection. The version is what you need to
retract or correct a record.
See a record's history
POST /v1/records/history
Authorization: Bearer <credential>
Content-Type: application/json
{"id":"4b7f0c1e-2d9a-4e3b-8f61-0a5c9e2d7b14","limit":20}
The response has:
current: the record'svalidandknownintervals now.previous: earlier versions, newest first. Each has ahistory_id, itsvalidandknownintervals, andended_by_observation_id, the message that closed it.version, andretractionif the record was withdrawn.next: send it back asbeforeto go further back.
A record that was never superseded has an empty previous list. To ask a question at an earlier
point in time instead, use historical recall.
Limits and errors
- Both routes take
limitfrom 1 to 100, default 20. - A bad limit or cursor returns
400 invalid_record_page. - An unknown, erased or other-project ID on the history route returns
404 not_found. - An empty project returns
"records": []. - The project always comes from the credential. You can't choose a different one in the request.
Watch out for
- No ranking. Records come back in ID order, not by relevance or date.
- Browsing is live. Each page is consistent, but an erasure can remove a record between pages, and records written behind your cursor only appear if you start again.
- Cursors are safe to reuse. A cursor still works if the record it names is deleted, and it never grants access to that record.
- A record is a claim, not a verified fact. Inventory shows what was asserted and kept.
- Read-only credentials see every subject in their project.
Changing records
Inventory only reads. To change what is held:
- Retract a wrong record.
- Correct a current record.
- Author a new record directly.
- Report a doubt for someone else to review.
- Purge an entity: see governance.
- Rebuild facts under a new extractor.
How it works
Pages are ordered by the record's immutable UUID, and history pages by when each version stopped being known, so neither order shifts when rows are added or removed. Subject filtering follows the record's registered sources, so a record with several sources for the same subject appears once. Reads write content-free audit entries.