Font Identification API
Identify fonts from letterform traits or an image, matched against a library of free open-source fonts. Free for humans on this site - this API is for programmatic and bulk use.
Endpoint
POST https://fonts.free/api/identify/
Two modes. Send wizard answers as JSON, or an image as multipart form data. Add ?top=N (1-48) to set how many matches come back.
1. By letterform traits
curl -X POST "https://fonts.free/api/identify/?top=8" \
-H "Content-Type: application/json" \
-d '{"answers": {"serif": ["none"], "contrast": ["low"], "a": ["double"]}}'
2. From an image (beta)
curl -X POST "https://fonts.free/api/identify/" \
-F "image=@sample.png"
Response
{
"ok": true,
"mode": "wizard",
"matches": [
{"slug": "roboto", "family": "Roboto",
"url": "https://fonts.free/fonts/roboto/",
"css": "…", "score": 3}
]
}
Authentication and limits
Without a key the endpoint works but is rate-limited per IP - fine for trying it out. A key raises your limit against a monthly quota. Send it as a header or query parameter:
-H "X-Api-Key: your_key" # or ?key=your_key
Plans
No key needed for light use. Great for prototypes and low-volume tools.
For production apps and batch identification. Priority matching.
High-throughput or embedded use. Priority matching.
The free tier needs no key - just call the endpoint, it is rate-limited per IP. Subscribe on the pricing page for a key with a higher monthly quota. Every match the API returns is a free, open-licensed font, so there is nothing to license downstream.