API Reference
Brand Intelligence
Fonts

Fonts

Extract font information from any website — families, weights, styles, sources, and usage (heading, body, code).

Endpoint: GET /v1/brand/styleguide?fonts_only=true Credits: 5 per request

Parameters

ParameterTypeRequiredDescription
domainstringConditionalTarget domain (one of domain or directUrl required)
directUrlstringConditionalDirect URL to analyze
fonts_onlybooleanYesMust be true for the fonts-only response

Response Schema

{
  "success": true,
  "data": {
    "fonts": [
      {
        "family": "Inter",
        "weight": "400",
        "style": "normal",
        "usage": "body",
        "source": "Google Fonts"
      },
      {
        "family": "Inter",
        "weight": "600",
        "style": "normal",
        "usage": "heading",
        "source": "Google Fonts"
      },
      {
        "family": "Fira Code",
        "weight": "400",
        "style": "normal",
        "usage": "code",
        "source": "self-hosted"
      }
    ],
    "domain": "linear.app"
  },
  "credits_used": 5,
  "request_id": "f6a7b8c9-d0e1-2345-f012-456789012345"
}

Code Examples

cURL

curl -X GET "https://api.orsa.dev/v1/brand/styleguide?domain=linear.app&fonts_only=true" \
  -H "Authorization: Bearer YOUR_API_KEY"

TypeScript

const result = await client.brand.fonts({
  domain: 'linear.app',
});
 
console.log(result.fonts);
// [{ family: "Inter", weight: "400", usage: "body" }, ...]
 
const headingFont = result.fonts.find(f => f.usage === 'heading');
console.log(headingFont?.family);  // "Inter"

Python

result = client.brand.fonts(domain="linear.app")
 
print(result.fonts)
# [{"family": "Inter", "weight": "400", "usage": "body"}, ...]
 
heading_font = next(f for f in result.fonts if f.usage == "heading")
print(heading_font.family)  # "Inter"

Error Codes

CodeStatusDescription
INPUT_VALIDATION_ERROR400Neither domain nor directUrl provided
UNAUTHORIZED401Missing or invalid API key
RATE_LIMITED429Rate limit exceeded
USAGE_EXCEEDED402Insufficient credits
INTERNAL_ERROR500Font extraction failed

Notes

  • This endpoint uses the same styleguide route with fonts_only=true — it's faster and half the cost (5 vs 10 credits).
  • Font usage values: heading, body, code, other.
  • The source field indicates where the font is loaded from (e.g., Google Fonts, Adobe Fonts, self-hosted).
  • For the full design system (colors, spacing, logos + fonts), use the Styleguide endpoint instead.