FasoData Developers

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.

FasoData APIVersion 1.0.0OpenAPI 3.x
Authentification Bearer
Exemple
Authorization: Bearer <access_token>
Base URL: https://api.fasodata.com
Format: application/json
Upload: multipart/form-data

1.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.

Exemple
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.

v1Stable

Version courante exposee par FastAPI et documentee via OpenAPI.

v1.1A venir

Endpoints prix multi-pays, webhooks et SDK publics stabilises.

Référence endpoints

Routes chargées automatiquement depuis /openapi.json.

Schéma
General
MéthodeEndpointTagAccèsDescription
GET/api/healthGeneralPublicEtat du service API et version courante.
POST/api/auth/registerGeneralInstitutionCree un acces contributeur institutionnel.
POST/api/auth/loginGeneralPublicRetourne un access token et un refresh token.
POST/api/auth/refreshGeneralPublicRenouvelle une session avec un refresh token.
GET/api/auth/meGeneralBearerProfil du compte connecte.
GET/api/datasetsGeneralPublicCatalogue pagine des datasets publies.
POST/api/datasetsGeneralInstitutionCree un dataset brouillon.
GET/api/datasets/myGeneralBearerDatasets de l'utilisateur connecte.
GET/api/datasets/{slug}GeneralPublicFiche detaillee d'un dataset.
PATCH/api/datasets/{slug}GeneralInstitutionMet a jour les metadonnees ou le statut.
GET/api/datasets/{slug}/previewGeneralPublicApercu tabulaire limite a 200 lignes.
GET/api/datasets/{slug}/statsGeneralPublicNombre de lignes, colonnes et metadonnees.
GET/api/datasets/{slug}/downloadGeneralPublicLien de telechargement temporaire.
POST/api/datasets/{slug}/uploadGeneralInstitutionImporte un CSV/XLSX et lance un job Celery.
GET/api/datasets/{slug}/jobsGeneralInstitutionHistorique des imports d'un dataset.
GET/api/datasets/jobs/{job_id}GeneralInstitutionEtat d'un job d'import.
GET/api/searchGeneralPublicRecherche plein texte multi-index ou dataset cible.
GET/api/geo/{dataset_id}/bboxGeneralPublicFeatures GeoJSON dans une emprise.
GET/api/geo/{dataset_id}/centroidGeneralPublicCentre, bbox et total d'un dataset geo.
POST/api/reports/{dataset_id}/export/csvGeneralInstitutionLance un export CSV asynchrone.
GET/api/reports/tasks/{task_id}GeneralInstitutionRecupere l'etat ou le resultat d'une tache.
GET/api/usersGeneralAdminListe paginee des utilisateurs.
PATCH/api/users/meGeneralBearerMet a jour le profil connecte.
GET/api/dashboard/alert-rulesGeneralPublicListe les regles d'alerte configurees.
POST/api/dashboard/alert-rulesGeneralInstitutionCree une regle de seuil et notification.
GET/api/dashboard/system-metricsGeneralPublicHistorique des metriques techniques.
POST/api/dashboard/system-metricsGeneralAdminEnregistre une mesure de supervision.
GET/api/dashboard/team-membersGeneralBearerListe les membres d'equipe d'une organisation.
POST/api/dashboard/team-membersGeneralInstitutionInvite ou rattache un membre d'equipe.
GET/api/dashboard/quality-checksGeneralPublicListe les controles qualite datasets.
POST/api/dashboard/quality-checksGeneralInstitutionCree un controle qualite avec anomalies.
PATCH/api/dashboard/quality-issues/{issue_id}/resolveGeneralInstitutionMarque une anomalie qualite comme resolue.

SDK snippets

Bases réutilisables pour intégrer FasoData dans un service ou un notebook.

Exemple
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`.

400

Bad Request

Parametres invalides ou compte desactive.

401

Unauthorized

Token absent, expire ou invalide.

403

Forbidden

Role insuffisant pour la ressource.

404

Not Found

Dataset, utilisateur ou ressource introuvable.

409

Conflict

Email deja utilise ou ressource dupliquee.

422

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.