API ReferenceBrand IntelligenceRetrieve by Domain

Retrieve Brand by Domain

Get comprehensive brand data from any domain — title, description, logos, colors, socials, industries, page links, and more.

The response uses the Context.dev-compatible shape: colors and logos are arrays of objects, socials is an array, and links is a named-slot dict. Legacy dict-shaped fields (colors_legacy, logos_legacy, socialLinks, pageLinks) are preserved alongside for SDKs that pre-date the change.

Endpoint: GET /v1/brand/retrieve Credits: 10 per request (0 if cached)

Parameters

ParameterTypeRequiredDescription
domainstringYesDomain to look up (e.g., stripe.com)
refreshbooleanNoForce fresh fetch, bypassing cache (default: false)

Response Schema

All /v1 responses use a { data, _meta } envelope. _meta.cache reports cache state and _meta.timing reports server-side timing.

{
  "data": {
    "id": "...",
    "domain": "stripe.com",
    "title": "Stripe",
    "description": "Financial infrastructure for the internet.",
    "slogan": null,
    "primary_language": "en",
    "is_nsfw": false,
    "colors": [
      { "hex": "#635BFF", "name": "Iris" }
    ],
    "logos": [
      { "url": "https://stripe.com/img/v3/home/social.png", "type": "logo" },
      { "url": "https://stripe.com/favicon.ico", "type": "icon" }
    ],
    "socials": [
      { "type": "twitter", "url": "https://twitter.com/stripe" },
      { "type": "linkedin", "url": "https://linkedin.com/company/stripe" }
    ],
    "links": {
      "careers": "https://stripe.com/jobs",
      "terms": "https://stripe.com/legal",
      "contact": "https://stripe.com/contact",
      "pricing": "https://stripe.com/pricing"
    },
    "industries": ["Financial Technology"],
    "address": null,
    "phone": null,
    "email": null,
    "context": { "...": "LiveContact-shaped extraction payload" },
    "dataSources": { "...": "per-field provenance" },
    "confidenceScore": 0.92,
    "colors_legacy": { "primary": "#635BFF" },
    "logos_legacy": { "primary": "https://stripe.com/img/v3/home/social.png", "favicon": "https://stripe.com/favicon.ico" },
    "socialLinks": { "twitter": "https://twitter.com/stripe", "linkedin": "https://linkedin.com/company/stripe" },
    "pageLinks": { "pricing": "https://stripe.com/pricing", "careers": "https://stripe.com/jobs" }
  },
  "_meta": {
    "cache": { "hit": false, "ttl_remaining_s": 86400 },
    "timing": { "total_ms": 412 }
  }
}

Code Examples

cURL

curl -X GET "https://api.orsa.dev/v1/brand/retrieve?domain=stripe.com" \
  -H "Authorization: Bearer YOUR_API_KEY"

TypeScript

const { data: brand } = await client.brand.retrieve({
  domain: 'stripe.com',
});
 
console.log(brand.title);                  // "Stripe"
console.log(brand.colors[0].hex);          // "#635BFF"
console.log(brand.colors[0].name);         // "Iris"
console.log(brand.logos[0].url);           // logo URL
const twitter = brand.socials.find(s => s.type === 'twitter');

Python

res = client.brand.retrieve(domain="stripe.com")
brand = res["data"]
 
print(brand["title"])                  # "Stripe"
print(brand["colors"][0]["hex"])       # "#635BFF"
print(brand["logos"][0]["url"])
twitter = next((s for s in brand["socials"] if s["type"] == "twitter"), None)

Notes

  • Cached responses return instantly and cost 0 credits. Cache TTL is 24 hours.
  • Use refresh=true to force a fresh browser fetch (useful if a company rebranded).
  • On a cache miss the server runs a lightweight inline extract and queues a deeper background refresh — the next call lands warm.
  • The legacy dict-shaped fields (colors_legacy, logos_legacy, socialLinks, pageLinks) are preserved so older SDK versions that read colors.primary or logos.favicon keep working. New code should use colors[], logos[], socials[], and links instead.