Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.vane.build/llms.txt

Use this file to discover all available pages before exploring further.

All endpoints require authentication. Revocation is per-company — you can only revoke passports issued by the authenticated company.

POST /v1/passports/:jti/revoke

Revokes a passport by its jti (the unique ID in the passport’s JWT claims). The revocation is permanent and takes effect immediately for server-side verification. Verifiers using offline verification should check the OCSP endpoint to detect revocations.

Path parameters

ParameterTypeDescription
jtistringThe UUID from the passport’s jti claim.

Request body (optional)

FieldTypeRequiredDescription
reasonstringNoHuman-readable reason for revocation. Stored and returned in OCSP responses.

Response 200

FieldTypeDescription
jtistringThe revoked passport’s ID.
revokedAtstringISO 8601 revocation timestamp.
reasonstringPresent if a reason was provided.

Error responses

StatusBodyMeaning
400{ "error": "Missing passport ID" }jti path parameter is missing.
409{ "error": "Passport is already revoked" }Revocation is idempotent per jti — this prevents double-revocation.

Example

curl -s -X POST \
  http://localhost:3000/v1/passports/550e8400-e29b-41d4-a716-446655440000/revoke \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $API_KEY" \
  -d '{ "reason": "agent compromised" }'
{
  "jti": "550e8400-e29b-41d4-a716-446655440000",
  "revokedAt": "2026-01-01T01:00:00.000Z",
  "reason": "agent compromised"
}

GET /v1/passports/revoked

Returns the full revocation list for the authenticated company, ordered by revocation time.

Response 200

FieldTypeDescription
revokedArrayArray of revocation records.
revoked[].jtistringThe revoked passport’s ID.
revoked[].revokedAtstringISO 8601 revocation timestamp.
revoked[].reasonstringPresent if a reason was recorded.

Example

curl -s http://localhost:3000/v1/passports/revoked \
  -H "Authorization: Bearer $API_KEY"
{
  "revoked": [
    {
      "jti": "550e8400-e29b-41d4-a716-446655440000",
      "revokedAt": "2026-01-01T01:00:00.000Z",
      "reason": "agent compromised"
    },
    {
      "jti": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
      "revokedAt": "2026-01-01T02:00:00.000Z",
      "reason": "rotated"
    }
  ]
}