Update an organization seal
Update a seal’s name, display name, image, or default status. Any image-class change (image, typed, display_name, signatory_title, statement) creates a new version (replace) and requires a statement with accepted true, version 1, language, text equal to the seal’s statement_text exactly, signatory_name, and optional signatory_title; otherwise the request fails with 400 SEAL_STATEMENT_REQUIRED. The new version records this request’s acceptance: signatory_name and signatory_title_attested are the signatory sent, and attested_at is the replacement time. Requests already sent keep the version pinned when they were sent; requests sent after the replacement use the new version, and their certificates show the new signatory. The statement text never changes. Company-scope seals require a protected API key for mutations.
Authorizations
API key for authentication. Use your API key directly without any prefix (e.g., 'your-api-key'). Bearer prefix is optional but not required.
Path Parameters
Seal ID
Body
New internal name
120New display name (triggers image re-render)
200New signatory title
200New base64 PNG data URI
Attestation statement affirming authority to apply the seal.
Set as default seal for its scope
Response
Seal updated successfully
Organization seal metadata (image and statement internals are stripped from list/get responses).
Shared across versions of the same seal
x >= 1Null for company-scope seals
The name the seal was attested for: the company for company scope or the protected workspace, otherwise the workspace. Null for seals whose lineage was created before pinning; they certify in the company's current name.
120200200uploaded, typed, drawn 1 if this is the default seal for its scope
0, 1 x >= 1The authority statement the seal was attested under, stored verbatim. Write-once: it never changes across versions of a lineage.
SHA-256 of statement_text (UTF-8), lowercase hex.
2002000, 1