Skip to Content
APIEndpointsGet writing style

Get writing style

One writing style’s full configuration: tone of voice, writing rules, heading case, translation formality, competitor-statistics mode, English spelling variant, and (for social styles) per-language overrides. Get style_id from List writing styles.

GET /brands/{brand_id}/writing-styles/{style_id}

Authorization

HeaderTypeRequired
AuthorizationBearer asky_sk_…required

Path parameters

ParameterTypeRequiredDescription
brand_iduuidrequiredFrom List brands
style_iduuidrequiredFrom List writing styles

Request

curl --request GET \ --url 'https://api.askylabs.com/v1/brands/242546de-4cee-4a7d-952e-f6aa60c63ef8/writing-styles/3c9fe109-0a5f-4c1e-9b2d-6a8e1f3c7b5d' \ --header 'Authorization: Bearer <api-key>'

Response

{ "data": { "id": "3c9fe109-0a5f-4c1e-9b2d-6a8e1f3c7b5d", "name": "Reddit Casual", "surface": "social", "channel": "reddit", "is_default": true, "sort_order": 0, "tone_of_voice": { "presets": ["friendly", "direct"], "custom_tones": [], "description": "Talks like a knowledgeable peer, not a brand account." }, "writing_rules": { "always_do": ["Answer the question first, mention the product only if directly relevant"], "never_do": ["Never use marketing language", "Never post more than one link"] }, "heading_case_style": "sentence", "translation_formality": null, "competitor_statistics_mode": null, "english_variant": null, "language_overrides": { "de": { "formality": "prefer_more", "nuance": "Use Sie, keep it professional even in casual threads.", "always_do": ["Use Sie"], "never_do": [], "english_variant": null } }, "tone_generation_status": null, "created_at": "2026-07-22T14:30:00.000Z", "updated_at": "2026-08-11T21:42:29.000Z" }, "request_id": "req_839eabb939bd4d32851a" }

Response fields

FieldTypeDescription
data.iduuidrequired
data.namestringrequired
data.surfacestringrequired. One of content, social
data.channelstring | nullThe social channel, when surface is social
data.is_defaultbooleanrequired
data.sort_orderintegerrequired
data.tone_of_voiceobjectrequired. { presets: string[], custom_tones: string[], description: string }
data.writing_rulesobjectrequired. { always_do: string[], never_do: string[] }
data.heading_case_stylestringrequired. One of sentence, title. Content styles only in practice
data.translation_formalitystring | nullOne of default, prefer_more, prefer_less. Content styles only
data.competitor_statistics_modestring | nullOne of ask, include, exclude. Content styles only
data.english_variantstring | nullOne of us, uk. Content styles only — a social style’s English spelling preference lives in language_overrides.en.english_variant instead
data.language_overridesobjectrequired. Keyed by ISO 639-1 language code. {} on content styles, since it is never read there. Each value is { formality, nuance, always_do, never_do, english_variant }
data.tone_generation_statusstring | nullpending while an AI-assisted tone is still being generated, failed if it errored, otherwise null
data.created_at / data.updated_attimestamptzrequired
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, the style does not exist for this brand, or this key is not allowed to reach either. All three are deliberately indistinguishable
429rate_limitedOver 300 requests per minute. See the Retry-After header

Notes

heading_case_style, translation_formality, competitor_statistics_mode and english_variant are article-only fields. They still appear on a social style’s response (at their column defaults), but nothing reads them there — the editor hides all four for social styles, and Update writing style refuses to set any of them on one.

language_overrides is the mirror case: populated and meaningful only on social styles. Content generation never reads it.

A social style’s spelling preference lives inside language_overrides.en, not the base english_variant column. The base column is what content styles use.

Last updated on