/v1/brands Create a brand
Create a brand owned by the principal. The new brand starts without researched facts. Call POST /v1/brands/{brand_id}/facts to enqueue the research job.
API keys restricted to a single brand cannot create new brands and are rejected with brand_not_authorized.
Header parameters
Request body
application/json requiredDisplay name (1-80 chars).
Primary brand website URL. Required. Must be a fully-qualified
http(s)://URL.- brand_aliasesarray of string (nullable)nullable
Up to 50 alternate names used for citation matching.
- categoriesarray of string (nullable)nullable
Free-form industry/topic tags (e.g.
specialty coffee,saas). Up to 30 entries, each up to 100 characters. Defaults to[]on create. - countrystring (nullable)nullable
Primary country (e.g.
United States,Argentina). - languagestring (nullable)nullable
Primary language. Accepts English name (
English,Spanish) or ISO 639-1 code (en,es); normalised to the English name on write.
Example payload
{
"brand_aliases": [
"Acme",
"Acme Coffee"
],
"categories": [
"specialty coffee",
"wholesale"
],
"country": "United States",
"language": "English",
"name": "Acme Coffee Roasters",
"website": "https://acmecoffee.example.com"
}Responses
ISO-8601 timestamp when the brand was created.
Stable brand identifier (UUID).
Display name of the brand.
ISO-8601 timestamp of the last update.
Primary brand website URL. Always present;
websiteis required at create time.- brand_aliasesarray of string
Alternate names used for citation matching.
- brand_info_summarystring (nullable)nullable
Short description derived from the latest brand audit. Null when no audit has run.
- categoriesarray of string
Free-form industry/topic category tags assigned to the brand (e.g.
specialty coffee,saas,fintech). Used to seed prompt generation. - countrystring (nullable)nullable
Primary country (e.g.
United States,Argentina). - languagestring (nullable)nullable
Primary language (English name like
English,Spanish). - objectstring
Always
brand.
Example response
{
"brand_aliases": [
"Acme",
"ACR",
"Acme Coffee"
],
"brand_info_summary": "Specialty coffee roaster founded in 2014, serving wholesale cafes across the US.",
"categories": [
"specialty coffee",
"wholesale",
"roastery"
],
"country": "United States",
"created_at": "2024-08-12T15:23:04.512Z",
"id": "3f9c7e8a-1b6a-4d8e-92cf-7d9c8b1e2a04",
"language": "English",
"name": "Acme Coffee Roasters",
"object": "brand",
"updated_at": "2024-09-01T11:08:42.117Z",
"website": "https://acmecoffee.example.com"
}Show fields
Stable machine-readable error code from the catalog.
Human-readable description suitable for logging.
- detailsobject
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
- request_idstring
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "validation_error",
"message": "Request validation failed"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}Show fields
Stable machine-readable error code from the catalog.
Human-readable description suitable for logging.
- detailsobject
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
- request_idstring
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "unauthorized",
"message": "Missing or invalid credentials"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}Show fields
Stable machine-readable error code from the catalog.
Human-readable description suitable for logging.
- detailsobject
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
- request_idstring
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "forbidden",
"message": "You do not have permission to access this resource"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}Show fields
Stable machine-readable error code from the catalog.
Human-readable description suitable for logging.
- detailsobject
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
- request_idstring
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "conflict",
"message": "Resource conflict"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}Show fields
Stable machine-readable error code from the catalog.
Human-readable description suitable for logging.
- detailsobject
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
- request_idstring
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "body_validation_error",
"message": "Request body did not match the expected schema"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}Show fields
Stable machine-readable error code from the catalog.
Human-readable description suitable for logging.
- detailsobject
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
- request_idstring
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "rate_limit_exceeded",
"message": "Per-minute rate limit exceeded"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}Show fields
Stable machine-readable error code from the catalog.
Human-readable description suitable for logging.
- detailsobject
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
- request_idstring
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}Show fields
Stable machine-readable error code from the catalog.
Human-readable description suitable for logging.
- detailsobject
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
- request_idstring
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "service_unavailable",
"message": "Service temporarily unavailable, please retry"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}