fonts.google.com APIfonts.google.com ↗
Access Google Fonts catalog data via API. Search by category, subset, or name. Get variants, variable axes, designers, and rankings for any font family.
curl -X GET 'https://api.parse.bot/scraper/ab1e521d-6afa-4336-a3e8-b5f698199b4a/search_fonts?sort=trending&limit=3&category=serif' \ -H 'X-API-Key: $PARSE_API_KEY'
Search and filter Google Fonts by name, category, subset, with sorting options. Returns a paginated list of font families matching the criteria.
| Param | Type | Description |
|---|---|---|
| sort | string | Sort order: popularity, trending, alphabetical, date, name |
| limit | integer | Maximum number of results to return |
| query | string | Search query to match against font family names (case-insensitive) |
| subset | string | Filter by language/script subset (e.g., latin, cyrillic, greek, japanese, arabic). Empty string returns all subsets. |
| category | string | Filter by category: sans-serif, serif, display, handwriting, monospace. Empty string returns all categories. |
{
"type": "object",
"fields": {
"count": "integer — number of fonts returned in this response",
"fonts": "array of font summary objects with family, category, variants, subsets, designers, popularity_rank, trending_rank, last_modified, date_added",
"total": "integer — total number of fonts matching filters before limit is applied"
},
"sample": {
"data": {
"count": 3,
"fonts": [
{
"family": "Parastoo",
"subsets": [
"arabic",
"latin",
"latin-ext",
"vietnamese"
],
"category": "Serif",
"variants": [
"400",
"500",
"600",
"700"
],
"designers": [
"Saber Rastikerdar"
],
"date_added": "2025-05-21",
"last_modified": "2025-10-29",
"trending_rank": 17,
"popularity_rank": 1607
}
],
"total": 348
},
"status": "success"
}
}About the fonts.google.com API
This API provides structured access to the Google Fonts catalog across 2 endpoints, returning metadata for thousands of free, open-source typefaces. The search_fonts endpoint lets you filter by category, script subset, and sort order — returning family names, variant lists, popularity ranks, and designer credits. The get_font_details endpoint exposes per-family metadata including variable font axes, typographic classification, and date added.
Search and Filter the Font Catalog
The search_fonts endpoint accepts five optional parameters: query (case-insensitive name match), category (sans-serif, serif, display, handwriting, monospace), subset (latin, cyrillic, arabic, japanese, and more), sort (popularity, trending, alphabetical, date, name), and limit. The response includes a total field showing how many fonts match the filters before the limit is applied, a count of results in the current response, and a fonts array. Each font object in the array carries family, category, variants, subsets, designers, popularity_rank, trending_rank, and last_modified.
Detailed Font Metadata
The get_font_details endpoint takes a single required family parameter and returns the full metadata record for that typeface. Beyond the basics shared with the search response, it adds axes — an array of variable font axis descriptors, each with tag, min, max, and defaultValue — and a fonts object keyed by variant identifier (e.g. '400', '700i'), where each entry includes thickness, slant, width, and lineHeight. Additional fields include stroke, is_noto (boolean flagging Noto project fonts), and date_added in ISO YYYY-MM-DD format.
Coverage and Data Shape
Both endpoints reflect the publicly listed Google Fonts catalog. Ranking data comes in two flavors: popularity_rank for all-time download volume ordering, and trending_rank for recent momentum. The subsets array on each font lists every supported language/script, making it straightforward to filter for fonts that cover specific writing systems before loading them into a project.
- Build a font picker UI that filters by
categoryandsubsetto show only fonts supporting a target script like Arabic or Cyrillic. - Generate a ranked directory of the most-downloaded Google Fonts using
sort=popularityfromsearch_fonts. - Detect fonts with variable axis support by checking the
axesarray inget_font_detailsbefore embedding them in a design system. - Audit which fonts were added most recently using
sort=dateto surface new catalog additions. - Cross-reference
designersdata fromget_font_detailsto attribute typefaces correctly in documentation or credits. - Filter monospace fonts via
category=monospaceto populate a code editor theme selector. - Identify Noto project fonts using the
is_notoboolean when building multilingual typographic tools.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Google Fonts have an official developer API?+
popularity_rank, trending_rank, and variable font axes that the official API does not expose directly.What does `get_font_details` return for variable fonts specifically?+
axes array contains one object per registered axis, each with a tag (e.g. wght, ital), a min value, a max value, and a defaultValue. If a font has no variable axes, the axes array is empty. The fonts object also provides per-variant metrics including thickness, slant, width, and lineHeight.Can I retrieve the actual font files or CSS embed URLs through this API?+
Does pagination work differently between the two endpoints?+
search_fonts endpoint supports a limit parameter and returns both count (results in this response) and total (all matches before limiting), giving you enough to implement offset pagination on your side. The get_font_details endpoint returns a single font record by exact family name and has no pagination concept.Are font usage analytics or embed count data available?+
popularity_rank and trending_rank as ordinal ranking fields, but not raw embed counts, weekly views, or historical usage time series. You can fork this API on Parse and revise it to add an endpoint targeting usage trend data if that surface becomes available.