Skip to main content

Case Evidence

Get the connective evidence for a case: the shared-reference links joining its documents, open gaps such as dangling references, and the member documents.

The evidence endpoint answers "why are these documents one case, and what is missing?". It returns the connections — the shared-reference links that join pairs of documents, each carrying the via_field and value that connect them, the link kind, a confidence, and any curator verdict (confirmed/rejected) — together with the open gaps (dangling references and missing-document findings) and the member documents.

This is the synth case's evidence model: a case is a connected component over reference edges, so the connections ARE the evidence. Where GET /v1/cases/:key/edges is the raw edge list used to confirm or reject links, this endpoint is the read-oriented evidence view — connections plus the gaps that show what the case is still waiting on.

The kind on each connection tells you how the link was formed: reference_resolution means one document explicitly cites an identifier the other carries, value_sibling means both documents share the same extracted value, and text_citation means the reference was found in the document text. confidence is a 0–1 score on the link. Gaps contain only open findings — a finding dismissed in the platform stops appearing here and stops counting toward anomaly_count.

A typical audit flow reads evidence first, then acts on edges. Render the connections to show a reviewer why the case exists, let them judge each link against the joining field and value, and record the decision with the confirm/reject routes on GET /v1/cases/:key/edges — the verdict then shows up here on the matching connection on the next read.

Evidence respects document visibility: for an API key restricted by Sources IAM rules, member documents the key cannot see are omitted, and any connection touching a hidden document is dropped entirely rather than redacted — the response never leaks a hidden document's id, filename, or the shared value linking it in.

GET/v1/cases/:key/evidence

Path parameters

key*stringCase UUID (the stable resource id).

Request

curl https://api.talonic.com/v1/cases/5c7fa78c-4d92-4613-9f42-9fe74458d8a9/evidence \
  -H "Authorization: Bearer $TALONIC_API_KEY"

Response

Response fields

connections[].document_astringOne side of the link.
connections[].document_bstring | nullThe other side (null for a single-document anchor).
connections[].via_fieldstringThe field whose value joins the two documents.
connections[].valuestringThe shared value.
connections[].kindstringLink kind (e.g. reference, value-sibling, citation).
connections[].confidencenumber | nullLink confidence.
connections[].verdictstring | nullCurator verdict (confirmed / rejected) if set.
gapsobject[]Open findings (dangling references / missing documents).
documentsobject[]Member documents with filename, type, and date.

Response

{
  "connections": [
    {
      "document_a": "doc_uuid_1",
      "document_b": "doc_uuid_2",
      "via_field": "po_number",
      "value": "PO-2024-001",
      "kind": "reference_resolution",
      "confidence": 0.94,
      "verdict": null
    }
  ],
  "gaps": [
    {
      "id": "finding_uuid_1",
      "kind": "dangling_reference",
      "via_field": "contract_reference",
      "value": "CTR-2023-118",
      "severity": "warning"
    }
  ],
  "documents": [
    { "id": "doc_uuid_1", "filename": "po_2024_001.pdf", "document_type": "Purchase Order" },
    { "id": "doc_uuid_2", "filename": "invoice_oct.pdf", "document_type": "Invoice" }
  ]
}
Curator decisions show up here: an edge confirmed or rejected via the Case Edges endpoints carries its verdict on the matching connection, so downstream consumers can distinguish human-verified links from inferred ones.

Errors

Error responses

400bad_requestInvalid case id. Must be a UUID.
401unauthorizedMissing or invalid API key.
404not_foundNo case with this key exists for your organization.
429rate_limitedToo many requests. Retry after the period indicated in the Retry-After header.

Frequently asked questions

How is evidence different from edges?+
Edges (GET /v1/cases/:key/edges) is the raw link list, used as the target for confirm/reject. Evidence is the read-oriented view: the same connections enriched with the joining field and value, plus the open gaps and the member documents.
What are gaps?+
Open findings on the case, primarily dangling references: a document points at an identifier that resolves to no document in your workspace, indicating a likely missing document.
What does a null document_b mean on a connection?+
The connection is a single-document anchor rather than a pair, for example a dangling reference where the cited counterpart document does not exist in your workspace yet.
Are dismissed findings included in gaps?+
No. Gaps carry only open findings. A finding dismissed in the platform is filtered out here and no longer counts toward the anomaly_count on the case detail endpoint.