Website Font Detector - Fonts Used on Any Page
Pricing
$1.00 / 1,000 scanned pages
Website Font Detector - Fonts Used on Any Page
Detect the fonts a site uses: @font-face + web-font files, font-family stacks, and Google/Adobe/self-hosted/system sources. Bulk. $0.001 per page, cheaper than paid font/brand extractors; failed fetches free.
Pricing
$1.00 / 1,000 scanned pages
Rating
0.0
(0)
Developer
Anthony Snider
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Website Font Detector — fonts used on any page
Detect the fonts a website uses: @font-face declarations with their web-font files, font-family
stacks, and whether each family comes from Google Fonts, Adobe Fonts, a self-hosted webfont, or the
system. Single URL or bulk. $0.001 per page. Failed fetches are recorded free.
What you get
One dataset item per URL:
| Field | What it is |
|---|---|
ok | true on a successful fetch, false on an error row |
url | The URL you passed |
finalUrl | Where the request actually landed after redirects |
status | HTTP status of the page fetch |
fontCount | How many distinct families were found |
fonts | Array of { family, source, files[] }, sorted alphabetically by family |
Each font carries family (the declared name), source (webfont, google, adobe or
system), and files - each { url, format } where the format is known. Families seen more than
one way keep the most specific source, so a Google-hosted family is never downgraded to system
just because it also appears in a fallback stack. CSS comments are stripped before parsing, so a
commented-out font-family never shows up as a result.
Example 1 - one page
Input:
{ "url": "https://techcrunch.com", "maxUrls": 25 }
Output (real run, 2026-08-07):
{"ok": true, "url": "https://techcrunch.com/", "status": 200,"fontCount": 3,"fonts": [{ "family": "nb_international_promono", "source": "webfont","files": [ { "url": "https://techcrunch.com/wp-content/themes/tc-24/assets/fonts/.../nbinternationalpromono-webfont.woff2", "format": "woff2" } ] }]}
Example 2 - a competitor sweep in one run
{"urls": ["stripe.com", "linear.app", "vercel.com", "https://notion.so"],"maxUrls": 50}
Bare domains get https:// added for you, duplicates are removed, and you get one row per site -
so a whole competitive set's typography lands in a single dataset you can export as CSV.
Example 3 - a page that will not load
{ "url": "https://no-such-site.invalid", "ok": false, "error": "fetch failed", "fontCount": 0, "fonts": [] }
The row is recorded so nothing silently disappears from your dataset, the run continues, and that URL is not charged.
Pricing — $0.001 per page
Prices below checked via the Apify Store API on 2026-08-07:
| Actor | Pricing | One page |
|---|---|---|
| This actor | $0.001 per page | $0.001 |
| eiv/website-brand-extractor | $0.001 start + $0.002 per item | $0.003 |
| automation-lab/font-detector | $0.035 per run start | $0.035+ |
When NOT to use this
- The fonts live only in an external stylesheet. This reads the served HTML:
<style>blocks, inlinestyle=""attributes, and provider<link>/@importreferences. A site whose@font-facerules sit in a separate.cssfile will surface its Google or Adobe provider link but not the self-hosted font file URLs inside that stylesheet. - The page renders its fonts with JavaScript. No browser is launched - the raw HTML response is parsed. A single-page app that injects styles at runtime will look emptier here than it does in DevTools.
- You want to know which font actually rendered. This reports what the page declares. Which
entry in a
font-familystack the browser picked depends on the visitor's machine. - You want the licence, price or a downloadable file. Family names and file URLs come back; licensing, foundry and pricing do not, and nothing is downloaded.
- You need Adobe Fonts family names. Typekit loads families at runtime via JavaScript, so the
kit is surfaced as
Adobe Fonts kit: <id>with its CSS URL rather than the individual families.
FAQ
How do I find out what font a website uses?
Pass the URL. Every declared family comes back in fonts[] with a source telling you whether it
is a self-hosted webfont, Google Fonts, Adobe Fonts, or a plain system stack.
Can I get the actual font file URL?
Yes, when the @font-face rule is in the HTML. files[] holds each src URL with its declared
format (woff2, woff, ttf), resolved to an absolute URL against the page.
Does it identify Google Fonts and Adobe Fonts?
Yes. Google Fonts are read from fonts.googleapis.com link tags and @import rules, including both
the css2 ?family=A&family=B form and the older ?family=A|B form. Adobe Fonts are detected from
use.typekit.net kit references.
Does it fetch external CSS files? No. It parses inline CSS and provider links inside the HTML. This is what keeps a scan fast enough to cost $0.001 instead of running a headless browser.
Can I check many websites at once?
Yes - up to 50 URLs per run via urls. Bare domains are upgraded to https:// automatically and
duplicates are removed before any fetch happens.
Why does a font show up as "system"?
Because it appeared in a font-family stack but the page never declared a matching @font-face or
provider link, so there is no evidence of a downloadable file. Generic keywords (serif,
sans-serif, system-ui, inherit and friends) are filtered out entirely.
What about a dead URL?
You get an {ok:false, error} record and the run continues. That URL is never charged.
Related actors
- Website Color Palette Extractor (
EliAI/webpage-color-palette) — the color half of a page's design tokens (hex/rgb/hsl ranked). Pair the two to capture a site's full typography + color system.
Use from code or AI agents
curl -X POST "https://api.apify.com/v2/acts/EliAI~webpage-font-detector/runs?token=YOUR_APIFY_TOKEN" \-H 'content-type: application/json' -d '{"url":"https://techcrunch.com"}'
Callable as an agent tool through the Apify MCP server (mcp.apify.com).