Guia de integracion API REST GEO/AEO
Conecte sus aplicaciones a la API GEO de AILabsAudit. 105 endpoints para obtener auditorias, clientes, informes, GEO checklists y analiticas programaticamente.
Tabla de contenido
Requisitos previos
Antes de integrar la API REST, asegurese de tener:
Una cuenta Agent o Partner
El acceso a la API requiere un plan Agent o superior, o estatus de partner. Solicite acceso si aun no lo tiene.
Una clave API REST
Necesitara una clave API (formato aila_...) generada desde la pagina API e Integraciones.
Un cliente HTTP
Cualquier cliente HTTP funciona: curl, Python requests, JavaScript fetch, Postman, etc.
Obtener su clave API
Su clave API es la misma que se usa para conexiones MCP. Si ya tiene una, puede usarla directamente.
Ir a API e Integraciones
Navegue a Cuenta → API e Integraciones en su panel de control.
Crear una nueva clave
Haga clic en "Crear clave API", asigne un nombre (ej. "Mi App") y seleccione los permisos deseados.
Copiar y guardarla de forma segura
Su clave empieza por aila_. Copiela inmediatamente — no se mostrara de nuevo. Guardela en una variable de entorno, nunca en su codigo fuente.
Consejo
Tambien puede explorar la API de forma interactiva a traves de nuestra documentacion Swagger multilingue (/api/v1/docs?lang=fr|en|es|de) que lista los 105 endpoints disponibles.
Autenticacion
La API soporta dos metodos de autenticacion. Elija el que se adapte a su stack:
Metodo 1: Header X-Api-Key
curl -H "X-Api-Key: aila_your_key_here" \
https://ailabsaudit.com/api/v1/clients
Metodo 2: Authorization Bearer
curl -H "Authorization: Bearer aila_your_key_here" \
https://ailabsaudit.com/api/v1/clients
Seguridad
Nunca exponga su clave API en codigo del lado del cliente (JavaScript en el navegador). Siempre haga las llamadas API desde su servidor (backend).
Primera peticion
Verifiquemos que su conexion funciona obteniendo su lista de clientes:
curl -s -H "X-Api-Key: aila_your_key_here" \
https://ailabsaudit.com/api/v1/clients | python3 -m json.tool
Respuesta exitosa (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
}
}
Listo!
Si ve su lista de clientes, su clave API esta funcionando. Ahora puede explorar todos los endpoints disponibles a continuacion.
Endpoints
La API esta organizada en 12 grupos de endpoints con un total de 105 endpoints. Todas las URLs tienen el prefijo https://ailabsaudit.com/api/v1/. Los endpoints de contenido aceptan un parametro opcional ?lang=fr|en|es|de para respuestas multilingues.
Clientes
| Metodo | Endpoint | Description |
|---|---|---|
| GET | /clients |
Listar todos los clientes |
| GET | /clients/{id} |
Detalle del cliente |
| GET | /clients/{id}/contacts |
Contactos del cliente |
| GET | /clients/{id}/competitors |
Competidores del cliente |
| GET | /clients/{id}/360 |
Vista 360 completa |
Audits
| Metodo | Endpoint | Description |
|---|---|---|
| GET | /audits |
Listar auditorias |
| GET | /audits/{id} |
Detalle de auditoria |
| GET | /audits/{id}/results |
Resultados de auditoria |
| GET | /audits/{id}/scores |
Puntuaciones de visibilidad |
| POST | /audits/launch |
Lanzar una nueva auditoria |
Informes
| Metodo | Endpoint | Description |
|---|---|---|
| GET | /reports |
Listar informes |
| GET | /reports/{id} |
Detalle del informe |
| GET | /reports/{id}/download |
Descargar PDF |
Planes de accion
| Metodo | Endpoint | Description |
|---|---|---|
| GET | /action-plans |
Listar planes de accion |
| GET | /action-plans/{id} |
Detalle del plan |
| GET | /action-plans/{id}/progress |
Progreso del plan |
Cuestionarios
| Metodo | Endpoint | Description |
|---|---|---|
| GET | /questionnaires |
Listar cuestionarios |
| GET | /questionnaires/{id}/responses |
Respuestas del cuestionario |
Analytics
| Metodo | Endpoint | Description |
|---|---|---|
| GET | /analytics/portfolio |
Vision general del portfolio |
| GET | /analytics/leaderboard |
Ranking de visibilidad |
| GET | /analytics/scores/distribution |
Distribucion de puntuaciones |
Modelos
| Metodo | Endpoint | Description |
|---|---|---|
| GET | /models |
Listar modelos IA disponibles |
| GET | /models/{id} |
Detalle del modelo y precios |
Cuenta
| Metodo | Endpoint | Description |
|---|---|---|
| GET | /account/profile |
Su perfil |
| GET | /account/credits |
Saldo de creditos |
| GET | /account/subscription |
Info de suscripcion |
Blog ?lang=
| Metodo | Endpoint | Description |
|---|---|---|
| GET | /blog?lang=fr|en|es|de |
Listar articulos del blog (multilingue) |
| GET | /blog/{slug} |
Detalle del articulo |
Glosario ?lang=
| Metodo | Endpoint | Description |
|---|---|---|
| GET | /glossary?lang=fr|en|es|de |
Listar terminos del glosario (multilingue) |
| GET | /glossary/{slug} |
Detalle del termino |
GEO Checklist & URLs alucinadas
| Metodo | Endpoint | Description |
|---|---|---|
| GET | /clients/{id}/geo-checklist |
Checklist de optimizacion GEO |
| GET | /clients/{id}/hallucinated-urls |
URLs alucinadas detectadas por modelos IA |
Auditorias programadas
| Metodo | Endpoint | Description |
|---|---|---|
| GET | /scheduled-audits |
Listar auditorias programadas |
| POST | /scheduled-audits |
Crear una auditoria programada |
| PUT | /scheduled-audits/{id} |
Actualizar una auditoria programada |
| DELETE | /scheduled-audits/{id} |
Eliminar una auditoria programada |
Documentacion completa
La API documenta 16 esquemas (Client, Audit, GeoChecklist, BlogArticle, GlossaryTerm, HallucinatedUrl, etc.), headers de rate limit y soporte CORS. Explore la lista completa de 105 endpoints, parametros y esquemas de respuesta en la documentacion Swagger interactiva multilingue (/api/v1/docs?lang=fr|en|es|de).
Paginacion y filtros
Todos los endpoints de lista soportan paginacion mediante parametros de consulta:
| Parametro | Por defecto | Description |
|---|---|---|
page |
1 |
Numero de pagina |
per_page |
20 |
Elementos por pagina (max 100) |
Ejemplo con paginacion
curl -H "X-Api-Key: aila_your_key_here" \
"https://ailabsaudit.com/api/v1/audits?page=2&per_page=10"
Objeto de paginacion en la respuesta
{
"pagination": {
"page": 2,
"per_page": 10,
"total": 47,
"total_pages": 5
}
}
Errores y rate limiting
Codigos de estado HTTP
| Code | Significado |
|---|---|
200 | Exito |
400 | Peticion incorrecta (parametros invalidos) |
401 | No autorizado (clave API ausente o invalida) |
403 | Prohibido (permisos insuficientes) |
404 | No encontrado |
429 | Limite de peticiones excedido |
500 | Error del servidor |
Formato de respuesta de error
{
"success": false,
"error": {
"code": 401,
"message": "Invalid or missing API key"
}
}
Rate limiting
La API permite 60 peticiones por minuto por clave API. Los headers de respuesta incluyen informacion de limites:
X-RateLimit-Limit: 60 X-RateLimit-Remaining: 58 X-RateLimit-Reset: 1709472000
Si alcanza el limite
Cuando reciba una respuesta 429, espere hasta el timestamp X-RateLimit-Reset antes de reintentar. Implemente backoff exponencial en su codigo para uso en produccion.
Ejemplos de codigo
Aqui tiene ejemplos completos para empezar en su lenguaje preferido:
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"]);
Listo para integrar la API GEO/AEO?
Cree su clave API en 30 segundos y empiece a construir su integracion.
Empezar¿Listo para auditar tu visibilidad en IA?
Crea tu cuenta gratuita y recibe 1000 créditos de bonificación.
Crear cuenta gratuita