A API para desenvolvedores oferece acesso aos metadados de todas as famílias veiculadas pelo Google Fonts. Ele permite que os apps consultem as famílias de fontes disponíveis no Google Fonts. A API REST fornece dados no formato JSON que inclui os estilos e scripts (chamados de subconjuntos no Google Fonts) em cada família. A API pode classificar a lista de famílias em ordem alfabética, por data de adição, número de estilos, tendência ou popularidade.
Público-alvo
Este documento é destinado a desenvolvedores da Web e de aplicativos. O uso da API para desenvolvedores requer conhecimento de JavaScript.
Um exemplo rápido
Para recuperar a lista dinâmica de fontes oferecidas pelo serviço Google Fonts, envie a seguinte solicitação:
https://www.googleapis.com/webfonts/v1/webfonts?key=YOUR-API-KEY
Um exemplo do resultado seria assim:
{ "kind": "webfonts#webfontList", "items": [ [...] { "family": "Anonymous Pro", "variants": [ "regular", "italic", "700", "700italic" ], "subsets": [ "cyrillic", "greek", "latin", "latin-ext" ], "version": "v21", "lastModified": "2022-09-22", "files": { "regular": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2Bp2a15UIB7Un-bOeISG3pLlw89CH98Ko.ttf", "italic": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2fp2a15UIB7Un-bOeISG3pHl428AP44Kqr2Q.ttf", "700": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2cp2a15UIB7Un-bOeISG3pFuAT0CnW7KOywKo.ttf", "700italic": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2ap2a15UIB7Un-bOeISG3pHl4OTCzc6IG30KqB9Q.ttf" }, "category": "monospace", "kind": "webfonts#webfont", "menu": "http://fonts.gstatic.com/s/anonymouspro/v21/rP2Bp2a15UIB7Un-bOeISG3pHl028A.ttf" }, { "family": "Antic", "variants": [ "regular" ], "subsets": [ "latin" ], "version": "v19", "lastModified": "2022-09-22", "files": { "regular": "http://fonts.gstatic.com/s/antic/v19/TuGfUVB8XY5DRaZLodgzydtk.ttf" }, "category": "sans-serif", "kind": "webfonts#webfont", "menu": "http://fonts.gstatic.com/s/antic/v19/TuGfUVB8XY5DRZZKq9w.ttf" }, [...] ] }
Como identificar seu aplicativo para o Google
Seu aplicativo precisa se identificar sempre que enviar uma solicitação para a API Google Fonts Developer, incluindo uma chave de API em cada solicitação.
Como receber e usar uma chave de API
Gerar uma chaveOu crie uma na página "Credenciais".
Depois que você tiver uma chave de API, seu aplicativo poderá anexar o parâmetro de consulta key=yourAPIKey
a todos os URLs de solicitação.
É seguro incorporar a chave de API a URLs. Não é necessário codificá-la.
Detalhes
A resposta JSON (consulte o exemplo acima) é composta por uma matriz chamada "items", que contém objetos com informações sobre cada família de fontes.
Um objeto de família é composto pelos seguintes campos:
- kind: o tipo de objeto, um objeto de fonte da Web
- família: o nome da família
- Subsets: uma lista de scripts aceitos pela família
- menu: um URL para o subconjunto da família que abrange apenas o nome dela.
- variantes: os diferentes estilos disponíveis para a família
- version: a versão da família de fontes.
- eixos: intervalo do eixo, presente apenas mediante solicitação(consulte abaixo) para fontes variáveis.
- lastModified: a data (formato "aaaa-MM-dd") em que a família de fontes foi modificada pela última vez.
- arquivos: os arquivos de família de fontes (com todos os scripts compatíveis) para cada uma das variantes disponíveis.
Ao combinar as informações de cada família, é fácil criar uma solicitação da API Fonts. Por exemplo, supondo que tenhamos uma referência ao objeto de família para Anonymous Pro:
[...] var apiUrl = []; apiUrl.push('https://fonts.googleapis.com/css?family='); apiUrl.push(anonymousPro.family.replace(/ /g, '+')); if (contains('italic', anonymousPro.variants)) { apiUrl.push(':'); apiUrl.push('italic'); } if (contains('greek', anonymousPro.subsets)) { apiUrl.push('&subset='); apiUrl.push('greek'); } // url: 'https://fonts.googleapis.com/css?family=Anonymous+Pro:italic&subset=greek' var url = apiUrl.join(''); [...]
Classificação
A lista de famílias é retornada sem ordem específica por padrão. No entanto, é possível classificar a lista usando o parâmetro de classificação:
https://www.googleapis.com/webfonts/v1/webfonts?sort=popularity
Os valores de classificação possíveis são:
- alfa: ordena a lista em ordem alfabética
- data: classifica a lista por data de adição (a fonte mais recente é adicionada ou atualizada primeiro)
- popularidade: classifica a lista por popularidade (a família mais popular em primeiro lugar)
- style: classifica a lista pelo número de estilos disponíveis (a família com mais estilos primeiro)
- tendências: classifica a lista por famílias que estão tendo um aumento no uso (a família que está tendo o maior crescimento em primeiro lugar)
Filtragem
Consultar uma família específica
https://www.googleapis.com/webfonts/v1/webfonts?family=family_name
Todas as famílias que oferecem suporte ao subconjunto grego
https://www.googleapis.com/webfonts/v1/webfonts?subset=subset_name
Filtrar por categoria de fonte
https://www.googleapis.com/webfonts/v1/webfonts?category=category_name
Otimização
Para recuperar arquivos de fonte compactados no formato woff2
https://www.googleapis.com/webfonts/v1/webfonts?capability=WOFF2
Fontes variáveis
As fontes variáveis oferecem uma variedade contínua de estilos. Por padrão, uma combinação de
arquivos de fontes estáticas é retornada para fontes variáveis instanciadas em posições
padrão.
Se capability=VF
estiver definido, o arquivo de fonte variável será retornado em vez de estático
com os metadados de intervalo de eixos disponíveis.
Exemplo:
https://www.googleapis.com/webfonts/v1/webfonts?capability=VF
Exemplo de resposta:
{ "kind": "webfonts#webfontList", "items": [ [...] { "family": "Noto Sans Display", "variants": [ "regular", "italic" ], "subsets": [ "cyrillic", "cyrillic-ext", "greek", "greek-ext", "latin", "latin-ext", "vietnamese" ], "version": "v20", "lastModified": "2022-09-22", "files": { "regular": "http://fonts.gstatic.com/s/notosansdisplay/v20/RLplK4fy6r6tOBEJg0IAKzqdFZVZxokvfn_BDLxR.ttf", "italic": "http://fonts.gstatic.com/s/notosansdisplay/v20/RLpjK4fy6r6tOBEJg0IAKzqdFZVZxrktdHvjCaxRgew.ttf" }, "category": "sans-serif", "kind": "webfonts#webfont", "menu": "http://fonts.gstatic.com/s/notosansdisplay/v20/RLpbK4fy6r6tOBEJg0IAKzqdFZVZxpMkXJMhnB9XjO1o90LuV-PT4Doq_AKp_3cKZTCa3g.ttf", "axes": [ { "tag": "wdth", "start": 62.5, "end": 100 }, { "tag": "wght", "start": 100, "end": 900 } ] }, [...] ] }
Especificação de URL da API
webfonts?key=<your_key>[&family=<family>][&subset=<subset>][&capability=<capability>...][&sort=<sort>]
your_key
: sua chave de API do desenvolvedor.
family
: nome de uma família de fontes.
subset
: nome de um subconjunto de fontes.
category
: serif
| sans-serif
| monospace
| display
| handwriting
capability
: VF
| WOFF2
.
sort
: alpha
| date
| popularity
| style
| trending
.