Delete news article

View as Markdown

Hard-deletes a news article by id or slug and returns the deleted News row as confirmation.

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

Query parameters

idintegerOptional
News article ID
slugstringOptionalformat: "^[a-z0-9_-]+$"<=255 characters
News article slug
deleteModeenumOptionalDefaults to hard

Delete mode: news supports only ‘hard’ (defaults to ‘hard’); ‘soft’ is rejected with 422

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
idinteger

Type-safe identifier for news articles

titlestring

Article headline; the headline field is title

authorstring or nullOptional
categorystring or nullOptional
createdAtdatetime or nullOptional
excerptstring or nullOptional

Article summary from the source publication feed; null means the feed supplied no description (expected absence, not an error) — full text is NewsDetail.content

externalNewsArticleboolean or nullOptional
newsImageThumbnailstring or nullOptional
newsUrlOriginalstring or nullOptional
pendingApprovalinteger or nullOptional
publicationstring or nullOptional
publishedAtdatetime or nullOptional
slugstring or nullOptionalformat: "^[a-z0-9_-]+$"<=255 characters
Canonical lowercase URL slug for the resource
updatedAtdatetime or nullOptional

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
406
Not Acceptable Error
409
Conflict Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error