Search the knowledge base, browse our resources, and visit our forum for more detailed information
Read in English | Leer en español | اقرأ باللغة العربية Dernière mise à jour : 7 août 2025
Dans le cadre de nos efforts continus pour rationaliser et moderniser la plateforme KoboToolbox, nous supprimons progressivement les points de terminaison KPI et KoboCAT v1. Tous les points de terminaison KPI et KoboCAT v1 sont désormais obsolètes et seront entièrement supprimés en janvier 2026. Les points de terminaison v1 sont progressivement supprimés au profit de l’API KPI v2, plus robuste et entièrement prise en charge.
Cet article explique comment migrer vos intégrations API de l’API v1 (KoboCAT et KPI) vers l’API KPI v2. Il couvre chaque point de terminaison v1 obsolète et son équivalent v2 pour vous aider à faire la transition de vos flux de travail.
La migration de l’ancienne API KPI (v1) vers la nouvelle version (v2) est simple dans la plupart des cas.
En général, vous devez uniquement mettre à jour le chemin de base de /endpoint/ vers /api/v2/endpoint/.
La seule exception à la règle ci-dessus concerne le point de terminaison /exports/. Dans v1, le point de terminaison /exports/ renvoyait tous les exports pour l’utilisatrice ou utilisateur authentifié sur tous les projets.
Dans v2, pour des raisons de performance, les exports sont désormais limités par projet et doivent être accessibles via /api/v2/assets/{asset_uid}/exports/.
La section suivante répertorie les principaux points de terminaison de l’API KoboCAT v1 et fournit leurs équivalents v2.
Ce point de terminaison renvoie une liste de formulaires auxquels vous avez accès, avec des liens vers leurs données de soumission, servant de point d’entrée pour accéder ou télécharger les réponses.
Correspondance des points de terminaison de v1 à v2
Point de terminaison |
Équivalent |
|---|---|
|
|
Correspondance des champs de v1 à v2
Champ |
Équivalent |
|---|---|
|
|
|
|
|
|
|
|
|
|
1 Dans le point de terminaison /api/v2/assets, les identifiants entiers séquentiels ne sont plus utilisés. Chaque entrée est identifiée de manière unique par un uid alphanumérique
Exemple de réponse v1
{
"id": 474,
"id_string": "a4etXeWtqcoodSxLV8a6Uq",
"title": "Pathways Initiative",
"description": "Pathways Initiative",
"url": "https://kc.kobotoolbox.org/api/v1/data/474.json"
}
Réponse équivalente v2
{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/",
"uid": "a4etXeWtqcoodSxLV8a6Uq",
"name": "Pathways Initiative",
"settings": {
"description": "A humanitarian project supporting access"
},
"data": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/data/"
...
}
Ces points de terminaison récupèrent toutes les données de soumission pour un projet spécifique ou une seule soumission du projet. {uid} est l’identifiant unique du projet et {submission_id} est l’identifiant unique d’une soumission de formulaire.
Point de terminaison |
Équivalent |
|---|---|
|
|
|
|
En vous basant sur l”url que vous obtenez de la propriété data dans le point de terminaison asset, vous pouvez récupérer les données de soumission dans v2.
Remarque : La structure de réponse est presque identique, sauf que v2 introduit la pagination.
Exemple de réponse v1
[
{
"_id": 49542,
...
}
]
Réponse équivalente v2
{
"count": 1200,
"next": null,
"previous": null,
"results": [
{
"_id": 49542,
...
}
]
}
Ces points de terminaison renvoient les attributs détaillés de tous les formulaires partagés avec vous ou d’un formulaire spécifique, où {uid} est l’identifiant unique du projet.
Correspondance des points de terminaison
Point de terminaison |
Équivalent |
|---|---|
|
|
|
|
Remarque : Le point de terminaison v2 suit la même structure pour chaque élément que celle listée ci-dessous, mais introduit la pagination. Certaines propriétés du point de terminaison v1 ne sont pas directement disponibles sur le point de terminaison asset v2, mais elles peuvent toujours être accessibles différemment (voir la légende sous le tableau pour plus de détails).
Correspondance des champs
Champ |
Équivalent |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
N/A3 |
|
N/A3 |
|
N/A3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A4 |
1 Dans le point de terminaison /api/v2/assets, les identifiants entiers séquentiels ne sont plus utilisés. Chaque entrée est identifiée de manière unique par un uid alphanumérique.
2 Dans v1, les balises étaient renvoyées sous forme de tableau ; dans v2, elles sont renvoyées sous forme de chaîne séparée par des virgules.
3 Ces champs ne sont plus exposés. Voir la section Permissions ci-dessous pour plus de détails.
4 Non directement accessible via le point de terminaison asset. Utilisez le point de terminaison /api/v2/asset_usage/ et récupérez le champ storage_bytes du projet correspondant.
v1{
"url": "https://kf.kobotoolbox.org/api/v1/forms/474",
"formid": 474,
"metadata": [],
"owner": "project_owner",
"public": false,
"public_data": false,
"require_auth": true,
"tags": ["my_tag", "my_other_tag"],
"title": "Pathways Initiative",
"users": [
{
"user": "project_owner",
"permissions": [
"add_xform",
"change_xform",
"delete_data_xform",
"delete_xform",
"move_xform",
"report_xform",
"transfer_xform",
"validate_xform",
"view_xform"
]
}
],
"hash": "md5:65ee54b6412379b0e35b27a97d606c29",
"downloadable": true,
"encrypted": false,
"id_string": "a4etXeWtqcoodSxLV8a6Uq",
"last_submission_time": "2025-06-03T15:16:20.838131Z",
"uuid": "f739945244514a6bb304dc35d6049880",
"instances_with_geopoints": false,
"num_of_submissions": 1200,
"attachment_storage_bytes": 27240767883
}
v2{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/",
"owner__username": "project_owner",
"files": [],
"summary": {
"geo": false
},
"version__content_hash": "05be1113c6ae66665059fea5943ce90a97d966db",
"deployment__active": true,
"deployment__submission_count": 1200,
"deployment__last_submission_time": "2025-06-03T15:16:20.838131Z",
"deployment__encrypted": false,
"deployment__uuid": "f739945244514a6bb304dc35d6049880",
"tag_string": "my_tag,my_other_tag",
"uid": "a4etXeWtqcoodSxLV8a6Uq",
"name": "Pathways Initiative",
"permissions": [
{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/permission-assignments/pQnggGHaPGGmJtPCbCCVpU/",
"user": "https://kf.kobotoolbox.org/api/v2/users/project_owner/",
"permission": "https://kf.kobotoolbox.org/api/v2/permissions/add_submissions/",
"label": "Add submissions"
},
{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/permission-assignments/pcn2g8ezroevNsP7CuCkrf/",
"user": "https://kf.kobotoolbox.org/api/v2/users/project_owner/",
"permission": "https://kf.kobotoolbox.org/api/v2/permissions/change_asset/",
"label": "Edit form"
},
{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/permission-assignments/pVMKQ4bDSn5SCAgefzMRLX/",
"user": "https://kf.kobotoolbox.org/api/v2/users/project_owner/",
"permission": "https://kf.kobotoolbox.org/api/v2/permissions/change_submissions/",
"label": "Edit submissions"
},
{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/permission-assignments/pwoCoBBLmyWsdF2dXPBaHt/",
"user": "https://kf.kobotoolbox.org/api/v2/users/project_owner/",
"permission": "https://kf.kobotoolbox.org/api/v2/permissions/delete_submissions/",
"label": "Delete submissions"
},
{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/permission-assignments/pqDGr7M7au4NsFiuKkEeTr/",
"user": "https://kf.kobotoolbox.org/api/v2/users/project_owner/",
"permission": "https://kf.kobotoolbox.org/api/v2/permissions/manage_asset/",
"label": "Manage project"
},
{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/permission-assignments/p3dFAXPvHX3ib93twD7rPG/",
"user": "https://kf.kobotoolbox.org/api/v2/users/project_owner/",
"permission": "https://kf.kobotoolbox.org/api/v2/permissions/validate_submissions/",
"label": "Validate submissions"
},
{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/permission-assignments/pE38Wi89CavBvNHGqQ2WZj/",
"user": "https://kf.kobotoolbox.org/api/v2/users/project_owner/",
"permission": "https://kf.kobotoolbox.org/api/v2/permissions/view_asset/",
"label": "View form"
},
{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/permission-assignments/pWeJkdjjFk9cQVFvLnr6cS/",
"user": "https://kf.kobotoolbox.org/api/v2/users/project_owner/",
"permission": "https://kf.kobotoolbox.org/api/v2/permissions/view_submissions/",
"label": "View submissions"
}
]
}
Les balises dans v1 et v2 ne partagent pas la même base de données sous-jacente. Par conséquent, les balises de v1 ne seront pas automatiquement migrées vers v2. Si vous devez les conserver, vous devez réappliquer les balises manuellement en utilisant une requête PATCH vers /api/v2/assets/{uid}/.
Exemple de charge utile :
{ "tag_string": "tag1,tag2,tag3" }
Permissions
Dans v2, les champs public, public_data et require_auth ne sont plus exposés en tant qu’attributs booléens. Au lieu de cela, l’accès anonyme est contrôlé via des attributions de permissions explicites à l”AnonymousUser.
Les correspondances suivantes s’appliquent :
public: true → l”AnonymousUser a la permission view_asset
public_data: true → l”AnonymousUser a la permission view_submissions
require_auth: false → l”AnonymousUser a la permission add_submissions
v2[
{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/permission-assignments/pqEVtLkmHerjBYcEWBcZPG/",
"user": "https://kf.kobotoolbox.org/api/v2/users/AnonymousUser/",
"permission": "https://kf.kobotoolbox.org/api/v2/permissions/add_submissions/",
"label": "Add submissions"
},
{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/permission-assignments/phjb8xYQ9CjcLuXfnpZCHu/",
"user": "https://kf.kobotoolbox.org/api/v2/users/AnonymousUser/",
"permission": "https://kf.kobotoolbox.org/api/v2/permissions/view_asset/",
"label": "View form"
},
{
"url": "https://kf.kobotoolbox.org/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/permission-assignments/pQpqWikpQbjzeVCJgHoubH/",
"user": "https://kf.kobotoolbox.org/api/v2/users/AnonymousUser/",
"permission": "https://kf.kobotoolbox.org/api/v2/permissions/view_submissions/",
"label": "View submissions"
}
]
Le point de terminaison /api/v1/forms/<pk>/labels de v1 renvoie un dictionnaire mappant chaque nom de champ du formulaire à son étiquette correspondante, permettant un affichage plus convivial des données du formulaire.
Ce point de terminaison n’a pas été porté vers v2, mais il est toujours possible d”étiqueter ou de baliser un projet, comme décrit ci-dessus.
Ces points de terminaison renvoient une liste plate de tous les fichiers médias associés à l’utilisatrice ou utilisateur actuel, sur tous les projets déployés ou un projet spécifique. Dans v2, les fichiers médias sont désormais limités par projet. Comme pour les autres points de terminaison, v2 introduit la pagination, alors que v1 renvoie tous les résultats en une seule réponse.
Correspondance des points de terminaison
Point de terminaison |
Équivalent |
|---|---|
|
|
|
|
Remarque : v2 ne prend en charge que les fichiers médias : media de v1 est mappé à form_media dans v2. Les autres types de métadonnées de v1 (par exemple, doc, mapbox_layer, source etc.) n'ont pas été portés vers v2.
Correspondance des champs
Champ |
Équivalent |
|---|---|
|
|
|
|
|
N/A1 |
|
|
|
|
|
|
|
|
|
|
|
N/A |
1 Dans v2, le projet associé est accessible via le champ asset, qui contient une URL complète au lieu d’un ID entier.
Exemple de réponse v1
{
"id": 271,
"xform": 374,
"data_value": "goose.jpg",
"data_type": "media",
"data_file": "/project_owner/form-media/b44a7c2cd0f244e6b405821582364657/goose.jpg",
"data_file_type": "image/jpeg",
"file_hash": "md5:93fb96bced1e3b392abfc22934afe51a",
"url": "https://kc.kobotoolbox.org/api/v1/metadata/271?format=json",
"from_kpi": true,
"data_filename": "goose.jpg"
}
Réponse équivalente v2
{
"uid": "afoeCcF3AcGNpWUoM6bvKj9",
"asset": "http://kf.kobo.localhost/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/",
"file_type": "form_media",
"content": "http://kf.kobo.localhost/api/v2/assets/a4etXeWtqcoodSxLV8a6Uq/files/afoeCcF3AcGNpWUoM6bvKj9/content/",
"metadata": {
"hash": "md5:93fb96bced1e3b392abfc22934afe51a",
"filename": "goose.jpg",
"mimetype": "image/jpeg"
},
...
}
Ce point de terminaison renvoie les informations de profil sur l’utilisatrice ou utilisateur authentifié, y compris l’identité du compte et les détails associés.
Correspondance des points de terminaison
Point de terminaison |
Équivalent |
|---|---|
|
|
Correspondance des champs
Champ |
Équivalent |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N/A1 |
|
N/A1 |
|
|
|
|
|
N/A2 |
|
N/A1 |
1 Non porté vers v2
2 Utilisez https://kf.domain.tld/token à la place
Did you find what you were looking for? Was the information clear? Was anything missing?
Share your feedback to help us improve this article!
KoboToolbox is maintained by Kobo Inc.