Patch one person blog post

View as Markdown

Applies merge-patch to a person-owned blog post link.

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

personIdstringRequiredformat: "uuid"
Owner person UUID
blogPostIdstringRequiredformat: "uuid"
Blog post UUID

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.
authorstring or nullOptional

Blog-post author when known.

externalIdstring or nullOptional

Stable external feed/item identifier when available.

isCurrentboolean or nullOptional

Lifecycle flag. Defaults true on create; update omits preserve existing.

lastFetchedAtdatetime or nullOptional
Last fetch instant recorded by ingest.
mentionedEntityIdlist of strings or nullOptional

Entities mentioned in the blog-post body; the owner is stripped on write.

mentionedPersonIdlist of strings or nullOptional

People mentioned in the blog-post body; the owner is stripped on write.

publishedAtdatetime or nullOptional

Blog-post publish instant when known.

summarystring or nullOptional

LLM-generated blog-post summary.

summaryGeneratedAtdatetime or nullOptional
Summary generation instant recorded by ingest.
titlestring or nullOptional

Blog-post title when known.

topicstring or nullOptional

Nullable topic key from app.contracts.web-crawl.section.

typeenum or nullOptional

External blog-post classification token. Inferred from the URL host when omitted on create.

urlstring or nullOptional

Absolute external blog-post URL.

Response

OK
createdAtdatetime
idstringformat: "uuid"

Type-safe UUID identifier for research-side external blog article links

isCurrentboolean
mentionedEntityIdlist of strings

Entities mentioned in the blog-post body, excluding the owner

mentionedPersonIdlist of strings

People mentioned in the blog-post body, excluding the owner

ownerobject

Owning record, nested ids only: owner.entityId or owner.personId — exactly one is set.

typeenum

External research-side blog-post source classification

updatedAtdatetime
urlstring
authorstring or nullOptional

Blog-post author when discovered by ingest

externalIdstring or nullOptional

Stable external feed/item identifier when available

lastFetchedAtdatetime or nullOptional

Last time ingest fetched or summarized this blog-post URL

publishedAtdatetime or nullOptional
summarystring or nullOptional

LLM-generated blog-post summary from blog-post-ingest

summaryGeneratedAtdatetime or nullOptional
Timestamp when summary was last generated
titlestring or nullOptional
topicstring or nullOptional

Nullable blog-post topic key from app.contracts.web-crawl.section, such as product, blog, or press.

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