Skip to Content
APIEndpointsList alignment category facts

List alignment category facts

Verified statements about the brand that future Brand Alignment runs grade AI-stated claims against, e.g. “Ships to 12 EU countries” or “Founded in 2016”. A fact with category_id null is brand-wide — it applies to claims in every category, not just one.

Get category ids from List alignment categories for the category_id filter. Create or edit a fact with Create alignment category fact or Update alignment category fact.

Requires the read:alignment scope. Writing facts needs write:alignment.

GET /v1/brands/{brand_id}/alignment/category-facts

Authorization

HeaderTypeRequired
AuthorizationBearer asky_sk_…required

Path parameters

ParameterTypeRequiredDescription
brand_iduuidrequiredFrom List brands

Query parameters

ParameterTypeRequiredDescription
limitintegeroptionalRows per page, 1 to 100. Defaults to 20.
cursorstringoptionalOpaque cursor from the previous response. Treat it as a token, never construct one.
category_iduuidoptionalRestrict to facts scoped to this category, from List alignment categories. Omit to see every fact, including brand-wide ones.

Request

curl --request GET \ --url 'https://api.askylabs.com/v1/brands/242546de-4cee-4a7d-952e-f6aa60c63ef8/alignment/category-facts?limit=50' \ --header 'Authorization: Bearer <api-key>'

Response

{ "data": [ { "id": "3f8b0e6a-9c42-4e17-8f0b-6c951a2d7e40", "category_id": "b19f3c02-8e41-4b6a-9c17-5d2a781fe346", "fact_text": "Enterprise plans include SSO via SAML and OAuth 2.0 at no extra cost.", "sort_order": 0, "created_at": "2026-08-12T10:02:31.884Z", "updated_at": "2026-08-12T10:02:31.884Z" }, { "id": "7a2c9e14-5b06-4f8a-9d31-0e46b7c8f293", "category_id": null, "fact_text": "The company has been GDPR compliant since it was founded in 2019.", "sort_order": 1, "created_at": "2026-08-15T14:41:09.220Z", "updated_at": "2026-08-15T14:41:09.220Z" } ], "pagination": { "limit": 20, "has_more": false, "next_cursor": null }, "request_id": "req_2f7b90c14ae8471da3cd" }

Response fields

FieldTypeDescription
data[].iduuidrequired. Use it as fact_id with Update / Delete alignment category facts
data[].category_iduuid | nullrequired. null means brand-wide — checked against claims in every category
data[].fact_textstringrequired. Up to 1000 characters
data[].sort_orderintegerrequired. Display order within its scope (its category, or the brand-wide group)
data[].created_attimestamptzrequired
data[].updated_attimestamptzrequired
request_idstringrequired. Also returned as the x-request-id header. Quote it when contacting support

Errors

StatusCodeWhen
400invalid_requestA parameter is unknown or malformed. The message names it
401invalid_tokenThe key is missing, malformed, or does not exist
401token_expiredThe key passed its expiry date
401token_revokedThe key was revoked
404not_foundThe brand does not exist, or this key is not allowed to reach it
429rate_limitedOver 300 requests per minute

Notes

category_id filters, it does not merge. Passing category_id returns only facts scoped to that exact category — brand-wide facts (category_id null) are not included alongside them. Omit category_id to see every fact, category-scoped and brand-wide together.

sort_order is per scope, not global. Ordering restarts at 0 within each category and again within the brand-wide group; it is not a single ranking across the whole list.

Last updated on