Passar para o conteúdo principal

Apps de desenvolvedor, chaves de API e webhooks

Crie apps e chaves de API, teste em um sandbox, envie webhooks, instale apps de outras empresas e consulte os logs de requisições e os gastos por chave.

Escrito por Sarah Chen

As configurações de Desenvolvedor são onde você conecta o Exayard ao seu próprio código e a apps criados por outras empresas. Abra Configurações e depois Desenvolvedor. Somente os administradores da empresa veem essa opção no menu Configurações. Um membro que abrir a página pode lê-la, mas não pode alterar nada.

Apps, chaves de API, webhooks e logs estão incluídos em todos os planos, inclusive o Free. Somente o trabalho de IA é cobrado.

Apps

Um app é uma das suas integrações, como "Orçamentista Acme" ou "Sincronização noturna". Toda chave de API pertence a um app. Apps é a primeira seção da página. Todos os membros podem lê-la. Somente os administradores criam ou alteram apps.

Clique em Novo app e preencha Nome, Descrição, Página inicial, E-mail de suporte e Escopos. Os escopos são divididos entre leitura e gravação para cada recurso, como read:projects e write:estimates. Os apps não podem solicitar o escopo admin:org. Uma empresa pode ter até 25 apps.

Cada app mostra quando foi criado e o seu limite de requisições, como "Até 60 requisições por minuto por empresa e 600 no total". O menu Mais ações do app reúne:

  • Editar altera os detalhes e os escopos do app.

  • Webhook define o único endereço que recebe eventos de todas as empresas que instalaram o app.

  • Excluir app remove o app e revoga todas as chaves dele. Todas as empresas que o instalaram perdem o acesso.

Chaves de API

Uma chave de API permite que o seu próprio código chame a API do Exayard. As chaves ficam dentro de um app, em Chaves. Uma chave funciona na própria empresa do app, então não é preciso informar nenhum ID de empresa.

Para criar uma, clique em Nova chave no app. Dê um Nome à chave, como "Produção". Em Escopos, escolha Todos para todos os escopos que o app tem, ou Específicos para escolher menos. Defina uma data em Expira em, se quiser, caso a chave seja para um trabalho de curta duração. A chave funciona até o fim desse dia. Clique em Criar.

O Exayard exibe a chave completa uma única vez. Copie-a nesse momento, pois ela nunca mais será exibida. O Exayard guarda somente uma cópia embaralhada, então uma chave perdida não pode ser recuperada. Crie uma nova e revogue a antiga.

Uma chave começa com exa_live_. Uma chave criada em um sandbox começa com exa_test_. Depois de criada, a chave mostra o nome, uma prévia como exa_live_...AbCd e Último uso ou Nunca usada. Uma chave com data de expiração mostra Expira em e a data, e uma chave expirada mostra Expirada.

Um app pode ter até 25 chaves ativas. Uma chave expirada continua contando até você revogá-la. Para trocar de chave sem interrupção, crie uma segunda chave, passe os seus servidores para ela e depois revogue a primeira.

Abra o menu Ações da chave para Renomear ou Revogar a chave. A revogação não pode ser desfeita, e a chave para de funcionar em até 30 segundos.

Se uma chave aparecer em um local público, como um repositório de código público, o Exayard a revoga, envia um e-mail aos seus administradores e a mantém na lista marcada como Encontrada em local público, revogada.

Quando outra empresa instalou o seu app, a caixa de diálogo de nova chave também mostra Funciona em. Esta empresa é o padrão. Todas as empresas que o instalaram cria uma chave que o seu servidor usa em cada uma dessas empresas. Cada chamada então informa a empresa no cabeçalho Exayard-Organization-Id.

As mesmas chaves conectam as ferramentas sem código. Consulte Como conectar o Exayard ao Zapier, Como conectar o Exayard ao Make e Como conectar o Exayard ao n8n. Para assistentes de IA, consulte Conectando o Exa ao seu assistente de IA.

Chaves antigas

As chaves criadas antes de as chaves ficarem dentro de apps começam com ak_. Elas continuam funcionando, mas não é possível criar novas. Elas aparecem em Chaves antigas, no fim da página, somente enquanto existir alguma.

Todos os administradores veem ali todas as chaves da empresa, não importa quem as criou. Uma chave criada por outra pessoa mostra Criada por e o nome dela. Cada pessoa também vê as próprias chaves pessoais. Clique no ícone de lixeira para Revogar uma chave. Ela para de funcionar imediatamente.

Sandboxes

Um sandbox é uma empresa de teste vinculada à sua. Use-o para criar e testar uma integração sem mexer nos seus projetos reais. Somente os administradores veem Sandboxes.

Clique em Novo sandbox, dê um Nome a ele e clique em Criar. Uma empresa pode ter até 5 sandboxes. Abrir leva você para dentro do sandbox, onde o seletor de empresas o marca como Sandbox. Crie um app e uma chave ali, como de costume. As chaves dele começam com exa_test_. Para entrar em produção, crie o mesmo app e a mesma chave na sua empresa real e troque a chave no seu código.

Um sandbox segue o plano da sua empresa, e a sua empresa paga pelo uso dele. Ele não tem faturamento próprio nem recebe uso mensal de IA próprio. Webhooks e integrações funcionam como na sua empresa real.

Um sandbox não envia e-mails de compartilhamento de propostas nem cópias assinadas para pessoas de fora dele, e não envia mensagens de texto. Eles aparecem como "Não enviado porque esta empresa é um sandbox". Os convites para entrar no sandbox são enviados normalmente.

Levantamentos de quantitativos e leituras de arquivos em um sandbox retornam resultados copiados do nosso projeto de exemplo, sem custo. O levantamento de quantitativos, as páginas dele e o webhook de conclusão do levantamento de quantitativos são marcados como exemplos. Orçamentos, propostas, busca de elementos e chat também respondem com exemplos, sem custo.

Para remover um sandbox, clique em Excluir na linha dele e depois em Excluir sandbox. O sandbox é fechado, as chaves dele param de funcionar e os dados dele são apagados depois.

Webhooks

Um webhook faz o Exayard notificar o seu servidor quando algo acontece na sua empresa. Todos os membros podem ler a lista. Somente os administradores adicionam ou alteram webhooks.

Clique em Criar webhook, informe a URL que deve receber as entregas e, se quiser, adicione uma Descrição. Escolha quais Eventos enviar. Selecione Todos para receber todos os eventos, inclusive os novos, ou Específicos para escolher na lista. Todos os eventos e o conteúdo de cada um estão listados no catálogo de eventos de webhook.

Ao criar um webhook, o Exayard exibe o Segredo de assinatura dele uma única vez. Copie-o nesse momento, pois ele não será exibido novamente.

Abra o menu Mais ações de um webhook para o resto:

  • Editar altera a URL, a descrição e os eventos, e define o Status como Ativo ou Pausado. Um webhook pausado não recebe entregas. A caixa de diálogo também tem Rotacionar segredo. O segredo antigo para de funcionar imediatamente, então atualize o seu servidor antes.

  • Enviar evento de teste envia um evento do Tipo de evento que você escolher. A caixa de diálogo aguarda a resposta do seu servidor e mostra o resultado e o código de resposta. Um evento de teste traz "test": true.

  • Entregas lista as últimas 25 entregas, com o evento, o status, o código de resposta e o número de tentativas. Uma entrega fica como Pendente, Tentando novamente, Entregue ou Falhou. Os administradores podem clicar em Reenviar para enviar uma entrega de novo.

  • Excluir webhook encerra todas as entregas para essa URL.

Um evento de teste e um reenvio são enviados uma única vez e nunca são tentados novamente.

Como proteger as entregas de webhook

Toda entrega traz um cabeçalho Exayard-Signature no formato t=<unix>,v1=<digest>. O Exayard gera a assinatura juntando o timestamp e o corpo da requisição e assinando o resultado com HMAC-SHA256 usando o segredo do seu webhook.

Cada entrega também traz os cabeçalhos Exayard-Event-Id, Exayard-Event-Type e Exayard-Organization-Id. O corpo JSON tem um campo organizationId que identifica a empresa de onde o evento veio. O cabeçalho traz o mesmo ID, para que você possa encaminhar uma entrega antes de ler o corpo. A assinatura cobre o corpo inteiro, incluindo o organizationId.

Como cada entrega identifica a sua empresa, um único endereço receptor pode atender várias empresas. Cadastre a mesma URL em cada empresa e encaminhe cada entrega pelo organizationId. Cada webhook tem o próprio segredo, então escolha o segredo pelo Exayard-Organization-Id antes de fazer a verificação.

Para verificar uma entrega, recalcule a assinatura com o seu segredo, confirme que o timestamp está dentro de cinco minutos do horário atual e compare os digests.

Uma entrega com falha é tentada até 10 vezes no total, ao longo de cerca de 80 horas, com intervalos cada vez maiores entre as tentativas. Cada tentativa envia o mesmo corpo e o mesmo ID de evento. Um redirecionamento conta como falha.

Permitir que outras empresas instalem o seu app

O seu app funciona na sua própria empresa assim que você o cria. Cada app também tem uma parte Permitir que outras empresas instalem este app. Ela mostra se o app está Revisado, com Revisão solicitada ou Não revisado, os Endereços de login, o ID do cliente e quantas empresas podem instalá-lo.

Os administradores abrem o menu Ações de instalação para estas opções:

  • Editar endereços de login define os endereços para onde o Exayard leva as pessoas de volta quando o seu app faz o login delas com a conta do Exayard. Informe um endereço por linha, até 10. Cada um deve começar com https://, ou com http://localhost enquanto você faz testes. Na primeira vez que você salva endereços de login, o Exayard exibe o Segredo do cliente do app uma única vez.

  • Copiar link de instalação copia um link que você pode enviar a qualquer empresa. Ele abre a caixa de diálogo de instalação para o administrador dessa empresa.

  • Solicitar revisão envia o app ao suporte do Exayard para revisão.

Um app novo pode ser instalado em até 25 empresas além da sua e não aparece em Encontrar apps. As empresas em Contas para seus clientes não contam para esse limite. Depois de aprovado, o app aparece como Revisado e o limite de instalações deixa de existir. Use Mostrar em Encontrar apps para listá-lo no diretório de todas as empresas, ou Ocultar de Encontrar apps para retirá-lo. Um app Suspenso não pode chamar o Exayard até que o suporte retire a suspensão, e as instalações dele são mantidas.

Quando você remove escopos de um app, todas as instalações os perdem imediatamente. Quando você adiciona escopos, cada empresa mantém o acesso atual até que um dos administradores dela aprove os novos escopos.

Webhook do app

Abra o menu Mais ações do app e clique em Webhook. Informe a URL e clique em Criar, depois copie o Segredo de assinatura, que o Exayard exibe uma única vez. Cada empresa que instalou o app envia os eventos cobertos pelos escopos que concedeu. O seu app também recebe app.installed, app.scopes_approved e app.uninstalled quando uma empresa o instala, aprova um acesso mais amplo ou o remove. As entregas identificam a empresa e são assinadas da mesma forma que os outros webhooks.

A mesma caixa de diálogo permite Pausar e Retomar as entregas, Rotacionar segredo e Excluir webhook.

Apps conectados

Apps conectados lista os apps instalados na sua empresa. Todos os membros podem ver essa lista. Somente os administradores instalam, removem ou aprovam.

Cada linha mostra o nome do app, se ele está Revisado, a empresa que o desenvolveu, quem o instalou e quando, e os escopos concedidos.

Como instalar um app

Abra o link de instalação do app ou clique em Instalar ao lado dele em Encontrar apps. A caixa de diálogo mostra quem desenvolveu o app, se ele foi revisado e os escopos que ele solicita. Depois, escolha:

  • Empresa: qualquer empresa em que você seja administrador. Uma empresa que já tem o app aparece marcada como (instalado). Instalar novamente salva as suas novas escolhas.

  • Projetos: Todos os projetos, ou Somente estes projetos e marque aqueles que o app pode acessar, até 500. O app não consegue acessar nenhum outro projeto da empresa.

  • Limite mensal de IA: o valor máximo que o trabalho de IA do app pode custar à sua empresa em cada mês de faturamento, na sua moeda de faturamento. Deixe em branco para Sem limite.

Clique em Instalar. Se o app fizer o seu login, o Exayard leva você em seguida para concluir o login no app. Se você for membro, mas não administrador, a caixa de diálogo informa qual administrador da empresa pode instalá-lo. Clique em Copiar link para enviá-lo a essa pessoa.

Para alterar os projetos depois, abra o link de instalação novamente e instale com a nova escolha.

Como aprovar mais acesso

Quando um app solicita mais escopos, a linha dele mostra Solicita mais acesso com os novos escopos. Um administrador clica em Aprovar para concedê-los. Até lá, o app mantém o acesso que já tinha.

Como remover um app

Abra o menu Mais ações do app, clique em Remover e confirme. O app perde o acesso à sua empresa imediatamente e os webhooks dele param. O trabalho de IA que ele já tinha iniciado ainda é concluído.

Encontrar apps

Encontrar apps aparece dentro de Apps conectados. A seção lista os apps revisados que os desenvolvedores escolheram listar. Um app que a sua empresa já tem mostra Instalado. Clique em Instalar em qualquer outro app para abrir a caixa de diálogo de instalação.

Suas conexões pessoais

Suas conexões pessoais lista as ferramentas de IA e outros apps que você conectou à sua própria conta do Exayard, como o ChatGPT ou o Claude. A seção aparece no topo de Apps conectados, e somente você vê as suas. Uma conexão pessoal age como você, então pode acessar tudo o que você pode.

Cada conexão mostra quando foi usada pela primeira e pela última vez, e as empresas em que foi usada. Para interromper uma, abra o menu Mais ações dela, clique em Remover e confirme. A próxima chamada dela é recusada. A conexão continua na lista marcada como Removido, e Permitir novamente libera o acesso de volta. Para conectar uma nova ferramenta, consulte Conectando o Exa ao seu assistente de IA.

Contas para seus clientes

O seu app pode criar empresas no Exayard pela API para clientes que usam o Exayard somente por meio do seu produto. A sua empresa é dona dessas empresas e paga pelo trabalho de IA executado nelas. Elas não têm membros próprios, e os seus apps são instalados nelas automaticamente.

Contas para seus clientes lista essas empresas para os administradores, com o Nome de cada empresa e a data na coluna Criada em. Clique em Encerrar e confirme para fechar uma delas. Todos os apps nela perdem o acesso.

Primeiros passos

O cartão Início rápido traz um prompt pronto para um editor com IA, como o Claude ou o Cursor. Clique em Copiar prompt e cole no seu editor. O prompt inclui a URL base da API, o formato de autenticação, os escopos e o esquema de assinatura dos webhooks, para que a IA possa montar uma integração funcional e pedir a você os detalhes de que precisar. Somente os administradores veem esse cartão, porque ele exige uma chave de API.

O cartão Documentação traz links para a documentação completa para desenvolvedores, com Abrir documentação, e para a Especificação OpenAPI, que descreve todas as rotas e esquemas. Os administradores também veem Conectar ao Claude ou ao Cursor, que abre a configuração para conectar assistentes de IA ao Exayard.

Logs

Logs mostra as requisições feitas à API, das mais recentes para as mais antigas. Cada linha mostra Método, Caminho, Status, Horário e Latência. Clique em Carregar mais, no fim, para ver requisições mais antigas.

Os administradores veem todas as requisições. Os membros veem somente as requisições que não vieram por meio de um app.

Os administradores podem filtrar por App e depois por uma das chaves desse app. Qualquer pessoa pode digitar um Usuário final para ver somente as requisições desse cliente. Um usuário final é o seu próprio ID para um dos seus clientes. O seu código o envia com cada requisição no cabeçalho Exayard-End-User. Nunca use um endereço de e-mail como ID.

Selecione uma linha para ver todos os detalhes, incluindo o ID da solicitação, o app e o usuário final, o Corpo da solicitação e o Corpo da resposta. Use os logs para confirmar que uma chamada funcionou ou para descobrir por que uma integração está falhando.

Gastos por chave e por usuário final

Os administradores veem quanto cada app gastou neste mês em Gastos por app, em Configurações e depois Uso. Os seus próprios apps também aparecem ali. Em cada app, Por chave mostra quanto cada chave gastou, e Principais usuários finais mostra os cinco usuários finais que mais gastaram. Os gastos que não estão ligados a uma das chaves do app aparecem como Outro.

Limite mensal de IA

O limite mensal de IA de um app é o valor máximo que o trabalho de IA dele pode custar à sua empresa em cada mês de faturamento. Para defini-lo, abra o menu Mais ações do app em Gastos por app e clique em Definir limite mensal de IA. Informe um valor na sua moeda de faturamento e clique em Salvar. Salve o campo vazio para remover o limite.

Quando o app atinge o limite, o trabalho de IA dele é recusado pelo resto do mês de faturamento, mesmo que a sua empresa ainda tenha uso de IA disponível. Os limites da própria empresa continuam valendo. O trabalho de IA que as pessoas iniciam por conta própria nunca conta para o limite de um app.

Respondeu à sua pergunta?