Obtenir les détails d'une campagne
curl --request GET \
--url https://app.voicehire.io/api/v1/campaigns/{campaign_id}/details \
--header 'X-API-Key: <api-key>'import requests
url = "https://app.voicehire.io/api/v1/campaigns/{campaign_id}/details"
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}/details', 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}/details",
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}/details"
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}/details")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.voicehire.io/api/v1/campaigns/{campaign_id}/details")
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{
"campaign_id": "abc123def456",
"job_title": "Développeur Full Stack",
"contract_type": "CDI",
"job_description": "Nous recherchons un développeur full stack expérimenté...",
"company_name": "TechCorp",
"client_company": "StartupInnovante",
"additional_info": "Télétravail possible 2 jours par semaine",
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-15T10:30:00",
"status": "active",
"questions": [
{
"order": 1,
"question": "Pouvez-vous décrire votre expérience avec React et Node.js ?",
"weight": 2.0
},
{
"order": 2,
"question": "Comment gérez-vous le travail en équipe agile ?",
"weight": 1.5
},
{
"order": 3,
"question": "Quelle est votre approche pour résoudre des problèmes complexes ?",
"weight": 1.0
}
],
"campaign_settings": {
"language_test_mode": "none",
"enable_salary_question": true,
"enable_job_search_question": true,
"enable_availability_question": true,
"enable_engage": null,
"enable_recap_interview": null,
"enable_recap_job": null
}
}
Campagnes
Obtenir les détails d'une campagne
Récupère tous les détails complets d’une campagne : informations générales, questions d’entretien avec poids, et paramètres de configuration
GET
/
api
/
v1
/
campaigns
/
{campaign_id}
/
details
Obtenir les détails d'une campagne
curl --request GET \
--url https://app.voicehire.io/api/v1/campaigns/{campaign_id}/details \
--header 'X-API-Key: <api-key>'import requests
url = "https://app.voicehire.io/api/v1/campaigns/{campaign_id}/details"
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}/details', 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}/details",
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}/details"
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}/details")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.voicehire.io/api/v1/campaigns/{campaign_id}/details")
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{
"campaign_id": "abc123def456",
"job_title": "Développeur Full Stack",
"contract_type": "CDI",
"job_description": "Nous recherchons un développeur full stack expérimenté...",
"company_name": "TechCorp",
"client_company": "StartupInnovante",
"additional_info": "Télétravail possible 2 jours par semaine",
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-15T10:30:00",
"status": "active",
"questions": [
{
"order": 1,
"question": "Pouvez-vous décrire votre expérience avec React et Node.js ?",
"weight": 2.0
},
{
"order": 2,
"question": "Comment gérez-vous le travail en équipe agile ?",
"weight": 1.5
},
{
"order": 3,
"question": "Quelle est votre approche pour résoudre des problèmes complexes ?",
"weight": 1.0
}
],
"campaign_settings": {
"language_test_mode": "none",
"enable_salary_question": true,
"enable_job_search_question": true,
"enable_availability_question": true,
"enable_engage": null,
"enable_recap_interview": null,
"enable_recap_job": null
}
}
Paramètres
string
required
Identifiant unique de la campagne
Réponse
{
"campaign_id": "abc123def456",
"job_title": "Développeur Full Stack",
"contract_type": "CDI",
"job_description": "Nous recherchons un développeur full stack expérimenté...",
"company_name": "TechCorp",
"client_company": "StartupInnovante",
"additional_info": "Télétravail possible 2 jours par semaine",
"created_at": "2024-01-15T10:30:00",
"updated_at": "2024-01-15T10:30:00",
"status": "active",
"questions": [
{
"order": 1,
"question": "Pouvez-vous décrire votre expérience avec React et Node.js ?",
"weight": 2.0
},
{
"order": 2,
"question": "Comment gérez-vous le travail en équipe agile ?",
"weight": 1.5
},
{
"order": 3,
"question": "Quelle est votre approche pour résoudre des problèmes complexes ?",
"weight": 1.0
}
],
"campaign_settings": {
"language_test_mode": "none",
"enable_salary_question": true,
"enable_job_search_question": true,
"enable_availability_question": true,
"enable_engage": null,
"enable_recap_interview": null,
"enable_recap_job": null
}
}
string
required
Identifiant unique de la campagne
string
required
Titre du poste proposé
string
required
Type de contrat (CDI, CDD, Stage, etc.)
string
required
Description complète du poste et de l’offre d’emploi
string
required
Nom de l’entreprise qui recrute
string
Nom de l’entreprise cliente (si différent de l’entreprise qui recrute)
string
Informations complémentaires sur le poste
string
required
Date et heure de création de la campagne (format ISO 8601)
string
required
Date et heure de dernière modification (format ISO 8601)
string
required
Statut actuel de la campagneValeurs possibles:
active- Campagne active, appels en courspaused- Campagne en pause, appels suspenduscompleted- Campagne terminée
array
required
Liste des questions d’entretien avec leurs poids respectifs
Show Structure d'une question
Show Structure d'une question
integer
required
Ordre d’apparition de la question dans l’entretien
string
required
Texte de la question à poser au candidat
number
required
Poids de la question dans le calcul du score finalValeurs possibles:
0: Question facultative (aucun impact sur le score)0.5: Question secondaire (demi-poids)1.0: Poids standard1.5: Question importante (poids renforcé)2.0: Question critique (double poids)
object
required
Paramètres de configuration de la campagne
Show Paramètres de fonctionnalités
Show Paramètres de fonctionnalités
string
required
Mode de test linguistique
none: Aucun testenglish: Test d’anglais activé
boolean
Active la question sur les prétentions salariales
boolean
Active la question sur la recherche d’emploi
boolean
Active la question sur la disponibilité
boolean
Active les fonctionnalités d’engagement avancées
boolean
Active le récapitulatif d’entretien
boolean
Active le récapitulatif du poste
Exemple de requête
curl -X GET https://app.voicehire.io/api/v1/campaigns/abc123def456/details \
-H "X-API-Key: vh_live_XXXXXXXXXXXXX"
import requests
response = requests.get(
"https://app.voicehire.io/api/v1/campaigns/abc123def456/details",
headers={
"X-API-Key": "vh_live_XXXXXXXXXXXXX"
}
)
campaign_details = response.json()
print(f"Campagne: {campaign_details['job_title']}")
print(f"Questions: {len(campaign_details['questions'])}")
const axios = require('axios');
const response = await axios.get(
'https://app.voicehire.io/api/v1/campaigns/abc123def456/details',
{
headers: {
'X-API-Key': 'vh_live_XXXXXXXXXXXXX'
}
}
);
const campaign = response.data;
console.log(`Campagne: ${campaign.job_title}`);
console.log(`Questions: ${campaign.questions.length}`);
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://app.voicehire.io/api/v1/campaigns/abc123def456/details');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'X-API-Key: vh_live_XXXXXXXXXXXXX'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$campaign = json_decode($response, true);
echo "Campagne: " . $campaign['job_title'] . "\n";
echo "Questions: " . count($campaign['questions']) . "\n";
curl_close($ch);
?>
Codes d’erreur
| Code | Description |
|---|---|
| 401 | Clé API manquante ou invalide |
| 404 | Campagne non trouvée ou n’appartient pas à votre agence |
| 500 | Erreur interne du serveur |
Authorizations
Clé API au format vh_live_XXXXX
Path Parameters
Identifiant unique de la campagne
Response
Détails de la campagne
Available options:
active, paused, completed Show child attributes
Show child attributes
Show child attributes
Show child attributes

