Détails d'un candidat
curl --request GET \
--url https://app.voicehire.io/api/v1/candidates/{candidate_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://app.voicehire.io/api/v1/candidates/{candidate_id}"
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/candidates/{candidate_id}', 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/candidates/{candidate_id}",
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/candidates/{candidate_id}"
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/candidates/{candidate_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.voicehire.io/api/v1/candidates/{candidate_id}")
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{
"candidate_id": "550e8400-e29b-41d4-a716-446655440000",
"campaign_id": "abc123def456",
"basic_info": {
"first_name": "Jean",
"last_name": "Dupont",
"email": "jean.dupont@example.com",
"phone": "0612345678"
},
"interview": {
"status": "completed",
"date": "2024-01-15T14:30:00Z",
"duration_seconds": 480,
"score": 8.5
},
"responses": [
{
"question": "Parlez-moi de votre expérience avec React et Node.js",
"answer": "J'ai 5 ans d'expérience avec React, j'ai travaillé sur plusieurs projets...",
"score": 9,
"weight": 2,
"explanation": "Le candidat démontre une expertise approfondie avec des exemples concrets"
},
{
"question": "Quelle est votre disponibilité?",
"answer": "Je suis disponible immédiatement",
"score": 10,
"weight": 1,
"explanation": "Disponibilité immédiate, alignée avec les besoins"
}
],
"analysis": {
"availability": "Immédiatement",
"availability_start": "2024-01-20",
"salary_expectation": "45000-50000€",
"candidate_alignment": "Excellente correspondance avec le profil recherché. Expertise technique solide et disponibilité immédiate.",
"strengths": [
"5 ans d'expérience avec React et Node.js",
"Portfolio de projets impressionnant",
"Excellentes compétences en communication",
"Disponible immédiatement"
],
"concerns": [
"Peu d'expérience en gestion d'équipe",
"Prétentions salariales dans la fourchette haute"
]
}
}
Candidats
Obtenir les détails d'un candidat
Récupère les informations complètes d’un candidat incluant ses réponses d’entretien
GET
/
api
/
v1
/
candidates
/
{candidate_id}
Détails d'un candidat
curl --request GET \
--url https://app.voicehire.io/api/v1/candidates/{candidate_id} \
--header 'X-API-Key: <api-key>'import requests
url = "https://app.voicehire.io/api/v1/candidates/{candidate_id}"
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/candidates/{candidate_id}', 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/candidates/{candidate_id}",
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/candidates/{candidate_id}"
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/candidates/{candidate_id}")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.voicehire.io/api/v1/candidates/{candidate_id}")
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{
"candidate_id": "550e8400-e29b-41d4-a716-446655440000",
"campaign_id": "abc123def456",
"basic_info": {
"first_name": "Jean",
"last_name": "Dupont",
"email": "jean.dupont@example.com",
"phone": "0612345678"
},
"interview": {
"status": "completed",
"date": "2024-01-15T14:30:00Z",
"duration_seconds": 480,
"score": 8.5
},
"responses": [
{
"question": "Parlez-moi de votre expérience avec React et Node.js",
"answer": "J'ai 5 ans d'expérience avec React, j'ai travaillé sur plusieurs projets...",
"score": 9,
"weight": 2,
"explanation": "Le candidat démontre une expertise approfondie avec des exemples concrets"
},
{
"question": "Quelle est votre disponibilité?",
"answer": "Je suis disponible immédiatement",
"score": 10,
"weight": 1,
"explanation": "Disponibilité immédiate, alignée avec les besoins"
}
],
"analysis": {
"availability": "Immédiatement",
"availability_start": "2024-01-20",
"salary_expectation": "45000-50000€",
"candidate_alignment": "Excellente correspondance avec le profil recherché. Expertise technique solide et disponibilité immédiate.",
"strengths": [
"5 ans d'expérience avec React et Node.js",
"Portfolio de projets impressionnant",
"Excellentes compétences en communication",
"Disponible immédiatement"
],
"concerns": [
"Peu d'expérience en gestion d'équipe",
"Prétentions salariales dans la fourchette haute"
]
}
}
Paramètres
string
required
Identifiant unique du candidat (UUID)
Réponse
{
"candidate_id": "550e8400-e29b-41d4-a716-446655440000",
"campaign_id": "abc123def456",
"basic_info": {
"first_name": "Jean",
"last_name": "Dupont",
"email": "jean.dupont@example.com",
"phone": "0612345678"
},
"interview": {
"status": "completed",
"date": "2024-01-15T14:30:00Z",
"duration_seconds": 480,
"score": 8.5
},
"responses": [
{
"question": "Parlez-moi de votre expérience avec React et Node.js",
"answer": "J'ai 5 ans d'expérience avec React, j'ai travaillé sur plusieurs projets...",
"score": 9,
"weight": 2,
"explanation": "Le candidat démontre une expertise approfondie avec des exemples concrets"
},
{
"question": "Quelle est votre disponibilité?",
"answer": "Je suis disponible immédiatement",
"score": 10,
"weight": 1,
"explanation": "Disponibilité immédiate, alignée avec les besoins"
}
],
"analysis": {
"availability": "Immédiatement",
"availability_start": "2024-01-20",
"salary_expectation": "45000-50000€",
"candidate_alignment": "Excellente correspondance avec le profil recherché. Expertise technique solide et disponibilité immédiate.",
"strengths": [
"5 ans d'expérience avec React et Node.js",
"Portfolio de projets impressionnant",
"Excellentes compétences en communication",
"Disponible immédiatement"
],
"concerns": [
"Peu d'expérience en gestion d'équipe",
"Prétentions salariales dans la fourchette haute"
]
}
}
string
required
Identifiant unique du candidat
string
required
Identifiant de la campagne associée
object
required
object
required
array
Réponses détaillées aux questions (uniquement si l’entretien est complété)
object
Analyse globale du candidat (uniquement si l’entretien est complété)
Exemple de requête
curl -X GET https://app.voicehire.io/api/v1/candidates/550e8400-e29b-41d4-a716-446655440000 \
-H "X-API-Key: vh_live_XXXXXXXXXXXXX"
import requests
response = requests.get(
"https://app.voicehire.io/api/v1/candidates/550e8400-e29b-41d4-a716-446655440000",
headers={
"X-API-Key": "vh_live_XXXXXXXXXXXXX"
}
)
const axios = require('axios');
const response = await axios.get(
'https://app.voicehire.io/api/v1/candidates/550e8400-e29b-41d4-a716-446655440000',
{
headers: {
'X-API-Key': 'vh_live_XXXXXXXXXXXXX'
}
}
);
Codes d’erreur
| Code | Description |
|---|---|
| 401 | Clé API manquante ou invalide |
| 404 | Candidat non trouvé |
Authorizations
Clé API au format vh_live_XXXXX
Path Parameters
ID ou UUID du candidat
Response
Détails du candidat
ID du candidat
UUID du candidat
Available options:
completed, pending, voicemail, incomplete Score de l'entretien (sur 10)
Candidat sourcé (avec SMS)
Durée de l'entretien en secondes
En recherche active d'emploi
À l'écoute du marché
Show child attributes
Show child attributes
Show child attributes
Show child attributes

