Endpoints Détaillés
Référence complète de tous les endpoints avec paramètres.
1. Soumissions
Créer une soumission
POST /api/v1/projects/{project}/submissions
Body (JSON) :
{
"form_version_id": 1,
"latitude": -4.3219,
"longitude": 15.3128,
"altitude": 350,
"precision": 10,
"data": [
{
"field_uuid": "uuid-du-champ",
"value": "Jean Dupont",
"type": "text"
},
{
"field_uuid": "uuid-age",
"value": 35,
"type": "integer"
},
{
"field_uuid": "uuid-photo",
"value": "base64...",
"type": "photo"
}
]
}
Types de données acceptés
| Type | Format valeur | Colonne BDD |
|---|---|---|
text | String | value_text |
integer | Number | value_integer |
decimal | Number | value_decimal |
date | "YYYY-MM-DD" | value_date |
time | "HH:MM:SS" | value_time |
select_one | String | value_text |
select_multiple | Array | value_json |
geopoint | Array [lat, lng, alt, prec] | value_json |
photo | Base64 ou File | media_file_path |
2. Filtres pour les soumissions
GET /api/v1/projects/{project}/submissions?status=submitted&date_from=2026-01-01&date_to=2026-06-30&per_page=50&search=dupont
| Paramètre | Type | Description |
|---|---|---|
status | String | submitted, draft, reviewed, rejected, requires_correction |
date_from | Date | YYYY-MM-DD |
date_to | Date | YYYY-MM-DD |
collector_id | Integer | ID du collecteur |
search | String | Recherche dans les valeurs |
per_page | Integer | 1-100 (défaut: 15) |
3. Publication
POST /api/v1/workspaces/{workspace}/projects/{project}/publish
Body (JSON) :
{
"collect_access": "public",
"submission_limit": 1000,
"collect_starts_at": "2026-07-01T00:00:00Z",
"collect_expires_at": "2026-12-31T23:59:59Z",
"allow_multiple_submissions": true,
"allow_edits": false,
"require_consent": true,
"consent_text": "J'accepte que mes données soient utilisées...",
"notify_on_submission": true,
"notification_emails": ["admin@exemple.com"]
}
4. Export
POST /api/v1/projects/{project}/submissions/export
Body (JSON) :
{
"format": "csv",
"filters": {
"date_from": "2026-01-01",
"status": "submitted"
}
}
Réponse :
{
"status": "success",
"data": {
"job_id": "uuid-xxxx",
"message": "Export en cours. Vous recevrez une notification."
}
}
5. Synchronisation offline
POST /api/v1/sync
Body (JSON) :
{
"device_id": "android-abc123",
"submissions": [
{
"local_id": "local-uuid-1",
"data": [...],
"client_updated_at": "2026-06-25T12:00:00Z"
}
]
}
La liste complète des endpoints est disponible dans le fichier
routes/api.php de votre installation.