Skip to main content
GET
Session
Returns an attested session: the immutable, content-addressed record of the verified TEE channel a confidential request was bound to. A receipt’s upstream.verified.session_id references it, so you can trace any confidential response back to the exact verified security context, with its typed claims and channel binding.

Get one session

string
required
The bare 64-character lowercase hex id (no prefix) from a receipt’s upstream.verified.session_id.

Response

Binding types

Typed claims

Each claim carries a status (asserted / refuted / unknown), a source (hardware_proven / verifier_derived / provider_asserted / operator_asserted), and a reason. The claim set: tee_attested, tcb_up_to_date, os_known_good, serving_software_known_good, gpu_attested, model_weights_provenance, plus provider-specific entries in extra. See Claims.

List current sessions

GET /v1/aci/sessions?upstream_name={upstream_name}&model={model} returns current attested sessions. The endpoint is public. upstream_name is a service-chosen route label such as chutes or phala-267, rather than a catalog provider id. Use it as a preflight survey: inspect the verified identity, channel binding, and claims for a model before sending a prompt.
Returns { "api_version": "aci/1", "sessions": [...] }. Each list entry includes its session_id but omits the bulky evidence.data; fetch the full record before verifying its content hash.

Why content-addressed

The full session document does not contain its own id. session_id is the bare SHA-256 of the full session document in canonical JCS form. Any change produces a new id, and sessions are never updated in place. Recompute the id after fetching the full record to confirm it is exactly the document cited by the receipt.

Verified upstreams

Get receipt