Delete one entity URL

View as Markdown

Soft delete (default) sets isCurrent=false and isPrimary=false; hard delete removes the row. Returns the deleted URL 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

Path parameters

entityIdstringRequiredformat: "uuid"
Entity UUID owning the URL row
urlIdlongRequired
URL link id

Query parameters

deleteModeenumOptional

Delete mode; defaults to soft

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
urlstringformat: "uri"

Canonical absolute HTTP URL value - validates scheme + host at construction

urlTypeenum
Canonical URL platform type such as website, linkedin, twitter, or github. Lifecycle facts belong on link flags such as isCurrent and isPrimary.
crawlCdnProviderenum or nullOptional
CDN or hosting provider fronting a web URL.
crawlRenderModeenum or nullOptional
JavaScript rendering requirement for crawl checks.
createdAtdatetime or nullOptional
idinteger or nullOptional
isCurrentboolean or nullOptional

true = owner currently uses this URL; false = historical/former (rebrand source domain, deprecated platform handle). The lifecycle state lives here, NEVER in the urlType discriminator.

isPrimaryboolean or nullOptional

true = canonical/primary URL of this urlType for this owner. Only one row per (owner, urlType) may be isCurrent=true AND isPrimary=true.

ownerobject or nullOptional

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.

sourceIdstring or nullOptional
statusstring or nullOptional
statusCheckeddatetime 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
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error