API de données ouvertes pour le Burkina Faso
Consultez une documentation maintenue depuis OpenAPI, interrogez le catalogue, automatisez les imports et lancez des exports depuis vos outils terrain, SIG ou tableaux de bord.
Authorization: Bearer <access_token>
Base URL: https://api.fasodata.com
Format: application/json
Upload: multipart/form-data1.0.0
Version API
32
Endpoints
30 req/s
Limite dev
100 lignes
Pagination max
Démarrage rapide
Authentifiez-vous puis listez les datasets publics.
curl -X POST "https://api.fasodata.com/api/auth/login" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "username=demo@ong.bf&password=********"
curl "https://api.fasodata.com/api/datasets?page=1&page_size=10" \
-H "Authorization: Bearer $FASODATA_TOKEN"Authentification
L'API utilise OAuth2 password flow. Le endpoint `/api/auth/login` retourne un `access_token` pour les appels API et un `refresh_token` pour renouveler la session.
Header requis
Authorization: Bearer <access_token>
Quotas & limites
Rate limit dev : 30 requêtes/seconde, burst 50 via Nginx.
Pagination : `page_size` entre 1 et 100 selon les listes.
Upload : taille maximale proxy 50 Mo.
Geo bbox : limite maximale 5 000 features.
Versions & maintenance
La référence ci-dessous est générée depuis le schéma OpenAPI exposé par le backend.
Version courante exposee par FastAPI et documentee via OpenAPI.
Endpoints prix multi-pays, webhooks et SDK publics stabilises.
Référence endpoints
Routes chargées automatiquement depuis /openapi.json.
| Méthode | Endpoint | Tag | Accès | Description |
|---|---|---|---|---|
| GET | /api/health | General | Public | Etat du service API et version courante. |
| POST | /api/auth/register | General | Institution | Cree un acces contributeur institutionnel. |
| POST | /api/auth/login | General | Public | Retourne un access token et un refresh token. |
| POST | /api/auth/refresh | General | Public | Renouvelle une session avec un refresh token. |
| GET | /api/auth/me | General | Bearer | Profil du compte connecte. |
| GET | /api/datasets | General | Public | Catalogue pagine des datasets publies. |
| POST | /api/datasets | General | Institution | Cree un dataset brouillon. |
| GET | /api/datasets/my | General | Bearer | Datasets de l'utilisateur connecte. |
| GET | /api/datasets/{slug} | General | Public | Fiche detaillee d'un dataset. |
| PATCH | /api/datasets/{slug} | General | Institution | Met a jour les metadonnees ou le statut. |
| GET | /api/datasets/{slug}/preview | General | Public | Apercu tabulaire limite a 200 lignes. |
| GET | /api/datasets/{slug}/stats | General | Public | Nombre de lignes, colonnes et metadonnees. |
| GET | /api/datasets/{slug}/download | General | Public | Lien de telechargement temporaire. |
| POST | /api/datasets/{slug}/upload | General | Institution | Importe un CSV/XLSX et lance un job Celery. |
| GET | /api/datasets/{slug}/jobs | General | Institution | Historique des imports d'un dataset. |
| GET | /api/datasets/jobs/{job_id} | General | Institution | Etat d'un job d'import. |
| GET | /api/search | General | Public | Recherche plein texte multi-index ou dataset cible. |
| GET | /api/geo/{dataset_id}/bbox | General | Public | Features GeoJSON dans une emprise. |
| GET | /api/geo/{dataset_id}/centroid | General | Public | Centre, bbox et total d'un dataset geo. |
| POST | /api/reports/{dataset_id}/export/csv | General | Institution | Lance un export CSV asynchrone. |
| GET | /api/reports/tasks/{task_id} | General | Institution | Recupere l'etat ou le resultat d'une tache. |
| GET | /api/users | General | Admin | Liste paginee des utilisateurs. |
| PATCH | /api/users/me | General | Bearer | Met a jour le profil connecte. |
| GET | /api/dashboard/alert-rules | General | Public | Liste les regles d'alerte configurees. |
| POST | /api/dashboard/alert-rules | General | Institution | Cree une regle de seuil et notification. |
| GET | /api/dashboard/system-metrics | General | Public | Historique des metriques techniques. |
| POST | /api/dashboard/system-metrics | General | Admin | Enregistre une mesure de supervision. |
| GET | /api/dashboard/team-members | General | Bearer | Liste les membres d'equipe d'une organisation. |
| POST | /api/dashboard/team-members | General | Institution | Invite ou rattache un membre d'equipe. |
| GET | /api/dashboard/quality-checks | General | Public | Liste les controles qualite datasets. |
| POST | /api/dashboard/quality-checks | General | Institution | Cree un controle qualite avec anomalies. |
| PATCH | /api/dashboard/quality-issues/{issue_id}/resolve | General | Institution | Marque une anomalie qualite comme resolue. |
SDK snippets
Bases réutilisables pour intégrer FasoData dans un service ou un notebook.
export FASODATA_TOKEN="<access_token>"
curl "https://api.fasodata.com/api/search?q=prix%20mil" \
-H "Authorization: Bearer $FASODATA_TOKEN"
curl "https://api.fasodata.com/api/prices/latest?region=National&sources=wfp" \
-H "Authorization: Bearer $FASODATA_TOKEN"Catalogue
Filtrez par catégorie, statut et texte libre avec pagination standard.
Recherche
Interrogez Meilisearch sur tous les datasets indexés ou un dataset ciblé.
Géospatial
Récupérez des FeatureCollections par bbox et les centroides PostGIS.
Exports
Lancez des exports CSV asynchrones et suivez les tâches Celery.
Comptes
Gérez inscription, login, refresh token et profil utilisateur.
Monitoring
Healthcheck public et métriques Prometheus disponibles côté API.
Erreurs API
Les erreurs suivent le format FastAPI standard avec un champ `detail`.
Bad Request
Parametres invalides ou compte desactive.
Unauthorized
Token absent, expire ou invalide.
Forbidden
Role insuffisant pour la ressource.
Not Found
Dataset, utilisateur ou ressource introuvable.
Conflict
Email deja utilise ou ressource dupliquee.
Validation Error
Payload ou fichier non conforme.
Prêt pour developers.fasodata.com
Cette page peut être servie sous `/developers` ou mappée sur le sous-domaine `developers.fasodata.com` par le reverse proxy.