Docs/Fonts
/v1/fonts5 creditsThe real typography a site loads. Resolves the page's full CSS cascade (linked stylesheets, @import, inline styles) and returns every @font-face file with its family, weight, style and format, Google Fonts links, preloaded files - plus a grouped per-family summary answering "what fonts does this site use, in which weights?" in one look.
urlrequiredThe page to extract from. With or without protocol (https:// is assumed).fieldsoptionalComma-separated list of fields to return (e.g. fields=families). Omit for the full object. url is always included. Trims the response only - the credit cost is unchanged. see the fields table belowrenderoptionalLoad the page in a real browser and run its JavaScript before extracting. Use for client-rendered sites (React, Next, SPAs) where the default static fetch returns little - runtime-injected images, styles, media and Lotties become visible. Slower (a real page load), and adds 5 credits to the call. Cache hits stay free. You rarely have to guess: when a static extraction comes back thin because the page is client-rendered, the response includes a top-level hint field telling you to retry with render=true. true · false (default)freshoptionalSkip the 24-hour cache and re-extract from the live page. Use it when you know the site just changed (a redeploy, a rebrand) and a cached copy would be stale. The call is charged normally - the extraction really runs - and the fresh result replaces the cached copy for the next caller. Off by default: identical repeat calls within 24 hours are served from cache at 0 credits. true · false (default)screenshotoptionalRequires render=true. The same real browser that renders the page also captures a screenshot - true for the 1440x900 viewport, full for the entire page height. The response gains a screenshot field with a public image URL that stays live for 7 days. No extra credits beyond the render surcharge. Captured on fresh extractions - a cache hit returns the screenshot stored with the cached result (pass fresh=true to force a new one). true · full · false (default)fields valuesfontsEvery font source found: @font-face files (with weight/style/format), Google Fonts declarations, preloads.familiesGrouped per-family summary: weights, styles and file count per family.googleFontsLinksRaw Google Fonts <link> hrefs found on the page.countTotal number of font sources found.noteWarning about demo/trial families, when any were found. Always returned even if not selected.Build a request
GEThttps://miromiro.app/api/v1/v1/fonts?url=stripe.com
urlrequiredfieldsNothing selected returns the full response.
renderfreshscreenshot Options at their default are left out of the URL - the API assumes them. Auth isn't shown here: send your key as an Authorization: Bearer header (see the example below).
Response
Authorization: Bearer mm_live_…urlstringThe resolved URL that was extracted.families[]arrayGrouped per-family summary - what most callers want. Each family with the weights and styles it ships and how many files serve it. `demo: true` marks a family whose name identifies it as a foundry demo or trial cut.fonts[]arrayEach { source, family, url, weight, style, format }. source ∈ font-face, google-fonts, preload. weight can be a variable-font range like "100 900"; format ∈ woff2, woff, ttf, otf, eot.googleFontsLinks[]string[]Raw Google Fonts <link> hrefs found on the page.countnumberTotal number of font sources found.notestringPresent only when one or more families are named as a demo or trial cut. Type foundries serve these to render their own specimens: they are usually subset to a limited character set with kerning and OpenType features stripped, so the file extracts fine but is not the usable typeface. Returned even when ?fields= does not select it.usageobjectMetering for this call: credits spent this month, your monthly cap (null = unlimited), credits remaining, what this call cost (0 on cache hits), and whether it was served from the 24-hour cache. packCredits appears only when you hold a credit pack: the never-expiring balance left after this call.Example request
https://miromiro.app/api/v1/extract?url=stripe.com&access_key=mm_live_…