Create a full entity in one atomic POST

View as Markdown
Create a full entity from JSON body. Product and Service creates require productServiceProviderId so the current productService relationship is written atomically. Their nameBrand must describe a distinct offering and cannot exactly match the provider; eponymous offerings without a product-line brand should use a descriptor/category such as Consumer Sedans or Light Industrial Vehicles. Omit logo on agent creates; website discovery imports the logo when available, and media upload handles later repairs. Use --from-file for the full create graph; duplicate conflicts return gate override parameters after review. Requires write authority.

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

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.

overrideGateenumOptional
Gate to override from the prior ProblemDetail resolution.
overrideReasonstringOptional0-2048 characters

Source-backed reason for overriding the returned gate requirement.

permitMonogrambooleanOptional
Allow generated monogram logo fallback.

Request

This endpoint expects a multipart form containing an optional file.
bodyobjectRequired

Multipart JSON body for full entity create. Supply base entity fields, required summary and expanded texts, URL links, and optional classifications, addresses, research details, product/service provider join, or manual logo.

Response

Created
entityobject
Persisted entity detail after create, including the canonical id, slug, status, text, classification, URL, and relationship sections returned by the write.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden 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