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

# Intégration et utilisation de l'API Sora Tasks

> Sora Video Generation 集成指南 - XHuoAPI

La principale fonctionnalité de l'API Sora Tasks est de permettre la consultation de l'état d'exécution d'une tâche en entrant l'ID de tâche généré par l'API Sora Videos Generation.

Ce document détaillera les instructions d'intégration de l'API Sora Tasks, vous aidant à intégrer facilement et à tirer pleinement parti de la puissance de cette API. Grâce à l'API Sora Tasks, vous pouvez facilement interroger l'état d'exécution des tâches de l'API Sora Videos Generation.

## Processus de demande

Pour utiliser l'API Sora Tasks, vous devez d'abord vous rendre sur la page de demande [Sora Videos Generation API](https://api.xhuoapi.ai/documents/99a24421-2e22-4028-8201-e19cb834b67e) pour demander le service correspondant, puis copier l'ID de tâche de l'API Sora Videos Generation, comme indiqué sur l'image :

<p>
  <img src="https://cdn.xhuoapi.ai/za62pb.png" width="500" className="m-auto" />
</p>

Enfin, accédez à la page de l'API Tasks [Sora Tasks API](https://api.xhuoapi.ai/documents/c9d81bad-9064-4796-86b6-4fb43cc93a16) pour demander le service correspondant. Une fois sur la page, cliquez sur le bouton « Acquire », comme indiqué sur l'image :

![Page de demande](https://cdn.xhuoapi.ai/rci31i.png)

Si vous n'êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la [page de connexion](https://api.xhuoapi.ai) vous invitant à vous inscrire et à vous connecter. Après vous être connecté ou inscrit, vous serez automatiquement renvoyé à la page actuelle.

Lors de votre première demande, un quota gratuit sera offert, vous permettant d'utiliser cette API gratuitement.

## Exemple de demande

L'API Sora Tasks peut être utilisée pour interroger les résultats de l'API Sora Videos Generation. Pour savoir comment utiliser l'API Sora Videos Generation, veuillez consulter le document [Sora Videos Generation API](https://api.xhuoapi.ai/documents/sora-videos-integration).

Prenons un exemple avec un ID de tâche retourné par le service Sora Videos Generation. Supposons que nous ayons un ID de tâche : b8976e18-32dc-4718-9ed8-1ea090fcb6ea, nous allons maintenant démontrer comment procéder en passant cet ID de tâche.

### Exemple de tâche

<p>
  <img src="https://cdn.xhuoapi.ai/za62pb.png" width="500" className="m-auto" />
</p>

### Configuration des en-têtes de demande et du corps de la demande

**Request Headers** comprend :

* `accept` : spécifie que la réponse doit être au format JSON, ici rempli avec `application/json`.
* `authorization` : la clé d'API pour appeler l'API, que vous pouvez sélectionner directement après la demande.

**Request Body** comprend :

* `id` : l'ID de la tâche téléchargée.
* `action` : la manière d'opérer sur la tâche.

Configurez comme indiqué sur l'image ci-dessous :

<p>
  <img src="https://cdn.xhuoapi.ai/fe19dd.png" width="500" className="m-auto" />
</p>

### Exemple de code

Vous pouvez constater que divers langages de code ont déjà été générés automatiquement sur le côté droit de la page, comme indiqué sur l'image :

<p>
  <img src="https://cdn.xhuoapi.ai/ou5lfa.png" width="500" className="m-auto" />
</p>

Voici quelques exemples de code :

#### CURL

```bash theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/sora/tasks' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea",
  "action": "retrieve"
}'
```

#### Python

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/sora/tasks"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea",
    "action": "retrieve"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

### Exemple de réponse

Après une demande réussie, l'API renverra les détails de la tâche vidéo ici. Par exemple :

```json theme={null}
{
  "_id": "68e914aa550a4144a5788305",
  "id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea",
  "api_id": "54aed96c-0346-4227-8c99-9780247a7ffd",
  "application_id": "f10c04c2-2273-4463-bd3f-593d71b75ac8",
  "created_at": 1760105642.045,
  "credential_id": "4e6e181d-f320-4874-8d80-fc2253b40b7e",
  "request": {
    "size": "large",
    "duration": 15,
    "orientation": "landscape",
    "prompt": "cat running on the river",
    "model": "sora-2",
    "image_urls": [
      "https://cdn.xhuoapi.ai/11wfp4.png"
    ],
    "callback_url": "https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa"
  },
  "trace_id": "fb751e1e-4705-49ea-9fd4-5024b7865ea2",
  "type": "videos",
  "user_id": "ad7afe47-cea9-4cda-980f-2ad8810e51cf",
  "response": {
    "success": true,
    "task_id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea",
    "trace_id": "fb751e1e-4705-49ea-9fd4-5024b7865ea2",
    "data": [
      {
        "id": "sora-2:task_01k777hjrbfrgs2060q5zvf2a5",
        "video_url": "https://filesystem.site/gptimage/vg-assets/assets%2Ftask_01k777hjrbfrgs2060q5zvf2a5%2Ftask_01k777hjrbfrgs2060q5zvf2a5_genid_b8e2e5d1-a579-49ca-a21c-cb3869685cce_25_10_10_14_15_147334%2Fvideos%2F00000%2Fsrc.mp4?st=2025-10-10T12%3A38%3A49Z&se=2025-10-16T13%3A38%3A49Z&sks=b&skt=2025-10-10T12%3A38%3A49Z&ske=2025-10-16T13%3A38%3A49Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=p4aMqXqkP%2FI1IhOVGCB9JL8vUUvfNBBF12ESpKhKXOk%3D&az=oaivgprodscus",
        "state": "succeeded"
      }
    ]
  }
}
```

Le résultat de la réponse contient plusieurs champs, le champ request est le corps de la demande lors de l'initiation de la tâche, tandis que le champ response est le corps de la réponse retourné après l'achèvement de la tâche. Les champs sont décrits comme suit.

* `id`, l'ID de la tâche vidéo générée, utilisé pour identifier de manière unique cette tâche de génération vidéo.
* `request`, les informations de demande dans la tâche vidéo.
* `response`, les informations de retour dans la tâche vidéo.

## Opération de requête en lot

Ceci est destiné à interroger les détails des tâches vidéo pour plusieurs ID de tâche, contrairement à ce qui précède, il est nécessaire de sélectionner l'action comme retrieve\_batch.

**Request Body** comprend :

* `ids` : tableau des ID de tâches téléchargées.
* `action` : la manière d'opérer sur les tâches.

Configurez comme indiqué sur l'image ci-dessous :

<p>
  <img src="https://cdn.xhuoapi.ai/9cf4j8.png" width="500" className="m-auto" />
</p>

### Exemple de code

可以发现，在页面右侧已经自动生成了各种语言的代码，如图所示：

<p>
  <img src="https://cdn.xhuoapi.ai/8ci2tg.png" width="500" className="m-auto" />
</p>

部分代码示例如下：

### 响应示例

请求成功后，API 将返回此次所有批量视频任务的具体详情信息。例如：

```json theme={null}
{
  "items": [
    {
      "_id": "68e914aa550a4144a5788305",
      "id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea",
      "api_id": "54aed96c-0346-4227-8c99-9780247a7ffd",
      "application_id": "f10c04c2-2273-4463-bd3f-593d71b75ac8",
      "created_at": 1760105642.045,
      "credential_id": "4e6e181d-f320-4874-8d80-fc2253b40b7e",
      "request": {
        "size": "large",
        "duration": 15,
        "orientation": "landscape",
        "prompt": "chat courant sur la rivière",
        "model": "sora-2",
        "image_urls": [
          "https://cdn.xhuoapi.ai/11wfp4.png"
        ],
        "callback_url": "https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa"
      },
      "trace_id": "fb751e1e-4705-49ea-9fd4-5024b7865ea2",
      "type": "videos",
      "user_id": "ad7afe47-cea9-4cda-980f-2ad8810e51cf",
      "response": {
        "success": true,
        "task_id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea",
        "trace_id": "fb751e1e-4705-49ea-9fd4-5024b7865ea2",
        "data": [
          {
            "id": "sora-2:task_01k777hjrbfrgs2060q5zvf2a5",
            "video_url": "https://filesystem.site/gptimage/vg-assets/assets%2Ftask_01k777hjrbfrgs2060q5zvf2a5%2Ftask_01k777hjrbfrgs2060q5zvf2a5_genid_b8e2e5d1-a579-49ca-a21c-cb3869685cce_25_10_10_14_15_147334%2Fvideos%2F00000%2Fsrc.mp4?st=2025-10-10T12%3A38%3A49Z&se=2025-10-16T13%3A38%3A49Z&sks=b&skt=2025-10-10T12%3A38%3A49Z&ske=2025-10-16T13%3A38%3A49Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=p4aMqXqkP%2FI1IhOVGCB9JL8vUUvfNBBF12ESpKhKXOk%3D&az=oaivgprodscus",
            "state": "succeeded"
          }
        ]
      }
    },
    {
      "_id": "68e914aa550a4144a5788305",
      "id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea",
      "api_id": "54aed96c-0346-4227-8c99-9780247a7ffd",
      "application_id": "f10c04c2-2273-4463-bd3f-593d71b75ac8",
      "created_at": 1760105642.045,
      "credential_id": "4e6e181d-f320-4874-8d80-fc2253b40b7e",
      "request": {
        "size": "large",
        "duration": 15,
        "orientation": "landscape",
        "prompt": "chat courant sur la rivière",
        "model": "sora-2",
        "image_urls": [
          "https://cdn.xhuoapi.ai/11wfp4.png"
        ],
        "callback_url": "https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa"
      },
      "trace_id": "fb751e1e-4705-49ea-9fd4-5024b7865ea2",
      "type": "videos",
      "user_id": "ad7afe47-cea9-4cda-980f-2ad8810e51cf",
      "response": {
        "success": true,
        "task_id": "b8976e18-32dc-4718-9ed8-1ea090fcb6ea",
        "trace_id": "fb751e1e-4705-49ea-9fd4-5024b7865ea2",
        "data": [
          {
            "id": "sora-2:task_01k777hjrbfrgs2060q5zvf2a5",
            "video_url": "https://filesystem.site/gptimage/vg-assets/assets%2Ftask_01k777hjrbfrgs2060q5zvf2a5%2Ftask_01k777hjrbfrgs2060q5zvf2a5_genid_b8e2e5d1-a579-49ca-a21c-cb3869685cce_25_10_10_14_15_147334%2Fvideos%2F00000%2Fsrc.mp4?st=2025-10-10T12%3A38%3A49Z&se=2025-10-16T13%3A38%3A49Z&sks=b&skt=2025-10-10T12%3A38%3A49Z&ske=2025-10-16T13%3A38%3A49Z&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skoid=aa5ddad1-c91a-4f0a-9aca-e20682cc8969&skv=2019-02-02&sv=2018-11-09&sr=b&sp=r&spr=https%2Chttp&sig=p4aMqXqkP%2FI1IhOVGCB9JL8vUUvfNBBF12ESpKhKXOk%3D&az=oaivgprodscus",
            "state": "succeeded"
          }
        ]
      }
    }
  ],
  "count": 2
}
```

返回结果一共有多个字段，其中items是包含了批量视频任务的具体详情信息，每个视频任务的具体信息与上文的字段一样，字段信息如下。

* `items`，批量视频任务的所有具体详情信息。它是一个数组，每个数组的元素和上文查询单个任务的返回结果格式是一样的。
* `count`，此处批量查询视频任务的个数。

#### CURL

```bash theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/sora/tasks' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "ids": ["b8976e18-32dc-4718-9ed8-1ea090fcb6ea","b8976e18-32dc-4718-9ed8-1ea090fcb6ea"],
  "action": "retrieve_batch"
}'
```

#### Python

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/sora/tasks"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "ids": ["b8976e18-32dc-4718-9ed8-1ea090fcb6ea","b8976e18-32dc-4718-9ed8-1ea090fcb6ea"],
    "action": "retrieve_batch"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

## Gestion des erreurs

Lors de l'appel de l'API, si une erreur se produit, l'API renverra le code d'erreur et les informations correspondantes. Par exemple :

* `400 token_mismatched` : Mauvaise requête, probablement en raison de paramètres manquants ou invalides.
* `400 api_not_implemented` : Mauvaise requête, probablement en raison de paramètres manquants ou invalides.
* `401 invalid_token` : Non autorisé, jeton d'autorisation invalide ou manquant.
* `429 too_many_requests` : Trop de requêtes, vous avez dépassé la limite de taux.
* `500 api_error` : Erreur interne du serveur, quelque chose s'est mal passé sur le serveur.

### Exemple de réponse d'erreur

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "échec de la récupération"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Conclusion

Grâce à ce document, vous avez compris comment utiliser l'API Sora Tasks pour interroger des tâches vidéo individuelles ou en lot avec tous les détails spécifiques. Nous espérons que ce document vous aidera à mieux intégrer et utiliser cette API. Si vous avez des questions, n'hésitez pas à contacter notre équipe de support technique.
