Skip to main content
GET
/
v1
/
rules
/
{id}
/
provenance
Get the provenance chain for a rule
curl --request GET \
  --url https://api.seynlabs.com/v1/rules/{id}/provenance \
  --header 'Authorization: Bearer <token>'
{
  "success": true,
  "data": {
    "rule": {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "description": "<string>",
      "processId": "<string>"
    },
    "inferenceLog": {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "model": "<string>",
      "promptHash": "<string>",
      "tokenCount": {
        "input": 1,
        "output": 1,
        "total": 1
      },
      "latencyMs": 123,
      "createdAt": "2023-11-07T05:31:56Z"
    },
    "sourceEvents": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "action": "<string>",
        "entityType": "<string>",
        "timestamp": "2023-11-07T05:31:56Z"
      }
    ],
    "rawRecords": [
      {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "connectorType": "<string>",
        "ingestedAt": "2023-11-07T05:31:56Z"
      }
    ]
  },
  "meta": {
    "requestId": "<string>"
  }
}
Returns the complete chain of custody: rule → the inference log (the exact LLM call that produced it) → the normalized events the model observed → the raw records ingested from source systems. This is what makes every claim auditable. See Provenance for the full picture. Responses can be large; a well-evidenced rule may carry dozens of events and records. If you only need to gauge evidence strength, count the arrays rather than rendering them.

Authorizations

Authorization
string
header
required

Bearer token from app.seynlabs.com → Settings → API Keys. Send as Authorization: Bearer sk_live_....

Path Parameters

id
string<uuid>
required

Response

Provenance chain.

success
enum<boolean>
required
Available options:
true
data
object
required
meta
object
required