Como usar a API do GoHighLevel para criar integrações personalizadas

Intermediário7 min de leituraAtualizado em 04/08/2026

A API do GoHighLevel permite conectar a plataforma a sistemas externos, automatizar fluxos de dados e construir integrações sob medida para necessidades que os conectores nativos não cobrem. Este guia explica como começar, quais pontos de atenção considerar e como evitar os erros mais comuns.

O que é a API do GoHighLevel e quando usá-la

O GoHighLevel disponibiliza uma API REST pública que permite ler e escrever dados de contatos, oportunidades, pipelines, calendários, conversas e outros recursos da plataforma. A documentação oficial fica em developers.gohighlevel.com e é atualizada com frequência — vale sempre consultar diretamente o portal antes de iniciar qualquer projeto.

Usar a API faz sentido quando:

  • Você precisa sincronizar o GoHighLevel com um sistema legado (ERP, banco de dados próprio, plataforma de e-commerce).
  • As automações nativas ou os Zaps/webhooks disponíveis não cobrem a lógica de negócio necessária.
  • Você quer construir um painel customizado consumindo dados da plataforma em tempo real.

A API não é a melhor escolha se a integração já existe de forma nativa ou via Zapier/Make com custo e complexidade menores. Avalie o custo de desenvolvimento antes de optar pela rota de código.

Autenticação: chaves de API e OAuth 2.0

O GoHighLevel suporta dois métodos de autenticação, e a escolha impacta diretamente a arquitetura da integração.

Chave de API (API Key)

Indicada para integrações internas, scripts de automação ou projetos de agência em que você controla a sub-conta. A chave é gerada dentro da plataforma e enviada no cabeçalho de cada requisição.

  1. Acesse Configurações na sub-conta desejada.
  2. No menu lateral, clique em Integrações e depois em API.
  3. Copie a chave exibida ou gere uma nova clicando em Criar Chave de API.
  4. Inclua a chave no cabeçalho HTTP de todas as requisições: Authorization: Bearer SUA_CHAVE_AQUI.

Atenção: trate a chave de API como uma senha. Não a exponha em repositórios públicos nem em código front-end executado no navegador.

OAuth 2.0

Indicado para aplicações SaaS ou Marketplace Apps que precisam acessar múltiplas contas de clientes sem armazenar credenciais manualmente. O fluxo segue o padrão Authorization Code:

  1. Registre o aplicativo no Developer Portal do GoHighLevel.
  2. Defina o redirect_uri e os escopos necessários (ex.: contacts.readonly, opportunities.write).
  3. Redirecione o usuário para a URL de autorização gerada pela plataforma.
  4. Após o consentimento, troque o code recebido por um access_token e um refresh_token.
  5. Use o access_token nas requisições e renove-o antes do vencimento com o refresh_token.

A disponibilidade de certos escopos pode variar conforme o plano contratado — verifique na documentação oficial quais escopos estão liberados para o seu nível de acesso.

Fazendo sua primeira chamada à API

Com a autenticação configurada, uma boa primeira chamada é listar os contatos de uma sub-conta. Isso confirma que as credenciais estão corretas e que o endpoint está acessível.

  1. Abra uma ferramenta como Postman, Insomnia ou use curl no terminal.
  2. Configure o método como GET e a URL: https://services.leadconnectorhq.com/contacts/?locationId=SEU_LOCATION_ID.
  3. No cabeçalho, adicione:
  • Authorization: Bearer SUA_CHAVE_OU_ACCESS_TOKEN
  • Version: 2021-07-28 (verifique na documentação a versão mais recente recomendada)
  1. Envie a requisição e verifique se o corpo da resposta retorna a lista de contatos em formato JSON.
  2. Caso retorne erro 401, a autenticação está incorreta. Erro 403 indica falta de permissão no escopo. Erro 422 costuma indicar parâmetros mal formatados.

Com a primeira chamada funcionando, você pode avançar para endpoints de escrita, como POST /contacts para criar contatos ou PUT /opportunities/{id} para atualizar oportunidades.

Boas práticas para integrações robustas

Uma integração que funciona em testes pode falhar em produção se não considerar volume, erros e manutenção. Algumas práticas fundamentais:

  • Respeite os limites de taxa (rate limits): a API impõe limites de requisições por segundo e por minuto. Implemente filas e retentativas com backoff exponencial para não ser bloqueado.
  • Registre logs detalhados: grave o corpo da requisição, o código de resposta e o timestamp de cada chamada. Isso acelera o diagnóstico quando algo der errado.
  • Use webhooks para eventos em tempo real: em vez de fazer polling constante à API, configure webhooks para receber notificações quando um contato for criado, uma oportunidade mudar de estágio ou uma conversa chegar. Isso reduz o consumo de cota e a latência.
  • Versionamento: a plataforma pode deprecar endpoints. Monitore os changelogs do Developer Portal e defina um processo de atualização periódica da integração.
  • Ambientes separados: se possível, use uma sub-conta de testes (sandbox) durante o desenvolvimento para não interferir em dados reais de clientes.

Erros comuns e como resolvê-los

Mesmo seguindo a documentação, alguns problemas aparecem com frequência. Veja os mais relatados e como abordá-los.

Erro 401 — Unauthorized A chave de API ou o token OAuth está ausente, expirado ou incorreto. Verifique se o cabeçalho Authorization está no formato Bearer TOKEN (com espaço, sem aspas extras) e se o token OAuth ainda é válido.

Erro 404 — Not Found O locationId (identificador da sub-conta) ou o ID do recurso está errado. Confirme os IDs diretamente na URL da sub-conta dentro da plataforma ou via endpoint GET /locations.

Erro 429 — Too Many Requests Você atingiu o rate limit. Implemente um mecanismo de espera antes de reenviar a requisição. O cabeçalho de resposta costuma indicar quando a janela de limite é renovada.

Campos obrigatórios faltando (422) Alguns endpoints exigem campos específicos que não são óbvios na documentação. Leia a seção de Request Body Schema com atenção e teste com payloads mínimos antes de adicionar campos opcionais.

Dados desatualizados após escrita Algumas operações de escrita têm latência de propagação. Se você escreve um dado e imediatamente lê o mesmo recurso, pode receber o valor anterior. Adicione um intervalo pequeno ou consuma o webhook de confirmação antes de fazer a leitura subsequente.

Webhooks não chegando Verifique se a URL de destino é pública, aceita POST e retorna status 200 rapidamente. Respostas lentas ou com erro fazem a plataforma parar de tentar reenviar após algumas tentativas.


A API do GoHighLevel é uma ferramenta poderosa para quem precisa de integrações além do que os conectores nativos oferecem, mas exige conhecimento técnico de HTTP, autenticação e boas práticas de desenvolvimento. Se o seu caso de uso é simples, avalie primeiro as opções nativas antes de investir em desenvolvimento customizado.

Ainda com dúvida?

Se este passo a passo não resolveu o seu caso, descreva o cenário exato. Cada dúvida recebida vira um novo tutorial nesta central.

Enviar minha dúvida