Patch one entity text row

View as Markdown

Patch one entity-owned text row. New text content is validated before write.

Authentication

AuthorizationBearer

User bearer token: Supabase or Clerk session JWT, Clerk OAuth access token, or Clerk personal API key

OR
X-API-Keystring

Admin API key for system-to-system write operations

Path parameters

entityIdstringRequiredformat: "uuid"
Entity UUID owning the text row
textIdlongRequired
Text row id

Query parameters

sourceTypeenumRequired
Write provenance source type.
sourceDetailstringRequired
Source detail or reviewer reference for the write.
sourceProviderstringOptional

Provider name for provider-native IDs or slugs.

sourceProviderIdstringOptional

Provider-native source ID.

sourceProviderSlugstringOptional

Provider-native source slug.

actorTypeenumOptional

Actor type; inferred as agent when agentChassis and agentModel are supplied, or as employee from an authenticated user JWT session.

Allowed values:
agentChassisstringOptional

Agent chassis token for agent-authored writes.

agentModelstringOptional

Agent model id for agent-authored writes.

Request

This endpoint expects an object.
allowPublicEntityTextWordLimitOverrideboolean or nullOptional

Admin override for public entity text word limits; use only with explicit approval.

allowSuspectedShellStripboolean or nullOptional

Allow intentional magnitude phrases without a currency marker (‘100K customers’) or intentional escape sequences before ’$’; never use this to persist corrupted currency text — write ’$’ literally instead.

isCurrentboolean or nullOptional

Current row. Create defaults to true; inactive rows are hidden from default lists.

isPrimaryboolean or nullOptional

Primary row. Create defaults to true; inactive rows are not primary.

sourcestring or nullOptional0-255 characters
Source note for the text row.
textstring or nullOptional0-65536 characters

Text body for the selected text type. Entity create requires both a summary row and an expanded row. Shape: summary is a single short sentence; expanded is split into paragraphs by one blank line (“\n\n” in JSON). Run GET /v1/entities/texts/types (CLI: entities texts types list —data) before writing to inspect each textType’s minWords, maxWords, rewriteHint, and paragraphShape contract. Write ’$’ literally in currency amounts; escaped forms like ‘$50M’ are rejected as shell artifacts.

textNamestring or nullOptional0-255 characters
Optional name for this text row.
textTypestring or nullOptional
Canonical text slot to write, such as summary or expanded

Response

OK
idinteger

Type-safe identifier for text records

ownerobject

Owning record, nested ids only: owner.entityId or owner.personId — exactly one is set, and no name fields. Writes are scoped by the owning entity/person route; owner is never a write field.

textstring
textTypestring
Value object for text type classification
complianceobject or nullOptional

Derived character/word counts and governed-contract compliance for this text row; null when not evaluated.

createdAtdatetime or nullOptional
isCurrentboolean or nullOptional
isPrimaryboolean or nullOptional
languagestring or nullOptional
sourcestring or nullOptional
textNamestring or nullOptional
updatedAtdatetime or nullOptional

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
406
Not Acceptable Error
409
Conflict Error
415
Unsupported Media Type Error
422
Unprocessable Entity Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error