Lister les tâches
GET https://dloopiq.onrender.com/api/v1/tasks
Authorization: Bearer <jwt_acheteur>
Paramètres de requête
| Paramètre | Type | Description |
|---|---|---|
status | string | Filtrer par statut : PENDING, VALIDATING, COMPLETED, FAILED |
type | string | Filtrer par type : SENTIMENT_ANALYSIS, etc. |
projectId | string | Filtrer par projet |
locale | string | Filtrer par langue |
limit | number | Nombre de résultats par page (défaut: 20, max: 100) |
cursor | string | Curseur de pagination (valeur nextCursor de la page précédente) |
Exemple
# Première page — tâches complétées
curl "https://dloopiq.onrender.com/api/v1/tasks?status=COMPLETED&limit=20" \
-H "Authorization: Bearer eyJhbGci..."
Réponse
{
"tasks": [
{
"id": "cmpkb4ghw00016qduu44p7n2q",
"type": "SENTIMENT_ANALYSIS",
"content": "Ce produit est fantastique !",
"options": ["Positif", "Négatif", "Neutre"],
"status": "COMPLETED",
"result": "Positif",
"confidence": 0.87,
"locale": "fr",
"costCents": 20,
"totalResponses": 3,
"createdAt": "2026-05-25T10:00:00Z",
"validatedAt": "2026-05-25T10:05:00Z"
}
],
"nextCursor": "cmpkb4ghw00016qduu44p7n2r",
"hasMore": true
}
Pagination curseur
async function getAllCompletedTasks() {
const tasks = []
let cursor: string | null = null
do {
const url = new URL('https://dloopiq.onrender.com/api/v1/tasks')
url.searchParams.set('status', 'COMPLETED')
url.searchParams.set('limit', '100')
if (cursor) url.searchParams.set('cursor', cursor)
const res = await fetch(url, {
headers: { 'Authorization': `Bearer ${JWT}` }
})
const data = await res.json()
tasks.push(...data.tasks)
cursor = data.nextCursor
} while (cursor)
return tasks
}
Consulter une tâche
GET https://dloopiq.onrender.com/api/v1/tasks/:id
Authorization: Bearer <jwt_acheteur>
curl "https://dloopiq.onrender.com/api/v1/tasks/cmpkb4ghw00016qduu44p7n2q" \
-H "Authorization: Bearer eyJhbGci..."
Réponse complète
{
"id": "cmpkb4ghw00016qduu44p7n2q",
"type": "SENTIMENT_ANALYSIS",
"content": "Ce produit est fantastique !",
"options": ["Positif", "Négatif", "Neutre"],
"status": "COMPLETED",
"result": "Positif",
"confidence": 0.87,
"locale": "fr",
"costCents": 20,
"responses": [
{ "answer": "Positif", "timeSpentMs": 3200 },
{ "answer": "Positif", "timeSpentMs": 2100 },
{ "answer": "Neutre", "timeSpentMs": 4500 }
],
"totalResponses": 3,
"validationsNeeded": 3,
"createdAt": "2026-05-25T10:00:00Z",
"validatedAt": "2026-05-25T10:05:00Z"
}
Mettre à jour une tâche
PATCH https://dloopiq.onrender.com/api/v1/tasks/:id
Authorization: Bearer <jwt_acheteur>
Content-Type: application/json
PENDING peuvent être modifiées.
curl -X PATCH "https://dloopiq.onrender.com/api/v1/tasks/cmpkb4ghw00016qduu44p7n2q" \
-H "Authorization: Bearer eyJhbGci..." \
-H "Content-Type: application/json" \
-d '{
"maxCents": 30,
"validationsNeeded": 5
}'
Erreurs courantes
| Code | HTTP | Description |
|---|---|---|
TASK_NOT_FOUND | 404 | ID introuvable ou n’appartient pas à votre compte |
UNAUTHORIZED | 401 | JWT manquant ou expiré |
TASK_NOT_PENDING | 400 | Tentative de modification d’une tâche non-PENDING |