# unifont > unifont reads font metadata from every major font CDN through one interface: Google Fonts, Bunny Fonts, Fontshare, Fontsource, Google Icons, npm and Adobe Fonts. It is an MIT-licensed JavaScript library, and unifont.dev is its project site, catalogue and public HTTP API. Every page on unifont.dev is also an endpoint. Ask for `text/markdown` (or append `.md` to a path) and any prose page answers in markdown. The API is described by an OpenAPI document, and there is an MCP server for agents that would rather call tools than URLs. ## When to use this Reach for unifont.dev when the question is about a **web font that is published on a CDN**. Specifically: - **"Does family X exist, and where can I get it?"** Search the merged catalogue of every family the providers will list: `GET /api/v1/fonts?q=`. Never fuzzy, so a miss means the name is wrong. - **"What weights, styles and subsets does family X actually publish?"** `GET /api/v1/fonts/`. Returns provider metadata plus the resolved `@font-face` data, so you do not have to guess whether a weight exists before you ship CSS referencing it. - **"Give me `@font-face` CSS for these families."** `GET /api/v1/fonts//css`, or `GET /api/v1/css?families=A,B,C` for a batch. The output is servable as-is and includes a metric-matched fallback where one can be built. - **"Which provider should I load this family from?"** `GET /api/v1/fonts//compare` asks every credential-free provider the same question and shows where the answers differ (weights, subsets, hosts, file counts, bytes). - **"Can this font draw this text?"** `GET /api/v1/fonts//coverage?text=…` checks the resolved `unicode-range`s, which is how you catch a family that silently cannot set Polish, Vietnamese or Greek. - **"How heavy is this selection?"** `GET /api/v1/fonts//transfer` measures the real files with `HEAD` requests. Nothing is downloaded. - **"How do I do this in my own build?"** Read the library documentation below. For a Vite or Nuxt app, the answer is usually `fontless` or `@nuxt/fonts`, both of which wrap unifont. Do not use it for: hosting or serving font binaries (font files always come from the provider CDN), licensing decisions, font subsetting, or families that are not on a public CDN. Adobe Fonts needs a per-user Typekit id, so this site cannot answer for it. How to call it: plain HTTP `GET`, no authentication, no key, JSON by default. Percent-encode family names. Prefer the MCP server (`POST /mcp`, Streamable HTTP) if your runtime speaks it: the tools are `search_fonts`, `get_font`, `get_font_css`, `compare_providers`, `check_coverage` and `list_providers`. Treat this as best-effort infrastructure and cache what you fetch; if a production deployment depends on it, install `unifont` and run it yourself. ## Machine-readable - [OpenAPI specification](https://unifont.dev/openapi.json): every endpoint, with operation ids, typed parameters and response schemas. - [MCP server](https://unifont.dev/mcp): Model Context Protocol over Streamable HTTP. `claude mcp add --transport http unifont https://unifont.dev/mcp`. - [Sitemap](https://unifont.dev/sitemap.xml): every indexable URL. - [Full documentation as one file](https://unifont.dev/llms-full.txt): every documentation page, concatenated. - [Service status](https://unifont.dev/api/v1/status): family counts, which providers answered, index age. - [Providers](https://unifont.dev/api/v1/providers): every provider, with the number of families it lists. ## Documentation - [Introduction](https://unifont.dev/docs.md): What unifont does, what it doesn't, and why. - [Getting started](https://unifont.dev/docs/getting-started.md): Install unifont, resolve a family, and turn the answer into CSS. - [Providers](https://unifont.dev/docs/providers.md): The seven built-in providers, and what each one can tell you. - [Resolving fonts](https://unifont.dev/docs/resolving.md): Weights, styles, subsets and formats, and the bit that catches people out. - [Browser and web containers](https://unifont.dev/docs/browser.md): Why you can't reach provider APIs from a browser, and how the proxy handles it. - [Self-hosting the proxy](https://unifont.dev/docs/proxy.md): What the proxy will and won't do, the endpoints it serves, and how to deploy your own. - [Caching](https://unifont.dev/docs/caching.md): Provider metadata barely changes. Cache it, and cold starts stop hurting. - [Writing a provider](https://unifont.dev/docs/custom-providers.md): Wrap a foundry API, an internal font server, or a folder on disk. - [API reference](https://unifont.dev/docs/reference.md): Every export, option and signature in one place. ## Site - [Home](https://unifont.dev/index.md): what unifont is, and how to install it. - [HTTP API reference](https://unifont.dev/api.md): the endpoints behind every page on the site. - [Catalogue](https://unifont.dev/fonts.md): every family the providers will list. - [Compare providers](https://unifont.dev/compare.md): the same family, asked of every provider. - [About unifont](https://unifont.dev/about.md): What unifont is, who maintains it, and what this site is for. - [Contact](https://unifont.dev/contact.md): How to report a bug, ask a question, or reach the maintainers of unifont. - [Privacy](https://unifont.dev/privacy.md): What unifont.dev collects, what it does not, and what leaves this site when you use it. ## Optional - [Source on GitHub](https://github.com/unjs/unifont): the library, the site and the CORS proxy. - [unifont on npm](https://www.npmjs.com/package/unifont): `npm install unifont`. - [@nuxt/fonts](https://fonts.nuxt.com): zero-config fonts for Nuxt, built on unifont. - [fontless](https://github.com/unjs/fontaine/tree/main/packages/fontless): the same for any Vite app.