Guia de integracion API REST
Conecte sus aplicaciones a AILabsAudit mediante la API REST. Obtenga auditorias, clientes, informes y analiticas programaticamente.
Tabla de contenido
Requisitos previos
Antes de integrar la API REST, asegurese de tener:
Una cuenta Enterprise o Partner
El acceso a la API requiere un plan Enterprise 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 que lista todos los 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 8 grupos de endpoints. Todas las URLs tienen el prefijo https://ailabsaudit.com/api/v1/.
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 |
Documentacion completa
Para la lista completa de endpoints, parametros y esquemas de respuesta, consulte la documentacion Swagger interactiva.
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?
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