Skip to content

Fetch the full provenance DAG for a run

View as Markdown
GET
/v1/provenance/{runId}
curl --request GET \
--url https://example.com/v1/provenance/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>'

Returns the full DAG (nodes + edges) plus record metadata. 404 when no provenance was emitted for the run (e.g. the deployment does not run the emitter, or the run was pre-provenance).

runId
required
string format: uuid

RunId — opaque branded string (a UUID).

Full provenance record.

Media typeapplication/json

Full provenance record including the DAG payload.

object
id
required
string format: uuid
runId
required
string format: uuid
tenantId
required
string format: uuid
version
required
string
flowRef
object
id
required
string
version
required
string
dag
required
object
nodes
required
Array<object>
object
id
required
string
kind
required
string
Allowed values: input prompt retrieval tool-call tool-result model-call model-output artifact guardrail-check event policy-decision memory-read memory-write wait resume
timestamp
required
string format: date-time
actor
string
contentHash
string
contentRef
string
modelVersion
string
policyDecisionId
string
attributes
object
key
additional properties
any
edges
required
Array<object>
object
from
required
string
to
required
string
kind
required
string
Allowed values: caused-by influenced-by retrieved-from invoked produced checked-against waited-on resumed-from
signature

Runtime-side signature attached at emission time (if the deployment signs on write). Independent of the export-time signature returned by the export route.

object
algorithm
required
string
Allowed value: ed25519
keyId
required
string
value
required

Base64-encoded signature bytes.

string
signedAt
required
string format: date-time
createdAt
required
string format: date-time
callUsage

Each model call’s usage from the cost ledger, by the callId in its model-call node’s attributes. Joined when read: not part of the signed DAG. A signed export includes it, as it stood when signed.

object
key
additional properties
object
usage
required

The call’s tokens. promptTokens / completionTokens are the totals; cacheReadTokens / cacheWriteTokens are parts of promptTokens, reasoningTokens of completionTokens, present when the provider reports them.

object
promptTokens
required
integer
completionTokens
required
integer
cacheReadTokens
integer
cacheWriteTokens
integer
reasoningTokens
integer
costUsd
number
durationMs
integer
servedModel
string
Example
{
"dag": {
"nodes": [
{
"kind": "input"
}
],
"edges": [
{
"kind": "caused-by"
}
]
},
"signature": {
"algorithm": "ed25519"
}
}

Missing / malformed / expired / revoked bearer token.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

No provenance record for that run under this tenant.

Media typeapplication/json
object
error
required
object
code
required

Stable machine-readable discriminant. Values match domain error codes (see docs/API-ROUTE-CONVENTIONS.md §4.3).

string
message
required
string
details

Optional, kind-specific.

object
key
additional properties
any
requestId
required

Server-assigned request id; also echoed via X-Request-Id header.

string
Examplegenerated
{
"error": {
"code": "example",
"message": "example",
"details": {},
"requestId": "example"
}
}

See also