Delete one person blog post

View as Markdown

Soft-deletes by default; hard delete removes the person-owned row.

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

deleteModeenumOptional
Delete mode
Allowed values:
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.

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
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error