Skip to Content
APIEndpointsList writing styles

List writing styles

The brand’s writing styles: named voice configurations for content (articles) and for social channels (Reddit, LinkedIn). A brand keeps up to 10 styles per scope. Get one style’s full configuration with Get writing style.

GET /brands/{brand_id}/writing-styles

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. In practice a brand never has more than ~30 styles total
cursorstringoptionalOpaque cursor from the previous response. Treat it as a token, never construct one.
surfacestringoptionalFilter to content or social styles. One of: content, social.
channelstringoptionalFilter to one social channel. One of: reddit, linkedin.

Request

curl --request GET \ --url 'https://api.askylabs.com/v1/brands/242546de-4cee-4a7d-952e-f6aa60c63ef8/writing-styles' \ --header 'Authorization: Bearer <api-key>'

Response

{ "data": [ { "id": "7b3f9c1a-4e6d-4a2b-8c5f-1d9a3b6e7f42", "name": "Founder Voice", "surface": "content", "channel": null, "is_default": true, "sort_order": 0 }, { "id": "3c9fe109-0a5f-4c1e-9b2d-6a8e1f3c7b5d", "name": "Reddit Casual", "surface": "social", "channel": "reddit", "is_default": true, "sort_order": 0 } ], "pagination": { "limit": 20, "has_more": false, "next_cursor": null }, "request_id": "req_4e8c1a3f7b2d46f0ba9c" }

Response fields

FieldTypeDescription
data[].iduuidrequired
data[].namestringrequired
data[].surfacestringrequired. One of content, social
data[].channelstring | nullThe social channel, when surface is social. Always null for content styles
data[].is_defaultbooleanrequired. Whichever scope (content, or one per social channel) this style belongs to has exactly one default
data[].sort_orderintegerrequired. Display position within its scope
request_idstringrequired. Also returned as the x-request-id header. Quote it when contacting support

Errors

StatusCodeWhen
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. See the Retry-After header

Notes

This is the lightweight gallery view, matching the cards on the Brand Profile “Writing Styles” tab. It carries no voice configuration. Fetch Get writing style for one style’s tone, rules, and (for social styles) per-language overrides.

A brand keeps its content styles and each social channel’s styles in separate pools, up to 10 each. is_default is scoped the same way: one default content style, and one default per social channel, not one default overall.

Last updated on