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-stylesAuthorization
| Header | Type | Required |
|---|---|---|
Authorization | Bearer asky_sk_… | required |
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
brand_id | uuid | required | From List brands |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
limit | integer | optional | Rows per page, 1 to 100. Defaults to 20. In practice a brand never has more than ~30 styles total |
cursor | string | optional | Opaque cursor from the previous response. Treat it as a token, never construct one. |
surface | string | optional | Filter to content or social styles. One of: content, social. |
channel | string | optional | Filter to one social channel. One of: reddit, linkedin. |
Request
cURL
curl --request GET \
--url 'https://api.askylabs.com/v1/brands/242546de-4cee-4a7d-952e-f6aa60c63ef8/writing-styles' \
--header 'Authorization: Bearer <api-key>'Response
200
{
"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
| Field | Type | Description |
|---|---|---|
data[].id | uuid | required |
data[].name | string | required |
data[].surface | string | required. One of content, social |
data[].channel | string | null | The social channel, when surface is social. Always null for content styles |
data[].is_default | boolean | required. Whichever scope (content, or one per social channel) this style belongs to has exactly one default |
data[].sort_order | integer | required. Display position within its scope |
request_id | string | required. Also returned as the x-request-id header. Quote it when contacting support |
Errors
| Status | Code | When |
|---|---|---|
| 401 | invalid_token | The key is missing, malformed, or does not exist |
| 401 | token_expired | The key passed its expiry date |
| 401 | token_revoked | The key was revoked |
| 404 | not_found | The brand does not exist, or this key is not allowed to reach it |
| 429 | rate_limited | Over 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