Pular para o conteúdo

Comece aqui

Autenticação

Toda chamada leva sua chave de API no cabeçalho Authorization. Crie e revogue chaves no console, e use as chaves só no seu servidor.

Envie sua chave

Coloque a chave no cabeçalho Authorization, depois da palavra Bearer e de um espaço:

Authorization: Bearer gm_…

Só procuramos a chave nesse cabeçalho. Não existe cabeçalho X-API-Key, e nunca lemos a chave da URL, porque URLs acabam parando em logs.

Para testar uma chave, consulte seu uso. É de graça e não muda nada. O SDK manda o cabeçalho por você depois que recebe a chave:

curl https://api.gmaps.dev/v1/usage \
  -H "Authorization: Bearer $GMAPS_API_KEY"

Crie uma chave

Crie chaves no console, em Chaves de API. Dê a cada uma um nome que diga onde ela vai ser usada, como “servidor de produção” ou “Claude no meu notebook”, para saber qual revogar depois.

A chave só aparece uma vez, quando você a cria. Não guardamos a chave em si, então não dá para mostrá-la de novo: se perder, crie outra. O console mostra o começo de cada chave e quando ela foi usada pela última vez, para você saber qual é qual.

Quantas chaves você pode ter ao mesmo tempo depende do plano. Chaves revogadas não contam:

PlanoChaves ao mesmo tempo
Free2
Starter5
Pro10
Scale20

Chegou ao limite? Revogue uma chave que você não usa mais ou mude para um plano maior.

Mais chaves não dão mais requisições. O limite por minuto vale para a conta toda, não para cada chave. Os números estão em Limites.

Revogue uma chave

Uma chave funciona até você revogá-la. Revogue no console quando parar de usar ou se ela puder ter vazado. Ela para de funcionar na hora, e não dá para desfazer. O que ela gastou continua na página Uso.

Para trocar uma chave sem deixar nada parado, crie a nova primeiro, passe seu código para ela e só então revogue a antiga.

Guarde as chaves em segredo

Uma chave gasta seus créditos, então trate a chave como uma senha:

  • Deixe a chave fora do código e fora do git. Leia de uma variável de ambiente, como fazem os exemplos daqui.
  • Deixe a chave fora de páginas web e de apps que você distribui, onde qualquer pessoa consegue ler. Chame a API do seu servidor. Páginas de outros sites nem conseguem chamar a API: ela só aceita chamadas de navegador vindas do gmaps.dev.
  • Use uma chave para cada lugar onde seu código roda. Assim dá para revogar uma sem parar as outras.

Quando uma chave é recusada

Uma chamada recusada não muda nada e não custa nada. A resposta diz o que deu errado:

StatusCódigoMotivoO que fazer
401UNAUTHORIZEDFalta o cabeçalho Authorization, ou ele não começa com Bearer.Mande o cabeçalho como no exemplo acima.
401INVALID_TOKENA chave está errada, foi revogada ou não é uma chave de API, como um token de login do console.Copie a chave de novo ou crie outra.
403FORBIDDENA chave está certa, mas a conta está suspensa, excluída ou com a exclusão agendada.Entre no console para cancelar a exclusão ou escreva para o suporte.
429RATE_LIMIT_EXCEEDEDChamadas demais neste minuto.Espere os segundos indicados no cabeçalho retry-after e tente de novo.

Uma chave errada e uma revogada recebem a mesma resposta.

Todo erro tem o mesmo formato. Esta é a resposta de uma chamada sem chave, e Erros lista todos os códigos:

{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Send your API key as \"Authorization: Bearer gm_…\". Create one at https://console.gmaps.dev/keys, then retry.",
    "messageKey": "serverErrors.unauthorized"
  }
}

O MCP usa a mesma chave

Um agente de IA conectado por MCP manda o mesmo cabeçalho, com a mesma chave. As chamadas dele contam nos mesmos limites e gastam os mesmos créditos que as do seu código. Listar as ferramentas não precisa de chave, então o agente vê o que pode fazer antes de ter uma.

Quando você cria uma chave, o console mostra as configurações de MCP do seu agente com a chave já dentro, prontas para colar.

Chamadas que não precisam de chave

Estas respondem sem chave:

  • GET /v1/attributions: os projetos de código aberto que usamos e as licenças deles.
  • GET /v1/exports/{id}/download: o arquivo de uma exportação. O token no link é o que abre o arquivo, então só compartilhe o link com quem deve ter o arquivo. Ele funciona por 24 horas. Veja mais em Exportações.
  • GET /openapi.json: a API inteira, descrita para ferramentas que geram clientes.
  • GET /health: se a API está no ar.

Guarde o id da requisição

Toda resposta traz o cabeçalho x-request-id. Guarde esse id junto com seus logs. Se algo der errado, mande para o suporte, e conseguimos achar exatamente aquela chamada.

Você também pode mandar um x-request-id seu, com até 64 letras, números, pontos, hifens e underscores. Usamos o seu em vez de criar outro, e assim seus logs e os nossos têm o mesmo id. Se o seu não seguir essas regras, usamos um nosso.

No SDK, um erro vindo da API traz esse id em requestId.

De cada chamada, a API registra o id, o método, o caminho, o status e quanto tempo levou. O servidor web na frente dela também registra a URL completa, com a query string, o seu IP e os cabeçalhos da requisição, menos o Authorization, e guarda tudo isso por 30 dias. Nenhum dos dois registra a sua chave nem o corpo da requisição.