---
title: "Scrape Fonts"
method: GET
path: "/web/fonts"
tags: ["Web Extraction"]
---

# Scrape Fonts

`GET /web/fonts`

Scrape font information from a website including font families, usage statistics, fallbacks, and element/word counts.

## Query parameters

- `directUrl` string, uri — A specific URL to fetch fonts from directly, bypassing domain resolution (e.g., 'https://example.com/design-system'). When provided, fonts are extracted from this exact URL. You must provide either 'domain' or 'directUrl', but not both.
- `domain` string — Domain name to extract fonts from (e.g., 'example.com', 'google.com'). The domain will be automatically normalized and validated. You must provide either 'domain' or 'directUrl', but not both.
- `maxAgeMs` integer, nullable — Maximum age in milliseconds for cached brand data before the API performs a hard refresh. Defaults to 3 months (7776000000 ms). Values below 1 day (86400000 ms) are clamped to 1 day; values above 1 year (31536000000 ms) are clamped to 1 year.
- `timeoutMS` integer — Optional timeout in milliseconds for the request. If the request takes longer than this value, it will be aborted with a 408 status code. Maximum allowed value is 300000ms (5 minutes).
- `tags` string[] — Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.

## Response `200`

Successful response

- object
  - `status` string, required — Status of the response, e.g., 'ok'
  - `domain` string, required — The normalized domain that was processed
  - `fonts` object[], required — Array of font usage information
    - `font` string, required — Font family name
    - `uses` string[], required — Array of CSS selectors or element types where this font is used
    - `fallbacks` string[], required — Array of fallback font families
    - `num_elements` number, required — Number of elements using this font
    - `num_words` number, required — Number of words using this font
    - `percent_words` number, required — Percentage of words using this font
    - `percent_elements` number, required — Percentage of elements using this font
  - `fontLinks` object — Font assets keyed by family name as it appears in the fonts array (non-generic names only). Clients match entries in fonts to pick a file URL from files. Omitted when no families resolve to Google or custom @font-face URLs.
  - `code` integer, required — HTTP status code, e.g., 200
  - `key_metadata` KeyMetadata — Metadata about the API key used for the request. Included in every response whenever a valid API key is provided, even when the response status is not 200.
    - `credits_consumed` integer, required — The number of credits consumed by this request.
    - `credits_remaining` integer, required — The number of credits remaining for your organization after this request.

## Other responses

- `400` — Bad request - Invalid input parameters
- `401` — Unauthorized - Invalid or missing API key
- `403` — Forbidden - Insufficient permissions or usage limit exceeded
- `408` — Request timeout
- `429` — Rate limit exceeded
- `500` — Internal server error

---

[API](https://skmtc.net/context/apis/context-dev.md) · [All operations](https://skmtc.net/context/apis/context-dev/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/context/context-dev/versions/182f532c2552/schema)
