Feito para inspirar confiançaCriptografia TLSEm conformidade com o GDPRGoogle CloudPagamentos segurosVisão geral de segurança
G2

Avaliado com 5,0 em 5 no G2

Ler as avaliações no G2
The page-level analytics are the best part because they show real engagement instead of just basic opens.
Verified User in Computer Software
What I like most about the product is how easy it is to use, especially when it comes to listing all my links and embedding demos in one place for leads and prospects.
Jerome K.Founder
Responsiveness, configurability and development velocity.
Suman K.Co-Founder & CEO

Referência da API

O HummingDeck expõe uma API REST para parceiros de integração e plataformas de automação. Os endpoints autenticam-se com um Bearer token e devolvem respostas JSON.

URL basehttps://app.hummingdeck.com/api/v1
OpenAPI Spec

Autenticação

Cada pedido à API leva um Bearer token no cabeçalho Authorization. São aceites dois tipos de credencial, e comportam-se de forma diferente.

Método

Bearer token

Formato do cabeçalho

Authorization: Bearer {access_token}

Tipos de credencial

Token de API do espaço de trabalho

Authorization: Bearer hd_api_...

O acesso à API REST está disponível mediante pedido no plano Business e é ativado por espaço de trabalho após análise. Depois, os proprietários e administradores criam chaves de API com nomes distintos em Definições do espaço, Integrações, HummingDeck API. Selecione apenas as permissões necessárias para cada integração. A chave é mostrada uma vez ao ser criada e não pode ser recuperada depois. Expira após um ano e permanece ligada ao respetivo espaço, pelo que um pedido não pode escolher nem alterar o espaço.

Um espaço de trabalho pode ter até 20 chaves de API ativas. Substituir uma chave invalida imediatamente apenas o segredo anterior dessa chave; as restantes continuam a funcionar. Os proprietários e administradores podem desativar uma chave ou todas as chaves a qualquer momento. A revogação desse segredo é permanente.

Uma chave de API do espaço de trabalho só pode chamar as operações permitidas pelas permissões selecionadas. Os endpoints de subscrição de webhooks não estão disponíveis para estas chaves.

Zapier OAuth

Authorization: Bearer {access_token}

Emitido através do fluxo de autorização OAuth quando um espaço de trabalho liga a integração Zapier. Os tokens de acesso expiram ao fim de 30 dias. Use o token de atualização, válido 90 dias, para obter um novo sem voltar a autorizar.

É a única credencial que pode criar ou eliminar subscrições de webhooks.

Permissões

Escolha pelo menos uma permissão. As permissões de escrita também incluem o acesso de leitura correspondente. Pode alterar as permissões quando substituir a chave.

rooms:read

Ver salas, separadores, itens, links e etiquetas.

rooms:write

Criar e gerir salas, separadores, itens, links e etiquetas.

plan:read

Ver fases e tarefas do plano de ação mútuo.

plan:write

Criar e gerir fases e tarefas do plano de ação mútuo.

analytics:read

Ver análises de interação, atividade e emails recolhidos.

crm:read

Procurar empresas e contactos do espaço de trabalho.

crm:write

Criar ou atualizar empresas, contactos e públicos dos links.

documents:read

Procurar documentos e ver os respetivos metadados.

documents:write

Carregar documentos e anexar documentos ou URLs a salas.

Os rótulos de permissão nas linhas dos endpoints aplicam-se às chaves de API do espaço de trabalho. As permissões obrigatórias aplicam-se sempre, as adicionais são necessárias em conjunto e as condicionais apenas quando o pedido usa os filtros ou campos relacionados. GET /me não requer permissão. O Zapier OAuth usa o acesso fixo da integração.

Quando um pedido devolve 401

Um pedido devolve 401 quando a chave é desconhecida ou inválida, expirou, foi desativada, pertence a um espaço com o acesso à API desativado ou foi emitida por alguém que já não é proprietário nem administrador desse espaço.

Teste sua conexão

Verifique se seu token é válido e consulte o perfil do usuário autenticado.

GET/me

Retorna o nome, o e-mail e as informações de equipe do usuário atual.

Nenhuma permissão da chave de API necessária

Documentos

Envie, pesquise e gerencie documentos (PDFs, apresentações, propostas e outros arquivos).

POST/decks

Enviar um novo documento. Envie como multipart/form-data com um campo file (PDF, PPTX, DOCX, XLSX, XLS, HTML) e um campo title. O limite de upload pela API é de 30 MB. O processamento continua após o upload; a resposta inclui processingStatus.

Obrigatória:documents:write
GET/decks

Lista até 20 documentos, dos mais recentes para os mais antigos. Use o parâmetro de consulta opcional title para filtrar por parte do título sem diferenciar maiúsculas de minúsculas.

Obrigatória:documents:read

GET /decks Campos da resposta

FieldTypeDescription
idstringID do documento
titlestringTítulo do documento
fileTypestringTipo MIME do documento
pageCountinteger | nullNúmero de páginas
thumbnailUrlstring | nullURL da imagem em miniatura
processingStatusstringpending, processing, completed ou failed. Um documento pode entrar em uma sala enquanto é processado; envie um link para ele quando o status for completed.
processingErrorCodestring | nullMotivo da falha no processamento, quando houver
createdAtstringCarimbo de data/hora ISO 8601

POST /decks Campos da resposta

FieldTypeDescription
idstringID do documento
titlestringTítulo do documento
fileTypestringTipo MIME do documento
processingStatusstringpending, processing, completed ou failed. Um documento pode entrar em uma sala enquanto é processado; envie um link para ele quando o status for completed.
processingErrorCodestring | nullMotivo da falha no processamento, quando houver

Links de compartilhamento

Crie links rastreáveis para documentos. Um link pessoal pode localizar ou criar seu contato e sua empresa na mesma requisição.

POST/shares

Cria um link pessoal ou anônimo. Links pessoais podem localizar ou criar registros de conta automaticamente.

Obrigatória:documents:write
Condicional:crm:write(Required for a non-anonymous share when the request supplies contactId, companyId, companyName, recipientEmail, or recipientName.)

Campos da requisição

FieldTypeDescription
deckIdstringobrigatórioID do documento a ser compartilhado
recipientNamestringopcionalNome do destinatário para um link pessoal
recipientEmailstringopcionalE-mail do destinatário para um link pessoal
contactIdUUIDopcionalContato existente no espaço de trabalho autenticado
companyIdUUIDopcionalEmpresa existente. Não pode ser usado com companyName
companyNamestringopcionalEmpresa a localizar pelo nome ou criar
companyDomainstringopcionalDomínio armazenado para enriquecimento quando companyName é informado. Nunca seleciona uma empresa
typestringopcionalO padrão é personal com campos de destinatário ou conta, caso contrário anonymous

Crie o link e os registros da conta juntos

Envie os dados do destinatário e da empresa diretamente para /shares. O HummingDeck localiza registros correspondentes, cria os que faltam, associa-os ao link e informa o que foi criado. Defina type explicitamente como anonymous para não criar registros da conta.

{
  "deckId": "8f3d41de-2bb8-4d8e-80de-6cd2072ffab1",
  "recipientName": "Ada Lovelace",
  "recipientEmail": "ada@analytical.example",
  "companyName": "Analytical Engines",
  "companyDomain": "analytical.example"
}

Campos da resposta

FieldTypeDescription
idstringID do compartilhamento
slugstringSlug do compartilhamento (usado na URL)
shareUrlstringURL rastreável completa
typestring"personal" ou "anonymous"
recipientNamestringNome do destinatário (se pessoal)
recipientEmailstringE-mail do destinatário (se pessoal)
contactobject | nullContato associado ao link pessoal
contactCreatedbooleantrue se esta requisição criou o contato
companyobject | nullEmpresa associada ao link pessoal
companyCreatedbooleantrue se esta requisição criou a empresa
createdAtstringCarimbo de data/hora ISO 8601

Salas

Crie salas de negociação com seus documentos e o link de público em uma única chamada, encontre salas, altere as configurações, arquive e restaure salas, e organize suas abas e itens. Disponível apenas com tokens de API do espaço de trabalho; as credenciais OAuth do Zapier são rejeitadas.

GET/rooms

Lista as salas, das mais recentes para as mais antigas. Filtre com search, status (active, archived ou all) e companyId. Cada página traz 25 salas (até 100 com limit); passe o nextCursor de uma página como cursor para obter a próxima.

Obrigatória:rooms:read
Condicional:crm:read(Required when the companyId filter is present.)
POST/rooms

Cria uma sala com seus documentos e o primeiro link de público em uma única chamada.

Obrigatória:rooms:write
Condicional:documents:write(Required when documentIds contains one or more document IDs.)crm:write(Required when the request supplies contactId, recipientName, recipientEmail, companyId, companyName, or when either primaryLink.allowedEmails or primaryLink.allowedDomains is non-empty.)
GET/rooms/{roomId}

Retorna as configurações da sala, suas abas e itens na ordem de exibição e a quantidade de links.

Obrigatória:rooms:read
PATCH/rooms/{roomId}

Altera o nome, a mensagem de boas-vindas, o ponto de contato, a empresa ou o contato.

Obrigatória:rooms:write
Condicional:crm:write(Required when companyId or contactId is present, including null to detach the association.)
POST/rooms/{roomId}/archive

Arquiva a sala. Os links dela param de funcionar.

Obrigatória:rooms:write
POST/rooms/{roomId}/restore

Restaura uma sala arquivada. Os links voltam a funcionar.

Obrigatória:rooms:write
POST/rooms/{roomId}/tabs

Adiciona uma aba em uma posição escolhida ou no final.

Obrigatória:rooms:write
PATCH/rooms/{roomId}/tabs/{tabId}

Renomeia uma aba.

Obrigatória:rooms:write
PUT/rooms/{roomId}/tabs/order

Coloca todas as abas em uma nova ordem.

Obrigatória:rooms:write
DELETE/rooms/{roomId}/tabs/{tabId}

Remove uma aba que não mostra itens.

Obrigatória:rooms:write
POST/rooms/{roomId}/items

Adiciona a uma aba um documento, uma URL, um conteúdo incorporado ou um divisor de seção.

Obrigatória:rooms:write
Condicional:documents:write(Required when type is document or url.)
POST/rooms/{roomId}/items/{itemId}/move

Move um item para o final de outra aba.

Obrigatória:rooms:write
PUT/rooms/{roomId}/items/order

Coloca os itens de uma aba em uma nova ordem.

Obrigatória:rooms:write
DELETE/rooms/{roomId}/items/{itemId}

Tira um item da sala. Ele continua na sua biblioteca.

Obrigatória:rooms:write
GET/rooms/{roomId}/links

Lista os links de público da sala, do mais recente, com os convidados ativos de cada link restrito.

Obrigatória:rooms:read
POST/rooms/{roomId}/links

Cria um link aberto com atribuição para uma sala ativa.

Obrigatória:rooms:write
Também obrigatória:crm:write
PATCH/rooms/{roomId}/links/{linkId}

Liga ou desliga um link, define ou limpa a validade, ou substitui a lista de acesso.

Obrigatória:rooms:write
Condicional:crm:write(Required when allowedEmails or allowedDomains is present, including an empty array that clears the audience.)
GET/rooms/{roomId}/action-plan

Retorna o plano de ação da sala: configurações, fases, tarefas (inclusive internas), dependências e progresso.

Obrigatória:plan:read
PATCH/rooms/{roomId}/action-plan

Altera as configurações do plano, inclusive se quem abre a sala pode marcar as próprias tarefas.

Obrigatória:plan:write
POST/rooms/{roomId}/action-plan/phases

Adiciona um marco. Sem color, as fases alternam turquesa, pêssego e azul por ordem.

Obrigatória:plan:write
PATCH/rooms/{roomId}/action-plan/phases/{phaseId}

Renomeia uma fase, move-a, muda a data ou define a cor. Enviar color null restaura a rotação.

Obrigatória:plan:write
DELETE/rooms/{roomId}/action-plan/phases/{phaseId}

Remove uma fase. mode é obrigatório: delete_tasks ou move_to_unphased, para que nenhuma tarefa suma por acidente.

Obrigatória:plan:write
POST/rooms/{roomId}/action-plan/tasks

Adiciona uma tarefa. assignee é null, apenas um side para a empresa responsável, ou um side com email para uma pessoa específica.

Obrigatória:plan:write
PATCH/rooms/{roomId}/action-plan/tasks/{taskId}

Atualiza uma tarefa. Omitir assignee mantém a responsabilidade; enviar null a remove.

Obrigatória:plan:write
DELETE/rooms/{roomId}/action-plan/tasks/{taskId}

Remove uma tarefa. As subtarefas vão junto.

Obrigatória:plan:write
POST/rooms/{roomId}/action-plan/tasks/{taskId}/status

Conclui ou reabre uma tarefa em nome do espaço de trabalho. Uma tarefa com dependência inacabada retorna 409 TASK_BLOCKED.

Obrigatória:plan:write
GET/rooms/{roomId}/analytics

Visitas à sala, visitantes únicos, tempo médio, documentos abertos do total e conclusão média. Sem bots.

Obrigatória:analytics:read
GET/rooms/{roomId}/activity

O que aconteceu na sala, do mais recente. As entradas de conversa identificam quem escreveu e nunca trazem a mensagem. Restrinja com since.

Obrigatória:analytics:read
GET/rooms/{roomId}/captured-emails

Endereços que a sala coletou. source é verify quando a pessoa confirmou com um link de uso único, e ask quando apenas digitou.

Obrigatória:analytics:read
GET/room-views

Entradas em salas em todo o espaço de trabalho, do mais recente. Não há outra fonte para saber que alguém entrou; /views cobre apenas visualizações de documentos.

Obrigatória:analytics:read
GET/room-labels

Lista as etiquetas de sala do espaço de trabalho com quantas salas usam cada uma. Aqui você encontra os IDs antes de etiquetar uma sala.

Obrigatória:rooms:read
POST/room-labels

Cria uma etiqueta. Os nomes são únicos por espaço de trabalho, sem diferenciar maiúsculas; color é um valor hexadecimal #RRGGBB.

Obrigatória:rooms:write
PATCH/room-labels/{labelId}

Renomeia uma etiqueta, muda sua cor ou edita sua descrição.

Obrigatória:rooms:write
DELETE/room-labels/{labelId}

Exclui uma etiqueta e suas atribuições. As salas que a tinham não mudam; a resposta informa quantas a perderam.

Obrigatória:rooms:write

Criar uma sala em uma única chamada

Envie cada arquivo com POST /decks e depois crie a sala para a empresa do destinatário com um link restrito para as pessoas que devem vê-la. A empresa, os contatos, a sala, os documentos e o link são criados juntos: se a chamada for recusada, nada é criado. Os documentos podem entrar na sala enquanto ainda estão sendo processados. Os itens da sala informam processingStatus, então envie o link quando todos os documentos estiverem como completed.

{
  "name": "Acme renewal",
  "companyName": "Acme Inc",
  "recipientName": "Pat Buyer",
  "recipientEmail": "pat@acme.example",
  "documentIds": [
    "{documentId}",
    "{documentId}"
  ],
  "primaryLink": {
    "accessMode": "verified-allowlist",
    "allowedEmails": [
      "pat@acme.example",
      {
        "email": "cfo@acme.example",
        "name": "Sam Rivera"
      }
    ],
    "allowedDomains": [
      "acme.example"
    ]
  }
}

accessMode é open (qualquer pessoa com a URL), verify-any (os visitantes confirmam o e-mail com um link de uso único) ou verified-allowlist (somente os endereços em allowedEmails e qualquer pessoa dos domínios em allowedDomains). A API não adiciona ninguém a um link restrito por conta própria, então inclua o seu endereço se quiser visualizar a sala antes. Uma opção que o seu plano não inclui retorna 403 FEATURE_NOT_AVAILABLE, e um campo desconhecido retorna 400, para que uma sala nunca se abra para um público diferente do que você pediu.

Organizar abas e itens

Parta da sala como ela está agora: ao ler uma sala, você recebe as abas e os itens na ordem de exibição, e cada item informa sua aba e sua posição nela, contando a partir de 0. Adicione abas e itens em uma posição, mova itens entre abas e envie a nova ordem completa de uma aba. Uma ordem precisa listar cada item da aba exatamente uma vez, então leia a sala de novo se outra alteração tiver acontecido nesse meio-tempo. Uma aba pode ser removida quando não mostra mais nenhum item.

{
  "type": "section",
  "label": "Commercials",
  "tabId": "{tabId}",
  "position": 0
}

Provedores de incorporação suportados

Os embeds aceitam um link de compartilhamento ou de incorporação e o normalizam para a forma de incorporação do provedor. Qualquer coisa fora desta lista retorna 400 EMBED_PROVIDER_NOT_SUPPORTED.

FieldTypeDescription
VídeoLoom, YouTube, Vimeo, Wistia, Vidyard
AgendamentoCalendly, Cal.com, SavvyCal, Google Calendar
FormuláriosTypeform, Tally, Google Forms, Jotform, Fillout
DesignFigma, Miro, Canva, Whimsical
Documentos e tabelasGoogle Docs, Google Sheets, Notion, Coda, Airtable
ApresentaçõesGoogle Slides, Pitch, Gamma, Guideflow, Flipsnack, Prezi
ÁudioSpotify, SoundCloud

Adicionar outro link de público

Cada sala já tem um link criado por POST /rooms; adicione mais para públicos que precisam de outra atribuição ou outro acesso. Informe pelo menos um entre recipientName, recipientEmail, contactId, companyId ou companyName. accessMode aceita os mesmos valores open, verify-any ou verified-allowlist de primaryLink, com os mesmos campos (requireEmail, allowedEmails, allowedDomains, label, expiresAt, allowDownloads). Uma chamada recusada, inclusive por limite do plano, não deixa nenhum link, empresa ou contato.

{
  "companyName": "Analytical Engines",
  "accessMode": "verified-allowlist",
  "allowedEmails": [
    {
      "email": "cfo@analytical.example",
      "name": "Sam Rivera"
    }
  ]
}

Atualizar um link

Quatro campos: isActive, expiresAt, allowedEmails e allowedDomains (os dois últimos apenas em links verified-allowlist). accessMode e o slug nunca mudam; crie um link novo. Reativar um link verifica de novo o limite de links ativos do plano.

{
  "isActive": false
}

Montar o plano de ação

Cada sala tem exatamente um plano, por isso ele fica sob a sala sem identificador próprio. A maioria das tarefas pertence a uma empresa e não a uma pessoa: envie apenas um side e o plano o lê como a empresa, que é o que você quer quando não sabe quem fará o trabalho do outro lado. Acrescente um email só quando souber quem é a pessoa. Uma tarefa interna nunca aparece na sala, então não pode pertencer ao destinatário.

{
  "title": "Sign the NDA",
  "assignee": {
    "side": "buyer"
  },
  "dueDate": "2026-10-02"
}

recipientCompletionEnabled no plano decide se quem abre a sala pode marcar as tarefas do próprio lado. O padrão é true e é a única barreira: a API nunca pede o endereço de um destinatário para concluir uma tarefa. Quem marcou cada uma fica registrado com a certeza que o modo de acesso da sala permite.

Etiquetar salas

As etiquetas valem para todo o espaço de trabalho: crie uma vez e reutilize. Envie labelIds em POST /rooms para etiquetar uma sala já na criação, ou em PATCH /rooms/{roomId} para substituir o conjunto inteiro; um array vazio remove todas as etiquetas e omitir o campo as mantém. Uma sala carrega no máximo cinco, o que é estrutural e não uma configuração. Ler uma sala retorna suas etiquetas.

{
  "labelIds": [
    "{labelId}"
  ]
}

Saber o que aconteceu

Consulte /room-views para ver as entradas em todo o espaço de trabalho e depois leia a analítica, a atividade e os endereços recolhidos de uma sala. Passe o nextCursor de uma página como cursor para continuar; um cursor que esta API não emitiu devolve 400 em vez de recomeçar, para que a consulta não repita trabalho. Use since para restringir a janela de atividade e cursor para percorrer as páginas. /room-views é uma janela, não um arquivo: sem since recebe os últimos 30 dias, e pedidos com mais de 90 dias são recusados. A janela aplicada volta como since; envie-a com cursor para continuar a percorrer o mesmo conjunto.

Empresas e contatos

Localize registros de conta existentes ou crie novos com correspondência determinística. Nomes de empresas e e-mails de contatos são comparados sem diferenciar maiúsculas de minúsculas.

GET/companies?name={name}&domain={domain}

Pesquisa empresas pelo nome exato e por um domínio opcional.

Obrigatória:crm:read
POST/companies

Localiza uma empresa pelo nome sem diferenciar maiúsculas de minúsculas ou a cria. Um domínio explícito apenas enriquece o registro.

Obrigatória:crm:write
GET/contacts?email={query}

Pesquisa contatos por endereço de e-mail e retorna as correspondências com a empresa associada.

Obrigatória:crm:read
POST/contacts

Localiza ou cria um contato pelo e-mail e o associa opcionalmente a uma empresa.

Obrigatória:crm:write

Requisição POST /companies

FieldTypeDescription
namestringobrigatórioNome da empresa
domainstringopcionalDomínio usado para enriquecer a empresa. Nunca é usado para localizar uma empresa existente

Requisição POST /contacts

FieldTypeDescription
namestringcondicionalNome completo. Obrigatório se firstName não for informado
firstNamestringcondicionalNome. Obrigatório se name não for informado
lastNamestringopcionalSobrenome
emailstringobrigatórioEndereço de e-mail usado para correspondência única
titlestringopcionalCargo
companyIdUUIDopcionalEmpresa existente no espaço de trabalho autenticado
companyNamestringopcionalNome da empresa a localizar ou criar
companyDomainstringopcionalDomínio opcional de enriquecimento usado com companyName. Não é uma chave de correspondência

Resposta da empresa

FieldTypeDescription
company.idUUIDID da empresa
company.namestringNome da empresa
company.domainstring | nullDomínio normalizado da empresa
createdbooleantrue se a requisição POST criou a empresa

Resposta do contato

FieldTypeDescription
contact.idUUIDID do contato
contact.firstNamestringNome
contact.lastNamestringSobrenome
contact.emailstringEndereço de e-mail normalizado
contact.titlestring | nullCargo
contact.companyIdUUID | nullID da empresa associada
contact.companyNamestring | nullNome da empresa associada
createdbooleantrue se a requisição POST criou o contato
companyobject | nullEmpresa resolvida, quando disponível
companyCreatedbooleantrue se esta requisição criou a empresa

Webhooks

Assine eventos em tempo real por meio de REST Hooks. Quando um evento ocorre, o HummingDeck envia uma requisição POST para sua URL HTTPS registrada com o payload do evento. As entregas com falha são repetidas até 3 vezes (com intervalos de 1 s, 5 s e 30 s). As subscrições de webhooks são geridas pela integração Zapier e não estão disponíveis para tokens de API do espaço de trabalho.

POST/hooks

Assinar um evento. Requer uma URL HTTPS de destino e um tipo de evento. Retorna um ID de assinatura.

Apenas Zapier OAuth

DELETE/hooks/{id}

Cancelar a assinatura de um evento pelo ID de assinatura.

Apenas Zapier OAuth

Tipos de eventos

EventDescription
view.createdUma pessoa real visualizou um documento compartilhado. O tráfego de bots (scanners de segurança de e-mail, crawlers) é filtrado automaticamente.
decision.madeUm prospect respondeu a uma proposta: aceita, recusada ou com alterações solicitadas.
email_capturedUm visitante inseriu seu endereço de e-mail para acessar conteúdo restrito.

Exemplos de payloads

view.created

{
  "event": "view.created",
  "data": {
    "id": "view_abc123",
    "deck_id": "deck_xyz789",
    "deck_title": "Q4 Enterprise Proposal",
    "viewer_email": "sarah@acme.com",
    "viewer_name": "Sarah Wood",
    "viewer_company": "Acme Corp",
    "location": "San Francisco, CA",
    "device": "Desktop",
    "browser": "Chrome",
    "pages_viewed": 8,
    "total_pages": 12,
    "duration_seconds": 272,
    "completion_percent": 67,
    "created_at": "2026-03-29T14:32:00Z"
  }
}

decision.made

{
  "event": "decision.made",
  "data": {
    "share_slug": "proposal-2024",
    "decision": "accepted",
    "deck_title": "Q4 Enterprise Proposal",
    "viewer_email": "sarah@acme.com",
    "viewer_name": "Sarah Wood",
    "decision_note": "Approved pending final review",
    "decided_at": "2026-03-29T15:30:00Z"
  }
}

email_captured

{
  "event": "email_captured",
  "data": {
    "email": "prospect@company.com",
    "share_slug": "proposal-2024",
    "deck_title": "Q4 Enterprise Proposal",
    "view_id": "view_xyz789",
    "captured_at": "2026-03-29T14:35:00Z"
  }
}

Visualizações e eventos

Endpoints de polling para recuperar dados de engajamento recentes. Eles retornam os mesmos dados que os webhooks entregam em tempo real. Use-os para preenchimento retroativo, testes ou como alternativa.

GET/views

Listar as 100 visualizações de documentos mais recentes. Sessões de bots são excluídas.

Obrigatória:analytics:read
GET/decisions

Listar decisões recentes sobre propostas (aceitas, recusadas, alterações solicitadas).

Obrigatória:analytics:read
GET/emails

Listar capturas de e-mail recentes de conteúdo restrito.

Obrigatória:analytics:read

Tratamento de erros

Cada erro retorna um objeto JSON com um campo error que descreve o que deu errado. A maioria das respostas também inclui um campo code para tratamento programático, como PLAN_LIMIT_REACHED, FEATURE_NOT_AVAILABLE, ROOM_NOT_ACTIVE, TAB_NOT_EMPTY, INVALID_FORMAT ou FILE_TOO_LARGE. Os códigos de status HTTP seguem as convenções habituais.

StatusMeaning
400Requisição inválida: parâmetros ausentes ou inválidos
401Não autorizado: Bearer token inválido ou expirado
403Proibido: a credencial não tem um scope necessário, foi atingido um limite do plano, o plano não inclui uma opção necessária ou este tipo de credencial não é permitido neste endpoint
404Não encontrado: o recurso não existe ou não pertence à sua equipe
409Conflito: os identificadores informados não correspondem, a sala está arquivada, ou as abas da sala não permitem a alteração
413Payload demasiado grande: o corpo do pedido ou o ficheiro excede o limite deste endpoint
429Demasiados pedidos: a chave ou o IP cliente excedeu o limite atual; tente novamente após o intervalo Retry-After
500Erro do servidor: repita a requisição

Limites de taxa

As chaves manuais do espaço e as ligações OAuth Zapier têm limites por credencial: 600 leituras a cada 5 minutos, 120 escritas por minuto, 60 pedidos a /room-views por minuto e 20 carregamentos por hora. No conjunto de todas as credenciais, cada espaço está limitado a 1 200 leituras a cada 5 minutos, 240 escritas por minuto, 120 pedidos a /room-views por minuto e 40 carregamentos por hora. As falhas de autenticação Bearer e as autenticações inválidas de cliente OAuth estão separadamente limitadas a 60 tentativas a cada 5 minutos por IP cliente. Máximo de 50 assinaturas de webhook ativas por equipa.

Esta API é atualmente utilizada pela nossa integração com o Zapier. Plataformas de integração adicionais poderão ser suportadas no futuro.