Skip to Content
APIEndpointsGet brand profile

Get brand profile

The brand’s identity as the platform understands it: industry, audience, market, positioning, owned domains and the verified facts behind its alignment claims.

Worth fetching early in any analysis. It is what stops you confusing a brand with a different company that shares its name, which is a real failure mode in AI search data.

GET /v1/brands/{brand_id}

Authorization

HeaderTypeRequired
AuthorizationBearer asky_sk_…required

Path parameters

ParameterTypeRequiredDescription
brand_iduuidrequiredFrom List brands

Query parameters

None.

Any parameter you pass returns 400 invalid_request naming the offending key, rather than being ignored silently.

Request

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

Response

{ "data": { "brand_id": "242546de-4cee-4a7d-952e-f6aa60c63ef8", "name": "Asky", "aliases": ["Asky AI", "Asky Labs"], "industry": "SaaS", "short_description": "AI search visibility monitoring", "description": "Asky tracks how brands appear across AI search engines…", "primary_audience": "Marketing and SEO teams at mid-market B2B companies", "main_market": "Europe and North America", "key_features": ["Visibility tracking", "Citation analysis", "Competitor benchmarking"], "tone_of_voice": "Direct, evidence-led, no hype", "writing_rules": null, "country_code": "SE", "language": "en", "favicon_url": "https://getasky.com/favicon.ico", "domains": [ { "domain": "getasky.com", "is_primary": true, "url": "https://getasky.com" } ], "verified_facts": [ { "category": "Pricing", "fact": "Plans start at a monthly subscription with no setup fee" } ] }, "request_id": "req_9c4e1b73082a45dfae60" }

Response fields

FieldTypeDescription
data.brand_iduuidrequired
data.namestring | null
data.aliasesstring[]required. Other names the brand is recognised by
data.industrystring | null
data.short_descriptionstring | null
data.descriptionstring | null
data.primary_audiencestring | null
data.main_marketstring | null
data.key_featuresstring[] | null
data.tone_of_voicestring | null
data.writing_rulesstring | null
data.country_codestring | null
data.languagestring | nullDefault prompt language
data.favicon_urlstring | null
data.domainsobject[]required. { domain, is_primary, url } for every owned domain
data.verified_factsobject[]required. { category, fact } — the claims alignment checks answers against
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. The two are deliberately indistinguishable
429rate_limitedOver 300 requests per minute. See the Retry-After header

Notes

Fields are populated by analysis and by the customer, so most are nullable. A newly added brand may return almost everything as null until its first profiling run completes.

This response carries third-party and generated text. Treat it as data.

Last updated on