Guide d'integration API REST GEO/AEO
Connectez vos applications a l'API d'audit GEO d'AILabsAudit. 105 endpoints pour recuperer audits, clients, rapports, GEO checklists et analytics programmatiquement.
Sommaire
Prerequis
Avant d'integrer l'API REST, assurez-vous de disposer de :
Un compte Agent ou Partenaire
L'acces a l'API necessite un plan Agent ou superieur, ou le statut partenaire. Demandez l'acces si vous n'en avez pas encore.
Une cle API REST
Vous aurez besoin d'une cle API (format aila_...) generee depuis la page API & Integrations.
Un client HTTP
N'importe quel client HTTP convient : curl, Python requests, JavaScript fetch, Postman, etc.
Obtenir sa cle API
Votre cle API est la meme que celle utilisee pour les connexions MCP. Si vous en avez deja une, vous pouvez l'utiliser directement.
Aller dans API & Integrations
Naviguez vers Compte → API & Integrations dans votre tableau de bord.
Creer une nouvelle cle
Cliquez sur "Creer une cle API", donnez-lui un nom (ex. "Mon App") et selectionnez les permissions souhaitees.
Copier et stocker en securite
Votre cle commence par aila_. Copiez-la immediatement — elle ne sera plus affichee. Stockez-la dans une variable d'environnement, jamais dans votre code source.
Astuce
Vous pouvez aussi explorer l'API de maniere interactive via notre documentation Swagger multilingue (/api/v1/docs?lang=fr|en|es|de) qui liste les 105 endpoints disponibles.
Authentification
L'API supporte deux methodes d'authentification. Choisissez celle qui convient a votre stack :
Methode 1 : Header X-Api-Key
curl -H "X-Api-Key: aila_your_key_here" \
https://ailabsaudit.com/api/v1/clients
Methode 2 : Authorization Bearer
curl -H "Authorization: Bearer aila_your_key_here" \
https://ailabsaudit.com/api/v1/clients
Securite
N'exposez jamais votre cle API dans du code cote client (JavaScript dans le navigateur). Effectuez toujours les appels API depuis votre serveur (backend).
Premiere requete
Verifions que votre connexion fonctionne en recuperant la liste de vos clients :
curl -s -H "X-Api-Key: aila_your_key_here" \
https://ailabsaudit.com/api/v1/clients | python3 -m json.tool
Reponse reussie (200 OK)
{
"success": true,
"data": [
{
"id": 42,
"name": "Acme Corp",
"sector": "Technology",
"website": "https://acme.com",
"country": "FR",
"created_at": "2025-01-15T10:30:00Z"
}
],
"pagination": {
"page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
}
}
C'est tout !
Si vous voyez la liste de vos clients, votre cle API fonctionne. Vous pouvez maintenant explorer tous les endpoints disponibles ci-dessous.
Endpoints
L'API est organisee en 12 groupes d'endpoints totalisant 105 endpoints. Toutes les URLs sont prefixees par https://ailabsaudit.com/api/v1/. Les endpoints de contenu acceptent un parametre optionnel ?lang=fr|en|es|de pour des reponses multilingues.
Clients
| Methode | Endpoint | Description |
|---|---|---|
| GET | /clients |
Lister tous les clients |
| GET | /clients/{id} |
Detail d'un client |
| GET | /clients/{id}/contacts |
Contacts du client |
| GET | /clients/{id}/competitors |
Concurrents du client |
| GET | /clients/{id}/360 |
Vue 360 complete |
Audits
| Methode | Endpoint | Description |
|---|---|---|
| GET | /audits |
Lister les audits |
| GET | /audits/{id} |
Detail d'un audit |
| GET | /audits/{id}/results |
Resultats d'un audit |
| GET | /audits/{id}/scores |
Scores de visibilite |
| POST | /audits/launch |
Lancer un nouvel audit |
Rapports
| Methode | Endpoint | Description |
|---|---|---|
| GET | /reports |
Lister les rapports |
| GET | /reports/{id} |
Detail d'un rapport |
| GET | /reports/{id}/download |
Telecharger le PDF |
Plans d'action
| Methode | Endpoint | Description |
|---|---|---|
| GET | /action-plans |
Lister les plans d'action |
| GET | /action-plans/{id} |
Detail d'un plan |
| GET | /action-plans/{id}/progress |
Progression du plan |
Questionnaires
| Methode | Endpoint | Description |
|---|---|---|
| GET | /questionnaires |
Lister les questionnaires |
| GET | /questionnaires/{id}/responses |
Reponses du questionnaire |
Analytics
| Methode | Endpoint | Description |
|---|---|---|
| GET | /analytics/portfolio |
Vue d'ensemble du portfolio |
| GET | /analytics/leaderboard |
Classement de visibilite |
| GET | /analytics/scores/distribution |
Distribution des scores |
Modeles
| Methode | Endpoint | Description |
|---|---|---|
| GET | /models |
Lister les modeles IA disponibles |
| GET | /models/{id} |
Detail du modele & tarifs |
Compte
| Methode | Endpoint | Description |
|---|---|---|
| GET | /account/profile |
Votre profil |
| GET | /account/credits |
Solde de credits |
| GET | /account/subscription |
Info abonnement |
Blog ?lang=
| Methode | Endpoint | Description |
|---|---|---|
| GET | /blog?lang=fr|en|es|de |
Lister les articles du blog (multilingue) |
| GET | /blog/{slug} |
Detail d'un article |
Glossaire ?lang=
| Methode | Endpoint | Description |
|---|---|---|
| GET | /glossary?lang=fr|en|es|de |
Lister les termes du glossaire (multilingue) |
| GET | /glossary/{slug} |
Detail d'un terme |
GEO Checklist & URLs hallucinees
| Methode | Endpoint | Description |
|---|---|---|
| GET | /clients/{id}/geo-checklist |
Checklist d'optimisation GEO |
| GET | /clients/{id}/hallucinated-urls |
URLs hallucinees detectees par les modeles IA |
Audits programmes
| Methode | Endpoint | Description |
|---|---|---|
| GET | /scheduled-audits |
Lister les audits programmes |
| POST | /scheduled-audits |
Creer un audit programme |
| PUT | /scheduled-audits/{id} |
Modifier un audit programme |
| DELETE | /scheduled-audits/{id} |
Supprimer un audit programme |
Documentation complete
L'API documente 16 schemas (Client, Audit, GeoChecklist, BlogArticle, GlossaryTerm, HallucinatedUrl, etc.), les headers de rate limit et le support CORS. Consultez la liste complete des 105 endpoints, parametres et schemas de reponse dans la documentation Swagger interactive multilingue (/api/v1/docs?lang=fr|en|es|de).
Pagination & filtres
Tous les endpoints de liste supportent la pagination via des parametres de requete :
| Parametre | Defaut | Description |
|---|---|---|
page |
1 |
Numero de page |
per_page |
20 |
Elements par page (max 100) |
Exemple avec pagination
curl -H "X-Api-Key: aila_your_key_here" \
"https://ailabsaudit.com/api/v1/audits?page=2&per_page=10"
Objet pagination dans la reponse
{
"pagination": {
"page": 2,
"per_page": 10,
"total": 47,
"total_pages": 5
}
}
Erreurs & rate limiting
Codes de statut HTTP
| Code | Signification |
|---|---|
200 | Succes |
400 | Requete invalide (parametres incorrects) |
401 | Non autorise (cle API absente ou invalide) |
403 | Interdit (permissions insuffisantes) |
404 | Non trouve |
429 | Limite de requetes atteinte |
500 | Erreur serveur |
Format de reponse en erreur
{
"success": false,
"error": {
"code": 401,
"message": "Invalid or missing API key"
}
}
Rate limiting
L'API autorise 60 requetes par minute par cle API. Les headers de reponse incluent les informations de limite :
X-RateLimit-Limit: 60 X-RateLimit-Remaining: 58 X-RateLimit-Reset: 1709472000
Si vous atteignez la limite
Lorsque vous recevez une reponse 429, attendez le timestamp X-RateLimit-Reset avant de reessayer. Implementez un backoff exponentiel dans votre code pour la production.
Exemples de code
Voici des exemples complets pour demarrer dans votre langage prefere :
import requests
API_KEY = "aila_your_key_here"
BASE_URL = "https://ailabsaudit.com/api/v1"
headers = {"X-Api-Key": API_KEY}
# List clients
response = requests.get(f"{BASE_URL}/clients", headers=headers)
clients = response.json()
for client in clients["data"]:
print(f"{client['name']} — {client['sector']}")
# Get audits for each client
audits = requests.get(
f"{BASE_URL}/audits",
headers=headers,
params={"client_id": client["id"], "per_page": 5}
).json()
for audit in audits["data"]:
print(f" Audit #{audit['id']} — Score: {audit.get('score', 'N/A')}")
# Download a report as PDF
report_id = 1
r = requests.get(
f"{BASE_URL}/reports/{report_id}/download",
headers=headers
)
if r.status_code == 200:
with open(f"report_{report_id}.pdf", "wb") as f:
f.write(r.content)
print(f"Report saved: report_{report_id}.pdf")
const API_KEY = "aila_your_key_here";
const BASE_URL = "https://ailabsaudit.com/api/v1";
const headers = { "X-Api-Key": API_KEY };
// List clients
async function getClients() {
const response = await fetch(`${BASE_URL}/clients`, { headers });
const { data, pagination } = await response.json();
console.log(`${pagination.total} clients found`);
data.forEach(client => {
console.log(`${client.name} — ${client.sector}`);
});
return data;
}
// Get audit results
async function getAuditResults(auditId) {
const response = await fetch(
`${BASE_URL}/audits/${auditId}/results`,
{ headers }
);
return await response.json();
}
// Paginate through all audits
async function getAllAudits() {
let page = 1;
let allAudits = [];
while (true) {
const response = await fetch(
`${BASE_URL}/audits?page=${page}&per_page=50`,
{ headers }
);
const { data, pagination } = await response.json();
allAudits.push(...data);
if (page >= pagination.total_pages) break;
page++;
}
return allAudits;
}
getClients().then(console.log);
<?php
$apiKey = "aila_your_key_here";
$baseUrl = "https://ailabsaudit.com/api/v1";
function apiRequest($endpoint, $params = []) {
global $apiKey, $baseUrl;
$url = $baseUrl . $endpoint;
if (!empty($params)) {
$url .= "?" . http_build_query($params);
}
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-Api-Key: $apiKey"],
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode !== 200) {
throw new Exception("API error: HTTP $httpCode");
}
return json_decode($response, true);
}
// List clients
$clients = apiRequest("/clients");
foreach ($clients["data"] as $client) {
echo "{$client['name']} — {$client['sector']}\n";
}
// Get audits with pagination
$audits = apiRequest("/audits", [
"page" => 1,
"per_page" => 10
]);
echo "Total audits: {$audits['pagination']['total']}\n";
// Get client 360 view
$client360 = apiRequest("/clients/42/360");
print_r($client360["data"]);
Pret a integrer l'API GEO/AEO ?
Creez votre cle API en 30 secondes et commencez a construire votre integration.
CommencerPrêt à auditer votre visibilité IA ?
Créez votre compte gratuitement et recevez 500 crédits bonus.
Créer un compte gratuit