Keyword Analysis API
API de análisis de palabras clave priorizando agentes para investigación en vivo de SERP, scraping de páginas y síntesis de palabras clave SEO.
Documentación
keyword-analysis-api
API de análisis de palabras clave orientada a agentes para investigación de SERP en vivo, extracción de páginas y síntesis de palabras clave.
Resumen
Este servicio está diseñado para LLMs y agentes estilo MCP que necesiten:
- crear una cuenta sin un flujo web tradicional
- verificar la propiedad de un correo electrónico con un código de un solo uso
- ejecutar análisis de palabras clave en vivo contra resultados de Google
- recibir resultados estructurados orientados a SEO centrados en recuento de palabras y densidad de palabras clave
- diferir la configuración de facturación hasta que se agote el uso gratuito
El producto es mayormente sin interfaz. La interacción humana solo se requiere para:
- leer el código de verificación del correo electrónico
- completar la configuración de facturación alojada de Stripe cuando se agote el uso gratuito
Flujo de Autenticación
-
POST /auth/create-accountCrear o reanudar una cuenta pendiente para una dirección de correo electrónico. -
POST /auth/verify-accountEnviar el código de un solo uso enviado por correo. Al tener éxito, devuelve un token de API. -
Usar el token de API como:
Authorization: Bearer <token>X-API-Key: <token>
Conector MCP
- Endpoint MCP:
GET/POST /mcp - Metadatos OAuth:
GET /.well-known/oauth-authorization-server - Autorización OAuth:
GET /oauth/authorize - Intercambio de token OAuth:
POST /oauth/token - Registro dinámico de cliente:
POST /oauth/register
El servidor MCP expone envoltorios de herramientas para:
- estado de la cuenta
- resumen de uso
- análisis de palabras clave en cola
- consulta y listado de trabajos
- configuración de facturación
Endpoint Principal
POST /keyword-analysis/analyze
Poner en cola un trabajo de análisis de palabras clave que:
- obtenga resultados de SERP en vivo de Bright Data
- extraiga los mejores resultados con Jina Reader
- calcule el recuento objetivo sugerido de palabras
- puntúe candidatos de palabras clave primarias y secundarias del corpus de páginas clasificadas
- recomiende la palabra clave primaria respaldada por clasificación más fuerte para la consulta original del usuario
- use un paso de limpieza LLM restringido para elegir las palabras clave secundarias más fuertes de esos candidatos
- calcule objetivos de densidad de palabras clave primarias y secundarias del corpus de páginas clasificadas
Entrada
{
"keyword": "ai teaching assistant",
"top_n_results": 5,
"include_page_content": false
}
Salida
Devuelve:
keywordsuggested_word_counttotal_results_analyzedresultsanalysis.primary_keywordanalysis.primary_keyword_densityanalysis.secondary_keywords
Notas:
keywordes la consulta original del usuarioanalysis.primary_keywordes el objetivo de palabra clave primaria recomendado respaldado por clasificaciónresultscontiene solo las páginas realmente utilizadas en el análisis y cada elemento incluyeanalysis_rank
Resumen de OpenAPI
Autenticación
POST /auth/create-accountPOST /auth/verify-accountGET /auth/account-statusGET /auth/usage-summary
Facturación
POST /billing/start-billing-setupPOST /billing/stripe/webhooksGET /billing/setup/successGET /billing/setup/cancel
Análisis de Palabras Clave
POST /keyword-analysis/analyze
Descubrimiento
GET /GET /mcpGET /.well-known/oauth-authorization-serverGET /llms.txtGET /.well-known/llms.txtGET /openapi.json
Endpoints de Cuenta y Facturación
GET /auth/account-status
Obtener estado verificado, estado de facturación y disponibilidad de búsqueda gratuita.
GET /auth/usage-summary
Obtener uso gratuito, uso de pago, búsquedas exitosas y búsquedas fallidas.
POST /billing/start-billing-setup
Devolver una URL de Stripe alojada para configuración de método de pago o gestión de facturación.
POST /billing/stripe/webhooks
Endpoint de webhook de Stripe para actualizaciones de estado de facturación.
Flujos de Ejemplo
1. Crear Cuenta
Solicitud:
{
"email": "user@example.com"
}
Respuesta:
{
"pending_user_id": "pending_abcd1234",
"verification_required": true,
"expires_in_seconds": 600,
"delivery_method": "smtp"
}
En desarrollo, delivery_method puede ser console y verification_code puede incluirse directamente.
2. Verificar Cuenta
Solicitud:
{
"pending_user_id": "pending_abcd1234",
"code": "123456"
}
Respuesta:
{
"account_id": 1,
"email": "user@example.com",
"api_token": "kaa_xxxxx",
"billing_status": "unconfigured",
"free_searches_remaining": 25
}
3. Verificar Estado de la Cuenta
Respuesta:
{
"account_id": 1,
"email": "user@example.com",
"email_verified": true,
"billing_configured": false,
"billing_status": "unconfigured",
"free_searches_remaining": 25,
"paid_usage_enabled": false,
"usage_this_month": 0
}
4. Ejecutar Análisis de Palabras Clave
Solicitud:
{
"keyword": "ai teaching assistant",
"top_n_results": 5,
"include_page_content": false
}
Forma de la respuesta:
{
"keyword": "auto body repair pearland tx",
"suggested_word_count": 550,
"total_results_analyzed": 4,
"results": [
{
"analysis_rank": 1,
"title": "Collision Repair in Pearland",
"url": "https://example.com/pearland-collision-repair",
"rank": 1,
"word_count": 612,
"scrape_error": null
}
],
"analysis": {
"primary_keyword": "collision repair pearland",
"primary_keyword_density": {
"keyword": "collision repair pearland",
"occurrence_count": 4,
"occurrences_per_result": 1.0,
"total_word_count": 2287,
"density_percentage": 0.17
},
"secondary_keywords": [
{
"keyword": "collision repair",
"occurrence_count": 13,
"occurrences_per_result": 3.25,
"total_word_count": 2287,
"density_percentage": 0.57
}
]
}
}
5. Iniciar Configuración de Facturación
Respuesta:
{
"billing_status": "unconfigured",
"url": "https://checkout.stripe.com/...",
"mode": "checkout_setup",
"stripe_customer_id": "cus_123"
}
Patrón de Respuesta de Facturación Requerida
Cuando se agota el uso gratuito y la facturación no está configurada, la API puede devolver HTTP 402 con un objeto de detalle como:
{
"message": "Billing setup required",
"billing_url": "https://checkout.stripe.com/..."
}
Modelo de Facturación
- Las primeras 25 búsquedas exitosas son gratuitas
- La facturación solo se requiere después de agotar el uso gratuito
- Las búsquedas fallidas no deben facturarse
- Las búsquedas exitosas se miden por solicitud completada de análisis de palabras clave
Guía para Agentes
- Si la creación de cuenta devuelve un código de verificación en desarrollo, úsalo directamente
- En producción, pide al humano que revise el correo para obtener el código
- Si el análisis devuelve una respuesta de facturación requerida, muestra la URL de facturación alojada al usuario
- Prefiere
top_n_results=5a menos que sea necesaria una muestra competitiva más grande - Usa
include_page_content=falsepor defecto para minimizar el tamaño de la carga útil
Mejores Prácticas para Agentes
- Trata
create-accountyverify-accountcomo un protocolo de dos pasos - No reintentes la verificación a ciegas después de un código incorrecto; pide al usuario que revise el correo nuevamente
- Almacena el token de API devuelto de forma segura para futuras llamadas
- En HTTP
402, pausa el flujo de análisis y presenta la URL de facturación alojada al humano - Reintenta fallos transitorios ascendentes de forma conservadora; evita ráfagas repetidas de búsqueda
- No asumas que cada solicitud de SERP devolverá el mismo conjunto de clasificaciones a lo largo del tiempo y la geografía
- Trata
analysis.primary_keywordcomo el objetivo recomendado ykeywordcomo la consulta original del usuario - Usa
account-statusantes de solicitar facturación al usuario si no estás seguro de si queda uso gratuito - Considera
usage-summarycomo la fuente de verdad para mensajes de cuota del lado del agente - Usa 5 resultados por defecto para velocidad y costo a menos que el usuario solicite explícitamente un análisis más profundo
- Si ocurre extracción parcial pero se devuelve un análisis válido, trata la solicitud como exitosa a menos que la API indique lo contrario
Endpoints de Descubrimiento
GET /GET /llms.txtGET /.well-known/llms.txtGET /openapi.json
Notas
- Este servicio está optimizado para análisis rápido y estructurado de palabras clave en lugar de flujos amplios de suites SEO
- Está diseñado para ser más fácil y económico de usar que una plataforma SEO completa cuando la única necesidad es investigación rápida de palabras clave en vivo