Update fact
Changes a verified fact’s text or its position in the list. Send only what you want to change.
Requires the write:brand_profile scope, and the workspace must be enabled for API writes.
PATCH /v1/brands/{brand_id}/facts/{fact_id}Authorization
| Header | Type | Required |
|---|---|---|
Authorization | Bearer asky_sk_… | required |
Idempotency-Key | string | required |
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
brand_id | uuid | required | From List brands |
fact_id | uuid | required | From verified_facts[].id on Get brand profile |
Query parameters
None.
Any parameter you pass returns 400 invalid_request naming the offending key, rather than being
ignored silently.
Body
application/json. At least one field is required.
| Field | Type | Required | Description |
|---|---|---|---|
fact_text | string, 1–300 chars | optional | The statement text |
sort_order | integer, 0–10000 | optional | Display position |
Request
cURL
curl --request PATCH \
--url 'https://api.askylabs.com/v1/brands/242546de-4cee-4a7d-952e-f6aa60c63ef8/facts/9f2c1d84-6b31-4a2e-9c77-1e5b0a3f8d42' \
--header 'Authorization: Bearer <api-key>' \
--header 'Idempotency-Key: <unique-per-attempt>' \
--header 'Content-Type: application/json' \
--data '{"fact_text":"Asky was founded in 2025 and is headquartered in Stockholm, Sweden."}'Response
200
{
"data": {
"fact": {
"id": "9f2c1d84-6b31-4a2e-9c77-1e5b0a3f8d42",
"fact": "Asky was founded in 2025 and is headquartered in Stockholm, Sweden.",
"sort_order": 3
}
},
"request_id": "req_7d21b0af59c34e18b6ac"
}Response fields
| Field | Type | Description |
|---|---|---|
data.fact.id | uuid | required |
data.fact.fact | string | required. The statement text |
data.fact.sort_order | integer | required |
request_id | string | required. Also returned as the x-request-id header |
Errors
| Status | Code | When |
|---|---|---|
| 400 | invalid_request | An unknown field, a body with neither field, or a value over its limit |
| 401 | invalid_token | The key is missing, malformed, or does not exist |
| 403 | insufficient_scope | The key does not carry write:brand_profile |
| 403 | plan_required | This workspace is not enabled for API writes |
| 404 | not_found | The fact does not exist, belongs to another brand, or belongs to an alignment category |
| 429 | rate_limited | Over 60 requests per minute. See the Retry-After header |
Notes
A fact owned by an alignment category returns 404, the same as one that does not exist. Only
brand-level facts — the ones the Facts tab manages — are editable here, and the two cases are
deliberately indistinguishable so a caller cannot probe for facts they may not touch.
sort_order is not compacted. Positions are whatever you set; gaps and ties are allowed, and
ties fall back to insertion order. Renumber the whole list yourself if you need it dense.
Idempotency-Key is required. See Idempotency.