manage_record

Create, read, update, patch, delete, or cancel individual records. 'upsert' (PUT) writes the FULL record — send every field; supply external_id (and optional external_source) for idempotent writes from external systems (the internal UUID is auto-generated). 'patch' is a PARTIAL update — send only the fields you want to change and the rest are kept (top-level merge; nested objects replaced wholesale). Use patch to flip a status or set a flag without re-sending the whole record; it addresses an existing record by record_id or external_id and 404s if none exists. (For a record_type backed by an external source, the provided fields are forwarded to that upstream system, which decides how they are applied.) Use record_id (internal UUID) for get/delete/cancel or to address a known record. Records may be archived (_archived: true in response) — an archived record stays readable and can still be cancelled, but it cannot be deleted, and re-upserting by the same external_id creates a new record rather than updating the archived one. Keep record data small (structured JSON only) — store binary or large content (PDFs, images, files) as an attachment via manage_attachment and reference it from the record; oversized payloads are rejected.

Parameters

NameTypeRequiredDescription
actionenum: upsert | patch | get | delete | cancelYes
base_idstringYesTarget database ID
record_typestringYesRecordType name or ID
record_idstringNoInternal record ID (UUID). Required for get/delete. For upsert/patch, use to address a known record by internal ID.
external_idstringNoExternal/agent-supplied ID for upsert/patch. Enables idempotent writes by external identity (e.g. stripe_inv_123).
external_sourcestringNoSource system for external_id (e.g. 'stripe', 'salesforce'). Scopes uniqueness of external_id.
dataobjectNoFor upsert: the full record. For patch: only the fields to change. Structured JSON only — use manage_attachment for binary/large content (PDFs, images, files).
manage_record — Rekor