> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voicehire.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Obtenir le statut d'une campagne

> Récupère le statut détaillé d'une campagne avec ses statistiques complètes

## Paramètres

<ParamField path="campaign_id" type="string" required>
  Identifiant unique de la campagne
</ParamField>

## Réponse

<ResponseExample>
  ```json theme={null}
  {
    "campaign_id": "abc123def456",
    "status": "active",
    "stats": {
      "total_candidates": 45,
      "interviews_completed": 38,
      "average_score": 7.2,
      "time_saved_hours": 19.0,
      "completion_rate": 84.4,
      "qualified_count": 12,
      "voicemail_count": 3,
      "incomplete_count": 2,
      "unavailable_count": 1,
      "no_answer_count": 1,
      "invalid_count": 0
    }
  }
  ```
</ResponseExample>

<ResponseField name="campaign_id" type="string" required>
  Identifiant unique de la campagne
</ResponseField>

<ResponseField name="status" type="string" required>
  Statut actuel de la campagne

  Valeurs possibles:

  * `active` - Campagne active, appels en cours
  * `paused` - Campagne en pause, appels suspendus
  * `completed` - Campagne terminée
</ResponseField>

<ResponseField name="stats" type="object" required>
  Statistiques détaillées de la campagne

  <Expandable title="Propriétés des statistiques">
    <ResponseField name="total_candidates" type="integer" required>
      Nombre total de candidats dans la campagne
    </ResponseField>

    <ResponseField name="interviews_completed" type="integer" required>
      Nombre d'entretiens terminés avec succès
    </ResponseField>

    <ResponseField name="average_score" type="number" required>
      Score moyen des candidats évalués (sur 10)
    </ResponseField>

    <ResponseField name="time_saved_hours" type="number" required>
      Estimation du temps économisé en heures
    </ResponseField>

    <ResponseField name="completion_rate" type="number" required>
      Taux de complétion des entretiens (en pourcentage)
    </ResponseField>

    <ResponseField name="qualified_count" type="integer" required>
      Nombre de candidats qualifiés (score ≥ 7)
    </ResponseField>

    <ResponseField name="voicemail_count" type="integer" required>
      Nombre de candidats tombés sur répondeur
    </ResponseField>

    <ResponseField name="incomplete_count" type="integer" required>
      Nombre d'entretiens incomplets
    </ResponseField>

    <ResponseField name="unavailable_count" type="integer" required>
      Nombre de candidats indisponibles
    </ResponseField>

    <ResponseField name="no_answer_count" type="integer" required>
      Nombre de candidats n'ayant pas répondu
    </ResponseField>

    <ResponseField name="invalid_count" type="integer" required>
      Nombre de numéros invalides
    </ResponseField>
  </Expandable>
</ResponseField>

## Exemple de requête

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET https://app.voicehire.io/api/v1/campaigns/abc123def456/status \
    -H "X-API-Key: vh_live_XXXXXXXXXXXXX"
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      "https://app.voicehire.io/api/v1/campaigns/abc123def456/status",
      headers={
          "X-API-Key": "vh_live_XXXXXXXXXXXXX"
      }
  )
  ```

  ```javascript Node.js theme={null}
  const axios = require('axios');

  const response = await axios.get(
    'https://app.voicehire.io/api/v1/campaigns/abc123def456/status',
    {
      headers: {
        'X-API-Key': 'vh_live_XXXXXXXXXXXXX'
      }
    }
  );
  ```
</CodeGroup>

## Codes d'erreur

| Code | Description                   |
| ---- | ----------------------------- |
| 401  | Clé API manquante ou invalide |
| 404  | Campagne non trouvée          |


## OpenAPI

````yaml GET /api/v1/campaigns/{campaign_id}/status
openapi: 3.0.3
info:
  title: VoiceHire API
  description: >
    API REST pour automatiser les campagnes de recrutement avec VoiceHire.


    ## Authentification


    L'API utilise une authentification par clé API. Vous devez inclure votre clé
    API dans l'en-tête `X-API-Key` de chaque requête.


    ```

    X-API-Key: vh_live_XXXXXXXXXXXXX

    ```


    ## Format des réponses


    Toutes les réponses sont au format JSON. Les erreurs suivent un format
    standardisé :


    ```json

    {
      "error": {
        "code": "ERROR_CODE",
        "message": "Description de l'erreur",
        "details": {}
      }
    }

    ```


    ## Limites


    - Les numéros de téléphone doivent être des numéros français (06 ou 07)

    - Maximum 100 candidats par requête d'ajout

    - Les campagnes génèrent automatiquement 6 questions d'entretien
  version: 1.0.0
  contact:
    name: Support VoiceHire
    email: support@voicehire.io
    url: https://www.voicehire.io
servers:
  - url: https://app.voicehire.io
    description: Production
  - url: http://localhost:8080
    description: Développement local
security:
  - ApiKeyAuth: []
tags:
  - name: Campagnes
    description: Gestion des campagnes de recrutement
  - name: Candidats
    description: Gestion des candidats
  - name: Compte
    description: Informations du compte
paths:
  /api/v1/campaigns/{campaign_id}/status:
    get:
      tags:
        - Campagnes
      summary: Obtenir le statut d'une campagne
      description: Récupère les statistiques détaillées d'une campagne
      operationId: getCampaignStatus
      parameters:
        - name: campaign_id
          in: path
          required: true
          description: Identifiant de la campagne
          schema:
            type: string
            example: CAMP-20250701-ABC123
      responses:
        '200':
          description: Statut de la campagne
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CampaignStatus'
              example:
                campaign_id: CAMP-20250701-ABC123
                status: active
                stats:
                  total_candidates: 50
                  interviews_completed: 35
                  average_score: 7.2
                  time_saved_hours: 11.6
                  completion_rate: 70
                  qualified_count: 22
                  voicemail_count: 5
                  incomplete_count: 3
                  no_answer_count: 7
        '404':
          description: Campagne non trouvée
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CampaignStatus:
      type: object
      properties:
        campaign_id:
          type: string
        status:
          type: string
          enum:
            - active
            - paused
            - completed
        stats:
          type: object
          properties:
            total_candidates:
              type: integer
            interviews_completed:
              type: integer
            average_score:
              type: number
            time_saved_hours:
              type: number
            completion_rate:
              type: number
            qualified_count:
              type: integer
              description: Candidats avec score >= 7
            voicemail_count:
              type: integer
            incomplete_count:
              type: integer
            no_answer_count:
              type: integer
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Code d'erreur machine-readable
              example: MISSING_API_KEY
            message:
              type: string
              description: Message d'erreur human-readable
              example: API key is required
            details:
              type: object
              description: Détails supplémentaires sur l'erreur
              additionalProperties: true
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: Clé API au format vh_live_XXXXX

````