Retrieve Brand by Name

Look up brand data using a company name. Uses fuzzy matching (trigram similarity) and returns the best match plus a list of alternative candidates.

Endpoint: GET /v1/brand/retrieve-by-name Credits: 2 per request

Parameters

ParameterTypeRequiredDescription
namestringYesCompany or brand name (e.g., Stripe, Linear)

Response Schema

{
  "data": {
    "brand": {
      "id": "...",
      "domain": "stripe.com",
      "title": "Stripe",
      "description": "Financial infrastructure for the internet.",
      "logos": { "primary": "...", "favicon": "..." },
      "colors": { "primary": "#635BFF" },
      "industries": ["Financial Technology"]
    },
    "matches": [
      { "id": "...", "domain": "stripe.com", "title": "Stripe", "similarity": 1.0 },
      { "id": "...", "domain": "stripe.press", "title": "Stripe Press", "similarity": 0.82 }
    ]
  },
  "_meta": {}
}

Code Examples

cURL

curl -X GET "https://api.orsa.dev/v1/brand/retrieve-by-name?name=Stripe" \
  -H "Authorization: Bearer YOUR_API_KEY"

TypeScript

const { data } = await client.brand.retrieveByName({
  name: 'Stripe',
});
 
console.log(data.brand.domain);                // "stripe.com"
console.log(data.matches[0].similarity);       // 1.0

Python

res = client.brand.retrieve_by_name(name="Stripe")
data = res["data"]
 
print(data["brand"]["domain"])              # "stripe.com"
print(data["matches"][0]["similarity"])      # 1.0

Error Codes

CodeStatusDescription
INPUT_VALIDATION_ERROR400Missing or empty name parameter
UNAUTHORIZED401Missing or invalid API key
NOT_FOUND404No brand found matching the given name
RATE_LIMITED429Rate limit exceeded
USAGE_EXCEEDED402Insufficient credits

Notes

  • Uses fuzzy matching (trigram similarity) — exact spelling isn’t required.
  • data.brand is the highest-similarity match; data.matches lists the top candidates with their similarity scores (0–1).
  • If the brand hasn’t been indexed yet, you’ll get a 404. Use Retrieve by Domain to trigger extraction for new domains.