Convide candidatos para uma entrevista gravada a partir dos seus próprios sistemas e receba de volta os resultados avaliados por IA assim que ficarem prontos. Todos os endpoints, payloads e eventos estão documentados nesta página.
Sem reunião de vendas, sem pedido de acesso. Crie uma chave nas configurações da sua conta e comece em menos de um minuto.
URL base
https://voxscreen.com/api/integrations/v1
Este é um contrato público. Campos são adicionados, nunca removidos ou renomeados. Uma mudança incompatível viria como uma nova versão em /api/integrations/v2.
Início
Apenas quatro passos até um candidato avaliado chegando no seu endpoint.
1
Crie uma chave de API
Na VoxScreen, abra Configurações e depois Integrações. A chave aparece uma única vez, então copie antes de fechar a janela. Todos os planos têm acesso à API, inclusive o gratuito.
2
Confirme que funciona
Se isto retornar o nome da sua conta, você está conectado.
Assine submission.scored e enviamos um POST para o seu endpoint assim que as respostas forem transcritas e avaliadas. Guarde o secret da resposta: você precisa dele para verificar as entregas.
Toda requisição precisa de uma chave de API, enviada em qualquer um dos dois cabeçalhos. As chaves começam com vs_live_ seguido de 43 caracteres aleatórios.
curl
curlhttps://voxscreen.com/api/integrations/v1/me\-H"Authorization: Bearer vs_live_YOUR_KEY"# X-API-Key works too, if that suits your client bettercurlhttps://voxscreen.com/api/integrations/v1/me\-H"X-API-Key: vs_live_YOUR_KEY"
A chave pertence à conta, não a uma pessoa, então remover o login de alguém que saiu da empresa não quebra as automações que essa pessoa criou.
O acesso à API está incluído em todos os planos. Um 402 significa que a assinatura está inativa, não que o plano é pequeno demais.
Endpoints
Todos os caminhos são relativos à URL base acima. As respostas são JSON.
GET/me
Identificar a conta
Retorna a conta dona da chave. Serve como teste de conexão, que é exatamente para isso que o Zapier e o Make usam.
Mais recentes primeiro. A maioria das integrações usa isto para montar um seletor onde a pessoa escolhe para qual entrevista os candidatos serão convidados.
Parâmetros de consulta
status
string
draft, active, closed ou archived.
limit
integer
De 1 a 200, padrão 100.
Resposta
JSON
[{"id":"9c1a0f10-0000-4000-8000-000000000001","title":"Backend Tech Lead","description":"Screening for a backend tech lead role.","status":"active","language":"en","time_limit_seconds":1800,"expires_at":"2026-09-01T23:59:00Z","created_at":"2026-08-01T12:00:00Z"}]
POST/candidates/invite
Convidar um candidato
Cria o candidato se o e-mail for novo na sua conta e reaproveita o cadastro existente caso contrário, então repetir a mesma chamada não duplica ninguém. Envia o e-mail de convite e conta na sua cota mensal de candidatos.
A entrevista precisa estar ativa. Retorna 400 se não estiver, se o e-mail for temporário ou se a cota tiver acabado.
Concluídos mais recentes primeiro, para que um poller possa parar de ler assim que reconhecer um id. Consulte com status=scored e since na data da última execução para pegar só os novos resultados.
Todo envio traz results_url, um link para a transcrição, as notas e a gravação dentro da VoxScreen. Repasse esse link em uma mensagem no Slack ou numa anotação do ATS para quem ler abrir o resultado em um clique. Envios de teste, quando o recrutador experimenta a própria entrevista, nunca aparecem aqui.
Parâmetros de consulta
status
string
pending, in_progress, completed, scoring, scored ou expired.
interview_id
uuid
Limita a uma única entrevista.
since
ISO 8601
Apenas envios concluídos nesta data ou depois dela.
limit
integer
De 1 a 100, padrão 50.
Resposta
JSON
[{"id":"d46e6040-0000-4000-8000-000000000001","interview_id":"9c1a0f10-0000-4000-8000-000000000001","candidate_id":"7d900000-0000-4000-8000-000000000001","status":"scored","results_url":"https://voxscreen.com/submissions/d46e6040-0000-4000-8000-000000000001","started_at":"2026-08-07T16:01:15Z","completed_at":"2026-08-07T16:08:40Z","overall_score":4.2,"percentile":78.0,"language_proficiency":"B2","language_proficiency_reasoning":"Fluent, occasional hesitation.","ai_summary":"Strong communication and relevant backend experience.","created_at":"2026-08-07T16:00:02Z","interview_title":"Backend Tech Lead","candidate_name":"Alex Silva","candidate_email":"alex.silva@example.com"}]
GET/submissions/{id}
Buscar um envio
Mesmo formato de um item da lista. Retorna 404 para um envio de outra conta, nunca 403.
Resposta
JSON
{"id":"d46e6040-0000-4000-8000-000000000001","status":"scored","results_url":"https://voxscreen.com/submissions/d46e6040-0000-4000-8000-000000000001","overall_score":4.2,"language_proficiency":"B2","ai_summary":"Strong communication and relevant backend experience.","candidate_name":"Alex Silva","candidate_email":"alex.silva@example.com"}
POST/hooks
Assinar um evento
Registra uma URL para onde enviamos um POST quando o evento acontece. O segredo de assinatura vem nesta resposta e em nenhum outro lugar.
target_url precisa ser https. Assinar a mesma chave no mesmo evento e URL duas vezes retorna a inscrição existente em vez de duplicar, então repetir a chamada é seguro.
Remove a inscrição e interrompe todas as entregas seguintes.
Resposta
204 No Content
Webhooks
Em vez de ficar consultando, assine um evento e enviamos um POST para a sua URL no momento em que ele acontece. É o padrão que o Zapier chama de REST Hook.
Eventos
submission.scored
As respostas foram transcritas e avaliadas. Traz a nota geral, o nível de idioma no padrão CEFR e o resumo da IA. É o evento que a maioria das integrações quer.
submission.completed
O candidato terminou de gravar, antes da avaliação rodar. Útil para confirmações, onde esperar a IA só atrasaria a resposta.
{"event":"submission.scored","created_at":"2026-08-08T02:09:04.713338+00:00","data":{"submission_id":"d46e6040-0000-4000-8000-000000000001","results_url":"https://voxscreen.com/submissions/d46e6040-0000-4000-8000-000000000001","status":"scored","overall_score":4.2,"percentile":78.0,"language_proficiency":"B2","ai_summary":"Strong communication and relevant backend experience.","started_at":"2026-08-07T16:01:15Z","completed_at":"2026-08-07T16:08:40Z","interview":{"id":"9c1a0f10-0000-4000-8000-000000000001","title":"Backend Tech Lead"},"candidate":{"id":"7d900000-0000-4000-8000-000000000001","full_name":"Alex Silva","email":"alex.silva@example.com"}}}
candidate.invited traz invitation_id, status, sent_at, interview e candidate no lugar disso.
X-VoxScreen-Delivery é único por tentativa. Use para deixar seu handler idempotente, já que uma nova tentativa repete o mesmo payload.
Verificando uma entrega
Calcule HMAC-SHA256 sobre o corpo bruto da requisição usando o segredo da sua inscrição e compare em tempo constante.
Verifique sobre os bytes que você recebeu, não sobre um objeto reserializado. Qualquer diferença de espaço em branco ou ordem das chaves muda a assinatura.
Novas tentativas e falhas
Qualquer resposta fora da faixa 2xx é tentada mais cinco vezes com espera exponencial, ou seja, até seis tentativas por evento. Responda 2xx rápido e faça o trabalho de forma assíncrona: as entregas expiram em 10 segundos.
·30s · 60s · 120s · 240s · 480s
·Retorne 410 Gone para cancelar a inscrição na hora. É assim que um consumidor sinaliza que o endpoint saiu do ar, e isso interrompe todas as entregas seguintes.
·As tentativas são contadas uma a uma, incluindo as repetições, e a inscrição é desativada após 10 falhas seguidas. Como cada evento é tentado seis vezes, isso dá menos de dois eventos com falha, ou cerca de 20 minutos com o endpoint fora do ar. Qualquer 2xx zera a contagem. A inscrição desativada continua visível nas suas configurações, então monitore seu próprio endpoint em vez de contar com novas tentativas nossas.
Erros e limites
Os erros retornam {"detail": "..."}. Erros de validação retornam uma lista em detail nomeando cada campo com problema.
401
Chave ausente, malformada, desconhecida ou revogada.
402
Chave válida, mas a assinatura está inativa. O plano não importa; todos têm acesso à API. O corpo traz current_plan.
404
O recurso não existe, ou pertence a outra conta. Propositalmente indistinguível, para a API nunca confirmar que um id existe.
422
Falha de validação. O corpo lista os campos com problema.
429
Limite de requisições excedido.
120 requisições por minuto, por chave, por endpoint. Zapier e Make consultam bem abaixo disso.
Prefere sem código?
Você não precisa escrever nada disso. Zapier e Make conectam a VoxScreen a milhares de ferramentas, e dá para adicionar um webhook direto em Configurações e depois Integrações, sem nem criar uma chave de API.