API

Documentation API v1

Interrogez les donnees agricoles d'Afrique de l'Ouest par programmation. Authentification par cle API, reponses JSON.

Base URL : https://agridata-ia.com/api/v1 Format : JSON Auth : API Key Plan : Entreprise

Sommaire

  1. Authentification
  2. Poser une question
  3. Gestion des cles API
  4. Codes d'erreur
  5. Limites et quotas
  6. Exemples de code

1. Authentification

Toutes les requetes API necessitent une cle API. Vous pouvez generer une cle depuis votre profil (plan Entreprise requis).

En-tete d'authentification

Deux methodes sont acceptees :

# Methode 1 : Header X-API-Key
X-API-Key: sk_live_votre_cle_ici

# Methode 2 : Header Authorization Bearer
Authorization: Bearer sk_live_votre_cle_ici
Important : Ne partagez jamais votre cle API. Elle donne acces a votre compte. Si votre cle est compromise, revoquez-la immediatement depuis votre profil.

2. Poser une question

Envoyez une question en langage naturel et recevez une reponse JSON synchrone avec les donnees structurees.

POST /api/v1/chat

Parametres (corps JSON)

Parametre Type Description
question requis string La question en langage naturel (1 a 2000 caracteres)
lang optionnel string Langue de la reponse : fr (defaut) ou en

Exemple de requete

curl -X POST https://agridata-ia.com/api/v1/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sk_live_votre_cle" \
  -d '{"question": "Prix du mais a Cotonou en 2024"}'

Reponse

{
  "answer": "Le prix moyen du mais a Cotonou en 2024...",
  "data": [
    {"marche": "Cotonou", "prix_moyen": 191, "unite": "FCFA/kg"}
  ],
  "sources": ["INStaD/IHPC"],
  "agent": "prix",
  "tokens_used": 450,
  "response_time_ms": 2300
}

Champs de la reponse

Champ Type Description
answer string Reponse en langage naturel
data array | null Donnees structurees (tableau, si applicable)
sources array | null Sources des donnees (INStaD, FAOSTAT, FAOLEX, DSA)
agent string | null Agent IA utilise : prix, production ou juridique
tokens_used integer | null Nombre de tokens LLM consommes
response_time_ms integer Temps de reponse en millisecondes

3. Gestion des cles API

Gerez vos cles API par programmation. Ces endpoints utilisent l'authentification JWT (cookie de session), pas la cle API.

Note : Les endpoints de gestion des cles necessitent une connexion via le site web (token JWT). Ils ne sont pas accessibles via cle API.

Lister les cles

GET /api/v1/keys

Generer une cle

POST /api/v1/keys
Parametre Type Description
name optionnel string Nom de la cle (max 100 caracteres, defaut : "Default")
Important : La cle complete n'est affichee qu'une seule fois lors de la creation. Copiez-la immediatement. Maximum 5 cles actives par utilisateur.

Revoquer une cle

DELETE /api/v1/keys/{key_id}

4. Codes d'erreur

Code Description
200 Succes
400 Requete invalide (parametre manquant ou incorrect)
401 Cle API invalide ou manquante
403 Acces refuse (plan insuffisant)
429 Quota depasse ou trop de requetes
500 Erreur interne du serveur
503 Service IA temporairement indisponible

Format des erreurs

{
  "detail": "Quota exceeded: 200/200 questions today."
}

5. Limites et quotas

Limite Valeur
Questions par jour 200 (plan Entreprise)
Questions par semaine 1000 (plan Entreprise)
Cles API actives 5 max
Longueur question 2000 caracteres max
Rate limiting 30 requetes par minute par IP

6. Exemples de code

Python

import requests

API_KEY = "sk_live_votre_cle_ici"
BASE_URL = "https://agridata-ia.com/api/v1"

response = requests.post(
    f"{BASE_URL}/chat",
    headers={"X-API-Key": API_KEY},
    json={"question": "Prix du riz a Parakou"}
)

data = response.json()
print(data["answer"])

# Donnees structurees
if data.get("data"):
    for row in data["data"]:
        print(row)

JavaScript (Node.js)

const API_KEY = "sk_live_votre_cle_ici";

const response = await fetch("https://agridata-ia.com/api/v1/chat", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "X-API-Key": API_KEY
  },
  body: JSON.stringify({
    question: "Production de mais au Nigeria en 2023"
  })
});

const data = await response.json();
console.log(data.answer);

cURL

curl -X POST https://agridata-ia.com/api/v1/chat \
  -H "Content-Type: application/json" \
  -H "X-API-Key: sk_live_votre_cle_ici" \
  -d '{"question": "Lois sur le foncier agricole au Benin", "lang": "fr"}'