Para desarrolladores
Referencia de la API
Integra la optimización con IA de DEXUN AdWhiz para tres plataformas en tus propias herramientas, scripts o backend mediante REST.
URL base
Todas las solicitudes a la API van a esta raíz:
https://www.7275.com/api/v1HTTPS es obligatorio. Las solicitudes HTTP se rechazan (no se redirigen).
Autenticación
Todas las solicitudes necesitan un token Bearer en el encabezado Authorization. Genera uno en el panel → Configuración → API Keys. Las keys vienen en versiones live y test, y cada una solo accede a su propio entorno.
curl https://www.7275.com/api/v1/accounts \
-H "Authorization: Bearer dxk_live_...your-key..."- Formato de key live: empieza por dxk_live_, 64 caracteres
- Formato de key test: empieza por dxk_test_, limitada a la cuenta sandbox
- Nunca uses keys en código front-end: pásalas por tu propio backend como proxy
- Si se filtra una key, revócala y genera otra de inmediato en el panel
Úsalo directamente desde Claude Desktop / Cursor (servidor MCP)
Publicamos un servidor Model Context Protocol sin dependencias para que clientes MCP como Claude Desktop y Cursor lean directamente el estado de tu AdWhiz. Sin escribir código: copia un bloque de configuración, pega tu API key y reinicia el cliente.
- Cinco herramientas de solo lectura: listar cuentas publicitarias, ver recomendaciones de IA, obtener el ahorro de este mes, ver actividad reciente y consultar la cuota de API
- Las herramientas de escritura (apply / pause) aún no se exponen a propósito: esperan a que el optimizador salga del shadow mode y tengamos evidencia de calibración para habilitarlas
- Un único script para Node 18+. Sin npm install. Funciona sin problemas en equipos sin conexión / aislados (airgapped)
- Tu API key nunca sale de tu equipo. Todas las solicitudes van por HTTPS directo a www.7275.com
Añade esto al claude_desktop_config.json de Claude Desktop (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"adwhiz": {
"command": "node",
"args": ["/path/to/mcp-server/src/index.mjs"],
"env": {
"ADWHIZ_API_KEY": "dxk_live_..."
}
}
}
}Guía de instalación completa, configuración de Cursor y solución de problemas en GitHub: github.com/dexun-inc/adwhiz/mcp-server.
Endpoints
La API v1 expone 13 endpoints principales que cubren identidad, lectura de cuentas, generación de recomendaciones (aplicarlas aún no está disponible), registros de auditoría, gestión de API keys, consulta de cuota y el feed del changelog.
| Método | Ruta | Descripción |
|---|---|---|
| GET | /me | Devuelve el propietario del token que llama + la cuota de rate limit restante (whoami) |
| GET | /accounts | Lista todas las cuentas publicitarias que el usuario actual ha conectado (en las tres plataformas) |
| GET | /accounts/{id}/campaigns | Lista campañas, grupos de anuncios, palabras clave y métricas de 7/30 días de una cuenta |
| POST | /recommendations/generate | Pide a la IA que genere un nuevo lote de recomendaciones de optimización |
| GET | /recommendations | Lista todas las recomendaciones pendientes / aplicadas / descartadas |
| POST | /recommendations/{id}/apply | Aplicar una recomendación — aún no disponible: devuelve 501 not_supported y no cambia nada |
| POST | /recommendations/{id}/dismiss | Descartar una recomendación — aún no disponible: devuelve 501 not_supported y no cambia nada |
| POST | /changes/{id}/rollback | Revertir un cambio aplicado — aún no disponible: devuelve 501 not_supported y no cambia nada |
| GET | /audit-log | (Obsoleto, se retira el 2027-05-23) Registro de auditoría completo. Usa /audit-events en su lugar: se basa en la tabla real audit_events y admite el filtro ?kind |
| GET | /audit-events | Flujo de eventos de auditoría de seguridad (inicio de sesión / contraseña / OAuth / suscripción), con filtros ?since + ?kind |
| GET | /api-keys | Lista las API keys de quien llama (incl. lastUsedAt + active); hashedKey nunca se devuelve |
| GET | /usage | Lee el tier actual, el límite de RPM, lo restante y reset_at sin hacer una solicitud de prueba |
| GET | /changelog | Feed JSON del changelog del producto (público, sin autenticación) con ETag + ?lang + ?limit (1..50) + ?since=YYYY-MM-DD: el formato canónico de consulta incremental |
Solicitud de ejemplo
Genera nuevas recomendaciones de optimización para las tres plataformas:
curl -X POST https://www.7275.com/api/v1/recommendations/generate \
-H "Authorization: Bearer dxk_live_..." \
-H "Content-Type: application/json" \
-d '{
"account_id": "ga-548-203-7184",
"platforms": ["google_ads", "meta_ads", "tiktok_ads"],
"window": "7d"
}'Respuesta de ejemplo:
{
"summary": "Pausing 3 high-CPA keywords and reallocating budget...",
"recommendations": [
{
"id": "rec_001",
"type": "pause_keyword",
"target": { "accountId": "ga-548-203-7184", "keywordText": "wool socks" },
"title": "Pause broad-match 'wool socks'",
"reason": "7-day CPA $45.82 vs target $8",
"expectedImpact": "Save ~$412/week",
"confidence": "high"
}
]
}Consulta incremental de /changelog
/api/v1/changelog es un endpoint público (no requiere API key) con cuatro opciones para ahorrar ancho de banda: ETag + If-None-Match, Last-Modified + If-Modified-Since (curl -z), ?since=YYYY-MM-DD para filtrar por fecha y ?limit=N para limitar el tamaño. Los SDK y scripts de cron pueden combinarlas para consultar con frecuencia sin volver a descargar el mismo JSON.
# 1. First call — store the ETag (or Last-Modified) you get back.
curl -i 'https://www.7275.com/api/v1/changelog?limit=10'
# 2. Subsequent calls — pass the stored ETag.
# Server returns 304 with empty body if nothing has shipped.
curl -i 'https://www.7275.com/api/v1/changelog?limit=10' \
-H 'If-None-Match: "abc123..."'
# 3. Or anchor on a date instead of an ETag.
# Only entries whose `date >= since` come back; pair with ?limit
# to cap the response size.
curl 'https://www.7275.com/api/v1/changelog?since=2026-01-01&limit=20'
# 4. curl -z for Last-Modified-style conditional GET (no ETag needed):
curl -z 'Mon, 20 May 2026 00:00:00 GMT' \
'https://www.7275.com/api/v1/changelog'Límites de frecuencia
Escalonados por plan de suscripción para no saturar las cuotas de Google / Meta / TikTok:
- Gratis (sin plan): 60 solicitudes/minuto
- Inicial: 120 solicitudes/minuto
- Personal: 120 solicitudes/minuto
- Estándar: 600 solicitudes/minuto
- Empresa: 3000 solicitudes/minuto
- Al superar el límite se devuelve 429 + encabezado retry-after; se recomienda backoff exponencial
Códigos de error
Todos los errores devuelven JSON con error.code, error.message y error.request_id:
| Estado HTTP | Significado |
|---|---|
401 | API key ausente o no válida |
403 | La cuenta no tiene autorización para este recurso (scope de OAuth insuficiente) |
404 | Recurso no encontrado o eliminado |
422 | Parámetros de solicitud no válidos |
429 | Límite de frecuencia superado: espera lo que indique el encabezado retry-after |
500 | Error del servidor: se reporta automáticamente |
503 | API de la plataforma de origen no disponible temporalmente (Google / Meta / TikTok) |