Lister les candidats d'une campagne
curl --request GET \
--url https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates \
--header 'X-API-Key: <api-key>'import requests
url = "https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"candidates": [
{
"candidate_id": "550e8400-e29b-41d4-a716-446655440000",
"first_name": "Jean",
"last_name": "Dupont",
"email": "jean.dupont@example.com",
"phone": "0612345678",
"status": "completed",
"interview_score": 8.5,
"interview_date": "2024-01-15T14:30:00Z",
"availability": "Immédiatement",
"salary_expectation": "45000-50000€",
"candidate_alignment": "Excellente correspondance avec le profil recherché",
"strengths": "Expérience solide en React, Bonne communication, Motivé",
"concerns": "Peu d'expérience en gestion d'équipe",
"is_sourced": false
}
],
"pagination": {
"total": 125,
"page": 1,
"per_page": 50,
"total_pages": 3
}
}
Candidats
Lister les candidats
Récupère la liste des candidats d’une campagne avec leur synthèse d’entretien
GET
/
api
/
v1
/
campaigns
/
{campaign_id}
/
candidates
Lister les candidats d'une campagne
curl --request GET \
--url https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates \
--header 'X-API-Key: <api-key>'import requests
url = "https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.voicehire.io/api/v1/campaigns/{campaign_id}/candidates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"candidates": [
{
"candidate_id": "550e8400-e29b-41d4-a716-446655440000",
"first_name": "Jean",
"last_name": "Dupont",
"email": "jean.dupont@example.com",
"phone": "0612345678",
"status": "completed",
"interview_score": 8.5,
"interview_date": "2024-01-15T14:30:00Z",
"availability": "Immédiatement",
"salary_expectation": "45000-50000€",
"candidate_alignment": "Excellente correspondance avec le profil recherché",
"strengths": "Expérience solide en React, Bonne communication, Motivé",
"concerns": "Peu d'expérience en gestion d'équipe",
"is_sourced": false
}
],
"pagination": {
"total": 125,
"page": 1,
"per_page": 50,
"total_pages": 3
}
}
Paramètres
string
required
Identifiant unique de la campagne
integer
default:"1"
Numéro de la page à récupérer
integer
default:"50"
Nombre de résultats par page (maximum: 100)
string
default:"date_desc"
Ordre de tri des résultatsValeurs possibles:
date_desc- Plus récents en premierdate_asc- Plus anciens en premierscore_desc- Meilleurs scores en premierscore_asc- Scores les plus faibles en premier
string
Filtrer par statut d’entretienValeurs possibles:
completed- Entretiens terminésvoicemail- Tombés sur répondeurpending- En attente d’appel
Réponse
{
"candidates": [
{
"candidate_id": "550e8400-e29b-41d4-a716-446655440000",
"first_name": "Jean",
"last_name": "Dupont",
"email": "jean.dupont@example.com",
"phone": "0612345678",
"status": "completed",
"interview_score": 8.5,
"interview_date": "2024-01-15T14:30:00Z",
"availability": "Immédiatement",
"salary_expectation": "45000-50000€",
"candidate_alignment": "Excellente correspondance avec le profil recherché",
"strengths": "Expérience solide en React, Bonne communication, Motivé",
"concerns": "Peu d'expérience en gestion d'équipe",
"is_sourced": false
}
],
"pagination": {
"total": 125,
"page": 1,
"per_page": 50,
"total_pages": 3
}
}
array
required
Liste des candidats
Show Propriétés de chaque candidat
Show Propriétés de chaque candidat
string
required
Identifiant unique du candidat (UUID)
string
required
Prénom du candidat
string
required
Nom de famille du candidat
string
required
Email du candidat
string
required
Numéro de téléphone
string
required
Statut de l’entretien (
completed, voicemail, pending, incomplete)number
Score de l’entretien (0-10), null si non complété
string
Date de l’entretien (ISO 8601)
string
Disponibilité du candidat
string
Prétentions salariales
string
Analyse de l’alignement avec le poste
string
Points forts identifiés
string
Points d’attention
boolean
required
Indique si le candidat a été sourcé via SMS
object
required
Exemple de requête
curl -X GET "https://app.voicehire.io/api/v1/campaigns/abc123def456/candidates?sort=score_desc" \
-H "X-API-Key: vh_live_XXXXXXXXXXXXX"
import requests
response = requests.get(
"https://app.voicehire.io/api/v1/campaigns/abc123def456/candidates",
headers={
"X-API-Key": "vh_live_XXXXXXXXXXXXX"
},
params={
"sort": "score_desc"
}
)
const axios = require('axios');
const response = await axios.get(
'https://app.voicehire.io/api/v1/campaigns/abc123def456/candidates',
{
headers: {
'X-API-Key': 'vh_live_XXXXXXXXXXXXX'
},
params: {
sort: 'score_desc'
}
}
);
Codes d’erreur
| Code | Description |
|---|---|
| 400 | Paramètres de requête invalides |
| 401 | Clé API manquante ou invalide |
| 404 | Campagne non trouvée |
Authorizations
Clé API au format vh_live_XXXXX
Path Parameters
Query Parameters
Required range:
x >= 1Required range:
1 <= x <= 100Filtrer par statut
Available options:
completed, pending, voicemail Score minimum
Required range:
0 <= x <= 10Ordre de tri
Available options:
date_desc, date_asc, score_desc, score_asc 
