brandfound. API
API para rastrear menciones de marca en asistentes de IA (ChatGPT, Gemini, Claude, Perplexity). Gestión de empresas, productos, competencia, consultas, menciones y analítica.
URL base
https://app.brandfound.ai/api/v1Playground
Pulsa en el panel de la solicitud para abrir el Playground interactivo. Selecciona una clave API, define los parámetros y envía la solicitud directamente desde la documentación.
120 / min60 / minUNAUTHORIZEDAutorización inválidaFORBIDDENPermisos insuficientesNOT_FOUNDRecurso no encontradoVALIDATION_ERRORError de validaciónRATE_LIMIT_EXCEEDEDLímite de tasa superadoINTERNAL_ERRORError internoNovedades de la versión 1.2
Las direcciones públicas de los métodos no han cambiado, se mantiene la compatibilidad.
La analítica vuelve a responder
Los métodos de Analítica, Enlaces y Publicidad devolvían un error 500 por un problema de nuestro lado. Corregido, no requiere acción por su parte.
Estado de la consulta visible
La lista de consultas ahora incluye answersCount, la lista real de asistentes en providers y el estado resumido queue.status. Antes providers siempre llegaba vacío.
Cola de consultas
queries/queue y queue/summary muestran qué se está consultando y cuánto cuesta. Las consultas detenidas por falta de FoxCoin se reanudan con queue/resume, solas no se reinician.
Saldo y gastos
billing/balance devuelve el saldo y los precios de todas las operaciones, billing/transactions el historial de cargos con la consulta asociada.
Idioma de la respuesta
El campo language ahora define el idioma de la respuesta. Funciona en ChatGPT, Gemini, Perplexity y DeepSeek.
Directorio de asistentes
El método sources devuelve los asistentes disponibles y marca los usados por defecto.
Monitorización
Una consulta puede programarse para ejecución periódica. Antes solo estaba disponible en la interfaz.
Tráfico de IA
Visitas al sitio desde respuestas de IA, comportamiento de visitantes, embudo y objetivos según Yandex.Metrica.
Commerce
Fichas de producto en respuestas de IA y el catálogo con el que se comparan.
La empresa pasa a ser obligatoria
Los métodos links, links/filter-options, analytics/links/top-domains, analytics/competitors/preview y advertising exigen companyId. Sin él la respuesta combinaba todas las empresas de la cuenta.
Autenticación
Todas las solicitudes a la API requieren autorización. Crea una clave API en la sección Configuración → Claves API. Las claves tienen el prefijo gfx_.
Pasa la clave en la cabecera Authorization de cada solicitud.
La aplicación web utiliza automáticamente la cookie session-token. No requiere configuración adicional.
Espacios de trabajo
Espacios de trabajo (workspaces / teams). Un token OAuth puede acceder a todos los espacios disponibles para el usuario: el suyo y aquellos donde sea ACCEPTED TeamMember. El espacio activo se guarda en ApiKey.activeAccountId; el cambio persiste y se aplica a todos los clientes MCP de esa clave desde la siguiente solicitud. El acceso se comprueba en cada solicitud: si se pierde la membresía, el middleware vuelve silenciosamente al accountId asignado durante OAuth, sin error 401. Al cambiar de espacio se restablece preferredCompanyId, vinculado al espacio anterior.
Listar espacios disponibles
/api/v1/workspacesDevuelve todos los workspaces (accountId) accesibles para el usuario actual: el suyo y aquellos donde sea ACCEPTED TeamMember. `isCurrent: true` indica el espacio que utiliza la clave API, teniendo en cuenta la sustitución activeAccountId.
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/workspacesRespuesta correcta
Cambiar el espacio activo de la clave API
/api/v1/workspaces/switchActualiza ApiKey.activeAccountId. El efecto persiste para TODAS las solicitudes posteriores de esa clave, incluidas las de otros clientes MCP. accountId=null elimina la sustitución y vuelve al accountId del token. preferredCompanyId se restablece a null porque pertenece al espacio anterior. Solo con autenticación mediante clave API.
Cuerpo de la solicitud
accountIdstringobligatorioUUID del workspace de destino. null elimina la sustitución activa y vuelve al accountId asignado durante OAuth.
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED403application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/workspaces/switchRespuesta correcta
Empresas
Gestión de empresas
Listar empresas
/api/v1/companiesDevuelve las empresas del usuario con sus productos, competidores y palabras clave.
Parámetros de consulta
offsetinteger= 0Desplazamiento de paginación
limitinteger= 20Número de registros por página
sortBystring= createdAtcreatedAtupdatedAtnamelastUsedAtsortOrderstring= descOrden de clasificación
ascdescsearchstringTexto de búsqueda, sin distinguir mayúsculas y minúsculas
categoryIdstring (uuid)Filtrar por categoría
countrystringFiltrar por país
createdAtFromstring (date-time)Inicio del intervalo de fechas de creación (ISO 8601)
createdAtTostring (date-time)Fin del intervalo de fechas de creación (ISO 8601)
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/companiesRespuesta correcta
Crear empresa
/api/v1/companiesCrea una empresa. El límite depende del plan contratado.
Cuerpo de la solicitud
namestringobligatoriodescriptionstringurlstringcategoryIdstringcountrystringISO 3166-1 alpha-2 («AE»). Se aceptan y normalizan nombres heredados («russia»). Es preferible usar regionTargets: este campo es heredado.
synonymsstring[]Sinónimos/nombres alternativos (máximo 20)
regionTargetsobject[]Países y ciudades de medición. Estado COMPLETO: se recrean los destinos anteriores. El destino primary define el país y el idioma de la generación automática de consultas.
defaultLanguageIdstringIdioma de las consultas generadas (GET /api/v1/geo/languages).
defaultResponseLanguageIdstringIdioma en el que debe responder la IA.
defaultLocalestringBCP-47, por ejemplo «ar-AE».
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/companiesRespuesta correcta
Obtener empresa
/api/v1/companies/{id}Devuelve la información completa de la empresa, incluidos productos, competidores y palabras clave.
Parámetros de consulta
idstring (uuid)obligatorioID de la empresa
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/companies/{id}Respuesta correcta
Actualizar empresa
/api/v1/companies/{id}Actualiza parcialmente una empresa. Envía solo los campos que cambian. Configuración regional: regionTargets define los países y ciudades de medición; el destino primary determina el país y el idioma de la selección automática de consultas (POST /api/v1/queries/autogenerate). countryId / cityId proceden de GET /api/v1/geo/countries y /api/v1/geo/cities, y defaultLanguageId de /api/v1/geo/languages. regionTargets representa el estado COMPLETO: los destinos anteriores se vuelven a crear. El campo isAutoGenerationEnabled está obsoleto: activarlo (true) se IGNORA. Era una opción de un programador eliminado que generaba consultas y las añadía inmediatamente a la cola de ejecuciones de pago.
Parámetros de consulta
idstring (uuid)obligatorioID de la empresa
Cuerpo de la solicitud
namestringdescriptionstringurlstringcategoryIdstringcountrystringISO 3166-1 alpha-2 («AE»). Se aceptan y normalizan nombres heredados («russia»). Es preferible usar regionTargets: este campo es heredado.
synonymsstring[]isAutoGenerationEnabledbooleanOBSOLETO e IGNORADO cuando vale true. Pertenecía a un programador eliminado que generaba consultas y las añadía inmediatamente a la cola de pago. Para generar sin ejecutar: POST /api/v1/queries/autogenerate.
regionTargetsobject[]Países y ciudades de medición. Estado COMPLETO: se recrean los destinos anteriores. El destino primary define el país y el idioma de la generación automática de consultas.
defaultLanguageIdstringIdioma de las consultas generadas (GET /api/v1/geo/languages).
defaultResponseLanguageIdstringIdioma en el que debe responder la IA.
defaultLocalestringBCP-47, por ejemplo «ar-AE».
autogenQueryTypesstring[]Tipos de consulta generados automáticamente. Por defecto: commercial, informational, comparative, reputational. Quitar comparative elimina las comparaciones «X vs Y» de las consultas generadas.
autogenQueriesPerRunintegerRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/companies/{id}Respuesta correcta
Archivar empresa
/api/v1/companies/{id}Archiva la empresa. Los datos se conservan, pero la empresa deja de aparecer en las listas.
Parámetros de consulta
idstring (uuid)obligatorioID de la empresa
Respuestas
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/companies/{id}Eliminado correctamente
Listar sectores
/api/v1/companies/categoriesValores categoryId permitidos al crear o actualizar una empresa.
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/companies/categoriesRespuesta correcta
Productos
Gestión de productos
Listar productos
/api/v1/productsDevuelve los productos con las empresas, palabras clave y competidores asociados.
Parámetros de consulta
offsetinteger= 0Desplazamiento de paginación
limitinteger= 20Número de registros por página
sortBystring= createdAtcreatedAtupdatedAtnamesortOrderstring= descOrden de clasificación
ascdesccompanyIdstring (uuid)Filtrar por empresa
searchstringTexto de búsqueda, sin distinguir mayúsculas y minúsculas
createdAtFromstring (date-time)Inicio del intervalo de fechas de creación (ISO 8601)
createdAtTostring (date-time)Fin del intervalo de fechas de creación (ISO 8601)
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/productsRespuesta correcta
Crear producto
/api/v1/productsCrea un producto asociado a una empresa.
Cuerpo de la solicitud
namestringobligatoriocompanyIdstringobligatoriodescriptionstringurlstringRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/productsRespuesta correcta
Obtener producto
/api/v1/products/{id}Devuelve la información completa del producto, incluidas sus palabras clave y competidores.
Parámetros de consulta
idstring (uuid)obligatorioID del producto
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/products/{id}Respuesta correcta
Actualizar producto
/api/v1/products/{id}Actualiza parcialmente un producto.
Parámetros de consulta
idstring (uuid)obligatorioID del producto
Cuerpo de la solicitud
namestringdescriptionstringurlstringRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/products/{id}Respuesta correcta
Archivar producto
/api/v1/products/{id}Archiva el producto. Los datos se conservan, pero el producto deja de aparecer en las listas.
Parámetros de consulta
idstring (uuid)obligatorioID del producto
Respuestas
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/products/{id}Eliminado correctamente
Competencia
Gestión de competidores
Listar competidores
/api/v1/competitorsDevuelve los competidores con las empresas, productos y palabras clave asociados.
Parámetros de consulta
offsetinteger= 0Desplazamiento de paginación
limitinteger= 20Número de registros por página
sortBystring= createdAtcreatedAtupdatedAtnamesortOrderstring= descOrden de clasificación
ascdesccompanyIdstring (uuid)Filtrar por empresa
productIdstring (uuid)Filtrar por producto
searchstringTexto de búsqueda, sin distinguir mayúsculas y minúsculas
createdAtFromstring (date-time)Inicio del intervalo de fechas de creación (ISO 8601)
createdAtTostring (date-time)Fin del intervalo de fechas de creación (ISO 8601)
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/competitorsRespuesta correcta
Crear competidor
/api/v1/competitorsCrea un competidor, que puede vincularse a una empresa o a un producto concreto.
Cuerpo de la solicitud
namestringobligatoriocompanyIdstringobligatorioproductIdstringurlstringRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/competitorsRespuesta correcta
Obtener competidor
/api/v1/competitors/{id}Devuelve la información completa del competidor y sus palabras clave.
Parámetros de consulta
idstring (uuid)obligatorioID del competidor
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/competitors/{id}Respuesta correcta
Actualizar competidor
/api/v1/competitors/{id}Actualiza el nombre y/o la URL del competidor.
Parámetros de consulta
idstring (uuid)obligatorioID del competidor
Cuerpo de la solicitud
namestringurlstringRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/competitors/{id}Respuesta correcta
Archivar competidor
/api/v1/competitors/{id}Archiva el competidor. Los datos se conservan, pero el competidor deja de aparecer en las listas.
Parámetros de consulta
idstring (uuid)obligatorioID del competidor
Respuestas
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/competitors/{id}Eliminado correctamente
Palabras clave
Intenciones (keywords): creación, cambio de nombre, archivo/eliminación, restore y asociación/desasociación masiva con empresas, productos y competidores
Listar intenciones
/api/v1/keywordsDevuelve las intenciones (keywords) del workspace actual. El filtro target admite solo uno de companyId | productId | competitorId. state controla el archivo: active (por defecto), archived o all.
Parámetros de consulta
offsetinteger= 0Desplazamiento de paginación
limitinteger= 20Número de registros por página
sortBystring= createdAtcreatedAtnamesortOrderstring= descOrden de clasificación
ascdescstatestring= activeFiltro de ciclo de vida: active (no archivados, por defecto), archived (solo archivados), all.
activearchivedallsearchstringSubcadena de name, sin distinguir mayúsculas y minúsculas.
companyIdstring (uuid)Solo intenciones con una asociación activa con esta empresa.
productIdstring (uuid)Solo intenciones con una asociación activa con este producto.
competitorIdstring (uuid)Solo intenciones con una asociación activa con este competidor.
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/keywordsRespuesta correcta
Crear o reutilizar una intención
/api/v1/keywordsBusca o crea por (name, userId). Si la intención existe, la reutiliza y la restaura si estaba archivada. El campo opcional attach: { companyId | productId | competitorId }, con exactamente un destino, vincula la intención con él en la misma transacción.
Cuerpo de la solicitud
namestringobligatorioattachobjectDestino de asociación/desasociación. Debe contener EXACTAMENTE UNO de los campos.
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/keywordsRespuesta correcta
Obtener una intención
/api/v1/keywords/{id}Devuelve la intención con sus asociaciones activas a empresas, productos y competidores.
Parámetros de consulta
idstring (uuid)obligatorioRespuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/keywords/{id}Respuesta correcta
Renombrar una intención
/api/v1/keywords/{id}El único campo editable es name. No se puede cambiar el nombre de una intención archivada: utiliza restore primero.
Parámetros de consulta
idstring (uuid)obligatorioCuerpo de la solicitud
namestringobligatorioRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/keywords/{id}Respuesta correcta
Archivar o eliminar una intención
/api/v1/keywords/{id}Por defecto, archiva la intención y todas sus asociaciones (soft-delete), reversible mediante POST /restore. ?permanent=true la elimina físicamente de la base; debe estar archivada o tener asociaciones archivadas. ?dryRun=true devuelve un informe de los elementos afectados sin ejecutar la operación.
Parámetros de consulta
idstring (uuid)obligatoriopermanentboolean= falsetrue elimina de forma irreversible de la base de datos. Requiere que el elemento esté archivado.
dryRunboolean= falsetrue devuelve un informe sin efectos secundarios.
Respuestas
204Eliminado correctamente
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/keywords/{id}Respuesta correcta
Restaurar una intención archivada
/api/v1/keywords/{id}/restoreElimina archivedAt del keyword y de sus asociaciones archivadas cuyas entidades superiores (company / product / competitor) aún existen. Las asociaciones con destinos eliminados permanecen archivadas.
Parámetros de consulta
idstring (uuid)obligatorioRespuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/keywords/{id}/restoreRespuesta correcta
Asociar intenciones en lote
/api/v1/keywords/attachPara cada name, busca o crea por (name, userId) y garantiza una asociación activa con target. Restaura las asociaciones archivadas. target requiere EXACTAMENTE UNO de companyId / productId / competitorId.
Cuerpo de la solicitud
targetobjectobligatorioDestino de asociación/desasociación. Debe contener EXACTAMENTE UNO de los campos.
namesstring[]obligatorioRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/keywords/attachRespuesta correcta
Desvincular intenciones en lote
/api/v1/keywords/detachArchiva las asociaciones activas keyword↔target. La intención sigue existiendo y puede vincularse con otros destinos. target requiere EXACTAMENTE UNO de companyId / productId / competitorId.
Cuerpo de la solicitud
targetobjectobligatorioDestino de asociación/desasociación. Debe contener EXACTAMENTE UNO de los campos.
keywordIdsstring[]obligatorioRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/keywords/detachRespuesta correcta
Consultas
Gestión de consultas a asistentes de IA
Listar consultas
/api/v1/queriesDevuelve las consultas a asistentes de IA con el número de respuestas. Admite filtros avanzados por sentimiento, grupos, regiones, favoritos, ámbito de búsqueda y rangos de indicadores de sentimiento. Consulta queue.status y answersCount para conocer el estado. providers indica las IA consultadas realmente. Detalles de las ejecuciones: GET /api/v1/queries/queue.
Parámetros de consulta
offsetinteger= 0Desplazamiento de paginación
limitinteger= 20Número de registros por página
sortBystring= createdAtcreatedAttextupdatedAtsortOrderstring= descOrden de clasificación
ascdesccompanyIdstring (uuid)Filtrar por empresa
productIdstring (uuid)Filtrar por producto
typestringTipo de consulta (general, comparative, negative, etc.). Admite un array: ?type=comparative&type=neutral
originstringOrigen de la consulta. Admite un array: ?origin=manual&origin=auto
manualautohasAnswersstringExistencia de respuestas
truefalselanguagestringIdioma de la consulta (ru, en, etc.). Admite un array: ?language=ru&language=en
searchTextstringBúsqueda en el texto de la consulta
providerstringFiltrar por proveedor de IA de la respuesta
sourceIdstringFiltrar por ID de la fuente de la respuesta. Admite un array: ?sourceId=id1&sourceId=id2
labelSlugstringFiltrar por slug del grupo/etiqueta
regionstringRegión de la consulta. Admite un array: ?region=RU®ion=US
isFavoritestringSolo consultas favoritas
truefalsesentimentstringFiltrar por sentimiento de las menciones en las respuestas
positiveneutralnegativesearchFieldstring= queryÁmbito de searchText: texto de las consultas, respuestas o fuentes
queryanswersourceslabelFilterModestring= orLógica del filtro por grupos: any (or) o all (and)
orandlabelstringSlug del grupo. Admite un array: ?label=slug1&label=slug2
createdAtFromstring (date-time)Inicio del intervalo de fechas de creación (ISO 8601)
createdAtTostring (date-time)Fin del intervalo de fechas de creación (ISO 8601)
showArchivedstringMostrar consultas archivadas (por defecto: false)
truefalseRespuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/queriesRespuesta correcta
Crear consulta
/api/v1/queriesCrea una consulta y, por defecto, la añade inmediatamente a la cola de ejecución. De pago: cada respuesta recibida de cada IA consume FoxCoin (precios: GET /api/v1/billing/balance). Una consulta enviada a 5 IA cuesta 5 respuestas. Usa dispatch: false para crearla sin gastar FoxCoin. providers selecciona las IA (slugs: GET /api/v1/sources). Si se omite, se utilizan los valores predeterminados de la cuenta; sin configuración, únicamente ChatGPT. Para crear consultas masivamente con grupos: POST /api/v1/queries/setup. region (ISO 3166-1 alpha-2) y language definen la ubicación. Sin region se utiliza el país de la empresa. geoOverride y resolvedGeoSnapshot son instantáneas READ-ONLY calculadas por el servidor para consultas de grupos con destinos geográficos. No se aceptan en POST: el cuerpo es estricto y un campo desconocido provoca un error 400. Consulta dispatch en la respuesta para conocer el resultado de la puesta en cola: dispatched=false con error no vacío indica que la consulta se creó, pero la ejecución no comenzó.
Cuerpo de la solicitud
textstringobligatoriocompanyIdstringobligatorioproductIdstringtypestring= neutralSe aceptan los valores heredados negative y general: negative → reputational, general → neutral.
neutralcommercialinformationalcomparativereputationalbrandedlanguagestring= ruCódigo ISO 639-1 del idioma de respuesta (ru, en, ar, hi, vi, ms, ...). Define el idioma obligatorio para la IA: se añade al prompt una instrucción explícita con el nombre del idioma del directorio. Por defecto: ru.
regionstringPaís de la consulta, ISO 3166-1 alpha-2 (AE, SA, RU). Si se omite, se utiliza el país de la empresa (regionTarget primary) y, después, RU. Se aceptan y normalizan nombres heredados («russia»). No aplica segmentación geográfica a los resultados; sirve para filtros y analíticas.
providersstring[]IA que se consultarán. Si se omite, se utilizan los valores predeterminados de la cuenta; sin configuración, únicamente ChatGPT.
dispatchboolean= truefalse crea la consulta SIN añadirla a una ejecución de pago.
labelsstring[]Nombres de los grupos: se crean o reutilizan según el slug.
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED402application/jsonFoxCoin insuficientes
HTTP_402404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queriesRespuesta correcta
Obtener consulta
/api/v1/queries/{id}Devuelve la consulta, las respuestas de los asistentes de IA y las menciones detectadas.
Parámetros de consulta
idstring (uuid)obligatorioID de la consulta
includeAnswersstring= trueIncluir respuestas con sus menciones (true por defecto)
truefalseRespuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/queries/{id}Respuesta correcta
Archivar consulta
/api/v1/queries/{id}Archiva la consulta. Los datos se conservan y pueden restaurarse.
Parámetros de consulta
idstring (uuid)obligatorioID de la consulta
Respuestas
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/{id}Eliminado correctamente
Modificar una consulta
/api/v1/queries/{id}Modifica el texto, tipo, idioma, región, producto, estado de favorito y grupos de la consulta. Cambiar el texto NO vuelve a consultar las IA: las respuestas existentes siguen vinculadas a la consulta. Crea una consulta nueva para repetir la ejecución. Cuerpo estricto: campo desconocido → 400.
Parámetros de consulta
idstring (uuid)obligatorioCuerpo de la solicitud
textstringtypestringneutralcommercialinformationalcomparativereputationalbrandedlanguagestringregionstringISO 3166-1 alpha-2.
productIdstringnull desvincula la consulta del producto.
isFavoritebooleanlabelsstring[]Lista COMPLETA de grupos: se recrean las asociaciones.
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/{id}Respuesta correcta
Listar ejecuciones en cola
/api/v1/queries/queueEstado de las ejecuciones: una por cada par consulta/IA. Permite distinguir entre una consulta aún en curso, un fallo y una pausa por falta de fondos, algo que el número de respuestas por sí solo no permite.
Parámetros de consulta
statusstring= queued,onHold,failedGrupos de estados separados por comas. Los tres por defecto.
companyIdstring (uuid)Limitar a una empresa. Si se omite, todas las empresas de la cuenta.
queryIdstring (uuid)Ejecuciones de una consulta
providerstringFiltrar por IA
chatgptgeminiperplexitygrokdeepseekgigachatyandex_alicealice_chatgoogle_ai_modeincludeArchivedboolean= falseIncluir ejecuciones de consultas archivadas
limitinteger= 50Tamaño de página
offsetinteger= 0Desplazamiento
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/queries/queueRespuesta correcta
Resumen de la cola y coste estimado
/api/v1/queries/queue/summaryContadores de ejecuciones, coste de la cola actual y saldo FoxCoin en una solicitud. Mientras queuedTotal > 0, la ejecución continúa. onHold > 0 indica falta de fondos: esas ejecuciones no se reanudan automáticamente, ni tras recargar el saldo.
Parámetros de consulta
companyIdstring (uuid)Limitar a una empresa
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/queries/queue/summaryRespuesta correcta
Crear consultas en lote con los modelos de IA seleccionados
/api/v1/queries/setupCrea grupos y consultas en una transacción y los añade inmediatamente a la cola. providers permite seleccionar los modelos de IA; si se omite, se usan los valores del perfil de la cuenta. Para crear una sola consulta, utilice POST /api/v1/queries, que también acepta providers. De pago: cada respuesta recibida de cada modelo cuesta FoxCoin (véase GET /api/v1/billing/balance). Máximo de 500 consultas por llamada.
Cuerpo de la solicitud
companyIdstringSi se omite, utiliza preferredCompanyId de la clave (véase GET /api/v1/context)
clusterIdstringGrupo existente del que heredar la configuración geográfica; se aplica a todos los elementos de clusters sin clusterId propio
providersstring[]Modelos de IA que se consultarán (slugs de GET /api/v1/sources). Si se omite, se usan los valores predeterminados de la cuenta; una cuenta sin configurar utiliza ChatGPT. POST /api/v1/queries también permite la selección mediante providers.
clustersobject[]obligatorioRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED402application/jsonFoxCoin insuficientes
HTTP_402404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/setupRespuesta correcta
Devolver ejecuciones a la cola
/api/v1/queries/queue/resumeReanuda las ejecuciones pausadas. **Por qué.** Si el saldo FoxCoin es insuficiente, la ejecución pasa a ON_HOLD_NO_FUNDS. Los workers no la procesan y recargar el saldo NO la reactiva. Permanece en espera hasta que el programador la cambia a CANCELLED después de 45 días. Desde fuera puede parecer que has pagado pero las consultas no avanzan. La reanudación siempre debe solicitarse explícitamente mediante este método. **Cómo ocurre.** Crea consultas con saldo insuficiente. La comprobación se realiza al ponerlas en cola y al ejecutarlas: algunas ejecuciones pueden estar pausadas aunque la consulta se haya completado parcialmente. Comprueba `GET /api/v1/queries/queue/summary` → `onHold` o `queue.status` = `on_hold_no_funds`. **402 no es un rechazo definitivo:** el saldo no cubre todo el lote. Recárgalo o repite con `force: true`: se procesarán las ejecuciones cubiertas y las demás volverán a pausarse.
Cuerpo de la solicitud
runIdsstring[]Seleccionar ID de ejecuciones concretas
scopestringTodas las ejecuciones pausadas
onHoldcompanyIdstringLimitar scope a una empresa
forceboolean= falseReanudar aunque el saldo no cubra todo el lote
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED402application/jsonFoxCoin insuficientes para todo el lote
HTTP_402404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/queue/resumeRespuesta correcta
Retirar ejecuciones de la cola
/api/v1/queries/queue/cancelCancela ejecuciones que aún no han comenzado: pendientes (PENDING, RETRYING) o pausadas. Nunca modifica las que están RUNNING: ya están siendo procesadas por un worker y cancelarlas provocaría una condición de carrera. **Cuándo usarlo.** Para detener un lote innecesario antes de que consuma FoxCoin: el cargo ocurre al recibir una respuesta, por lo que una ejecución cancelada no cuesta nada. También permite retirar una cola bloqueada que no se piensa pagar. La cancelación es reversible: una ejecución puede volver a la cola mediante `POST /api/v1/queries/queue/resume` con su `runId`.
Cuerpo de la solicitud
runIdsstring[]queryIdsstring[]Todas las ejecuciones cancelables de estas consultas
scopestringonHold: solo pausadas; queued: solo cola activa
onHoldqueuedcompanyIdstringLimitar scope a una empresa
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/queue/cancelRespuesta correcta
Generación de consultas
Selección automática de consultas: generación de borradores y confirmación. La generación (1 FoxCoin por consulta) y la consulta de pago a las IA (10 FoxCoin por respuesta) son pasos distintos.
Generar sugerencias sin consultar modelos de IA
/api/v1/queries/autogenerateEl servicio propone consultas y las guarda como BORRADORES. En este paso NO se consultan las IA. Sustituye isAutoGenerationEnabled, que iniciaba la generación y la ejecución de pago a la vez sin permitir separarlas. Aquí la ejecución solo comienza con POST /api/v1/query-drafts/approve. Coste: 1 FoxCoin por CADA consulta generada, cobrado según los borradores entregados realmente. La ejecución se cobra por separado: 10 FoxCoin por respuesta (consulta × IA). Idioma y país: sin language/region se utiliza la configuración regional de la empresa (regionTargets, PUT /api/v1/companies/{id}) y, después, ru/RU. Para varios países, envía targets: una tarea por país, con su idioma oficial por defecto (AE → ar, IN → hi). Tipos: sin types, utiliza Company.autogenQueryTypes, por defecto commercial, informational, comparative, reputational. Las comparaciones «X vs Y» solo se generan si comparative está en la lista Y la empresa tiene competidores. Por defecto, devuelve 202 inmediatamente y genera en segundo plano: consulta el progreso con GET en la misma dirección usando clientToken. La forma corta (region/language/city/includeDistricts) y targets son incompatibles: usarlas juntas devuelve 400, porque fuera de targets no se puede asignar una ciudad a un país concreto.
Cuerpo de la solicitud
companyIdstringSi se omite, utiliza preferredCompanyId de la clave.
productIdstringcountintegerobligatorioNúmero de consultas que se generarán POR destino. 1 FoxCoin por consulta.
typesstring[]Tipos de consulta generados; count se reparte por igual. Si se omite, utiliza Company.autogenQueryTypes, que incluye comparative por defecto.
clustersstring[]Temas en los que se distribuyen las consultas.
userWishesstringnamestringNombre de la tarea, visible en la interfaz y en GET.
languagestringISO 639-1. Si se omite, idioma de la empresa. Solo SIN targets.
regionstringISO 3166-1 alpha-2. Si se omite, país primary de la empresa (regionTargets) y, después, RU. Se aceptan nombres heredados («russia»). Solo SIN targets.
citystringSolo SIN targets.
includeDistrictsbooleanSolo SIN targets.
targetsobject[]Medición en varios países: una tarea por país. El coste es la suma de count de todos los destinos. INCOMPATIBLE con la forma corta: region / language / city / includeDistricts junto a targets → 400. Dentro de targets, cada país tiene su ciudad e idioma.
waitboolean= falsetrue espera a que termine la generación. Solo para lotes pequeños: a partir de 100 consultas, el proceso tarda varios minutos.
clientTokenstringTu marcador de tarea, utilizado después para consultar su progreso.
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED402application/jsonFoxCoin insuficientes: campos required y balance en el cuerpo del error
HTTP_402404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED503application/jsonLa generación automática no está configurada en el servidor
HTTP_503/api/v1/queries/autogenerateRespuesta correcta
Estado de las tareas de generación de consultas
/api/v1/queries/autogenerateProgreso de las tareas iniciadas con POST /api/v1/queries/autogenerate. Consulta hasta status = OK y después recupera los borradores mediante GET /api/v1/query-drafts. No se permite aprobar borradores de una tarea RUNNING, para evitar confirmar un lote incompleto.
Parámetros de consulta
runIdstring (uuid)Tarea concreta.
clientTokenstringTarea identificada por el marcador del cliente devuelto por POST.
limitinteger= 20Número de tareas recientes que se devolverán.
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/autogenerateRespuesta correcta
Detener una tarea de generación
/api/v1/queries/autogenerate/cancelLa cancelación es efectiva: los lotes no iniciados no se ejecutan y solo se cobran los borradores ya entregados. La ejecución pasa a CANCELLED; los borradores generados se conservan y pueden aprobarse.
Cuerpo de la solicitud
runIdstringobligatorioRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/queries/autogenerate/cancelRespuesta correcta
Listar borradores de consultas
/api/v1/query-draftsGuardar un borrador no tiene coste ni consulta ninguna IA. Solo se convierte en consulta mediante POST /api/v1/query-drafts/approve.
Parámetros de consulta
statusstringPENDING: pendientes de decisión. Todos los estados por defecto.
PENDINGAPPROVEDREJECTEDEXPIREDcompanyIdstring (uuid)Filtrar por empresa.
typestringFiltrar por tipo de consulta.
neutralcommercialinformationalcomparativereputationalbrandedpageinteger= 1Número de página, desde 1.
limitinteger= 50Tamaño de página.
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/query-draftsRespuesta correcta
Aprobar borradores y ejecutar consultas
/api/v1/query-drafts/approvePASO DE PAGO: los borradores aprobados se convierten en consultas enviadas a las IA elegidas, a 10 FoxCoin por respuesta (consulta × IA). 50 borradores × 3 IA = 150 respuestas = 1500 FoxCoin. Llama primero con dryRun: true y muestra el presupuesto al usuario. Idempotente: repetir la llamada con los mismos draftIds no duplica las consultas ni vuelve a ejecutarlas. Se omiten los borradores de una tarea de generación aún en curso (skippedRunning); espera a status = OK.
Cuerpo de la solicitud
draftIdsstring[]obligatorioprovidersstring[]obligatorioIA que se consultarán. Cada una multiplica el coste.
dryRunbooleantrue devuelve solo el presupuesto, sin crear nada ni cobrar.
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED402application/jsonFoxCoin insuficientes: campos required y balance en el cuerpo del error
HTTP_402404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/query-drafts/approveRespuesta correcta
Rechazar borradores
/api/v1/query-drafts/rejectRechazo lógico: el borrador permanece en la base con estado REJECTED para auditar la facturación. No se consulta ninguna IA. No se reembolsan los FoxCoin de generación, ya que las consultas ya se generaron.
Cuerpo de la solicitud
draftIdsstring[]obligatorioRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/query-drafts/rejectRespuesta correcta
Respuestas de IA
Respuestas de IA por lotes: enlaces, menciones y sentimiento.
Obtener respuestas de IA en lote
/api/v1/answersSustituye un bucle GET /api/v1/queries/{id} por cada consulta: una página contiene hasta 200 respuestas con enlaces, menciones y sentimiento. links contiene las citas analizadas de CUALQUIER IA. No debe confundirse con answer.sources, que contiene los datos brutos del scraper, solo se rellena para «Búsqueda con Alice» y no es una lista de citas. brandDomainCited indica si la respuesta cita el dominio del sitio de la empresa. Campos de mención: position es el DESPLAZAMIENTO EN CARACTERES dentro de la respuesta. El array se ordena por ese valor; el orden de aparición de la marca es la POSICIÓN de la mención en el array, no el valor de position. sentiment (1 / 0 / -1) y sentimentScore (-1..1) describen la respuesta COMPLETA y son iguales para todas sus menciones. sentimentScore = null si aún no se ha calculado el sentimiento. isOurs = false identifica a un competidor. Los parámetros de array se repiten: ?companyId=a&companyId=b.
Parámetros de consulta
companyIdstring[]Empresas; admite varias.
productIdstring[]Productos; admite varios.
queryIdstring[]Solo respuestas a estas consultas.
sourceIdstring[]IA por id (GET /api/v1/sources).
providerstring[]IA por slug.
typestring[]Tipo de consulta al que pertenece la respuesta.
labelstring[]Slugs de los grupos.
regionstring[]Región de la consulta, ISO 3166-1 alpha-2. También se reconocen nombres heredados.
languagestring[]Idioma de la consulta.
createdAtFromstring (date-time)Fecha de creación de la RESPUESTA, límite inicial (ISO 8601).
createdAtTostring (date-time)Fecha de creación de la RESPUESTA, límite final (ISO 8601).
hasLinksbooleantrue: solo respuestas con enlaces; false: solo respuestas sin enlaces.
mentionsOursbooleantrue: solo respuestas que mencionan la marca de la empresa.
showArchivedboolean= falsetrue: incluir respuestas de consultas archivadas.
includestring= content,tonalityElementos que se incluirán, separados por comas: content, links, mentions, tonality.
limitinteger= 50Tamaño de página.
offsetinteger= 0Desplazamiento.
sortBystring= createdAtCampo de ordenación.
createdAtdatesortOrderstring= descSentido de ordenación.
ascdescRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/answersRespuesta correcta
Geografía
Directorios de países, regiones, ciudades e idiomas.
Listar países
/api/v1/geo/countriesLos id del directorio se utilizan en regionTargets y defaultLanguageId de empresas y grupos; iso2 se utiliza en region de las consultas y de la generación automática.
Parámetros de consulta
qstringBúsqueda por nombre.
continentstringFiltrar por continente.
EUROPEASIANORTH_AMERICASOUTH_AMERICAAFRICAOCEANIAANTARCTICAlimitinteger= 250Número máximo de registros.
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/geo/countriesRespuesta correcta
Listar regiones de un país
/api/v1/geo/regionsRegiones (provincias, estados) de un país. Es obligatorio countryId o countryIso2.
Parámetros de consulta
countryIso2stringCódigo de país de dos letras.
countryIdstring (uuid)UUID del país.
qstringBúsqueda por nombre.
limitinteger= 100Número máximo de registros.
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/geo/regionsRespuesta correcta
Listar ciudades de un país
/api/v1/geo/citiesCiudades de un país. Es obligatorio countryId o countryIso2. cityId se utiliza en regionTargets de las empresas y targets de los grupos.
Parámetros de consulta
countryIso2stringCódigo de país de dos letras.
countryIdstring (uuid)UUID del país.
regionIdstring (uuid)UUID de la región.
qstringBúsqueda por nombre.
limitinteger= 50Número máximo de registros.
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/geo/citiesRespuesta correcta
Listar idiomas
/api/v1/geo/languagesLos id del directorio se utilizan en regionTargets y defaultLanguageId de empresas y grupos; iso2 se utiliza en region de las consultas y de la generación automática.
Parámetros de consulta
qstringBúsqueda por nombre o código.
limitinteger= 200Número máximo de registros.
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/geo/languagesRespuesta correcta
Clústeres de consultas
Etiquetas/grupos de consultas: lista con filtro opcional por empresa y creación con configuración regional
Listar grupos de consultas
/api/v1/query-labelsDevuelve las etiquetas/grupos de consultas del workspace actual con el número de consultas de cada uno. companyId limita los resultados a grupos con consultas de esa empresa; queryCount cuenta solo sus consultas. lite=true devuelve la forma reducida { items: [{ id, name, slug, queryCount }] }, sin estadísticas ni sampleQueries.
Parámetros de consulta
companyIdstring (uuid)Filtro por empresa: solo grupos que contienen sus consultas; queryCount cuenta sus consultas.
litestringlite=true devuelve la forma reducida { items: [{ id, name, slug, queryCount }] }, sin estadísticas.
truefalseoffsetinteger= 0Desplazamiento de paginación
limitinteger= 20Número de registros por página
qstringSubcadena del nombre de la etiqueta, sin distinguir mayúsculas y minúsculas.
sortstring= queryCount:descOrden en formato field:direction.
queryCount:descqueryCount:ascname:ascname:desccreatedAt:desccreatedAt:asclastUsedAt:desclastUsedAt:aschasQueriesstringwith: grupos con consultas; without: grupos vacíos.
withwithoutminCountintegerNúmero mínimo de consultas del grupo.
maxCountintegerNúmero máximo de consultas del grupo.
createdFromstring (date-time)Etiquetas creadas a partir de la fecha indicada.
createdTostring (date-time)Etiquetas creadas hasta la fecha indicada.
lastUsedFromstring (date-time)Etiquetas con lastUsedAt igual o posterior a la fecha indicada.
lastUsedTostring (date-time)Etiquetas con lastUsedAt igual o anterior a la fecha indicada.
includestringinclude=targets añade los destinos geográficos del grupo (country/city).
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/query-labelsRespuesta correcta
Crear o actualizar un grupo regional de consultas
/api/v1/query-labelsBusca o crea por (slug, userId). Si existe un grupo con ese slug, se actualizan el nombre y la configuración geográfica y se recrean sus targets. Se aceptan companyId/productId opcionales, pero aún no se guardan en QueryLabel.
Cuerpo de la solicitud
namestringobligatorioslugstringdescriptionstringcompanyIdstringproductIdstringdefaultLanguageIdstringdefaultLocalestringdefaultResponseLanguageIdstringgeoScopestringGLOBALCOUNTRYREGIONCITYinjectLocationModestringNONEAPPEND_PARENSAPPEND_NATURALPREPENDAI_REWRITEautogenStrategystringSHAREDPER_TARGETPER_TARGET_LOCALIZEDtargetsobject[]Respuestas
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED409application/jsonConflicto: el recurso ya existe
CONFLICT429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/query-labelsError de validación de los datos de entrada
Menciones
Consulta de menciones de marca
Listar menciones
/api/v1/mentionsDevuelve las menciones de marca en respuestas de asistentes de IA con su contexto completo.
Parámetros de consulta
offsetinteger= 0Desplazamiento de paginación
limitinteger= 20Número de registros por página
sortBystring= createdAtcreatedAtpositionsentimentsortOrderstring= descOrden de clasificación
ascdesctimeRangestringIntervalo temporal
24h7d30d90dallcreatedAtFromstring (date-time)Inicio del intervalo de fechas de creación (ISO 8601)
createdAtTostring (date-time)Fin del intervalo de fechas de creación (ISO 8601)
companyIdstring (uuid)Filtrar por empresa
productIdstring (uuid)Filtrar por producto
competitorIdstring (uuid)Filtrar por competidor
answerIdstring (uuid)Filtrar por una respuesta concreta
typestringTipo de mención
companyproductkeywordcompetitorsentimentstringSentimiento
positiveneutralnegativesearchstringTexto de búsqueda, sin distinguir mayúsculas y minúsculas
isOursstringSolo nuestra marca (true) o los competidores (false)
truefalseRespuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/mentionsRespuesta correcta
Analítica
Analíticas: competidores, sentimiento, enlaces y visibilidad de marca
Analítica de competidores
/api/v1/analytics/competitorsAnálisis comparativo completo de tu empresa y sus competidores según las menciones en asistentes de IA. Admite filtros por grupos (slug), proveedores de IA y período.
Parámetros de consulta
timeRangestring= 30dIntervalo temporal
24h7d30dallfromstring (date-time)Inicio del intervalo personalizado (ISO 8601)
tostring (date-time)Fin del intervalo personalizado (ISO 8601)
companyIdstring (uuid)ID de la empresa
productIdstring (uuid)ID del producto
sourceIdstring[]ID de proveedores de IA
labelIdstring[]ID de grupos/etiquetas
labelSlugstringSlug del grupo. Array: ?labelSlug=slug1&labelSlug=slug2
labelFilterModestring= orModo de filtrado por etiquetas
orandincludeDemostringIncluir datos de demostración
truefalseRespuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/competitorsRespuesta correcta
Vista previa de menciones
/api/v1/analytics/competitors/previewDevuelve respuestas concretas de asistentes de IA con menciones para un análisis detallado. Admite filtros por grupos, datos de demostración, período personalizado y lógica de filtrado por etiquetas. companyId es obligatorio: sin él se mezclarían los datos de todas las empresas de la cuenta. Si se omite, se utiliza preferredCompanyId de la clave (véase GET /api/v1/context).
Parámetros de consulta
sidestringobligatorioParte analizada: nuestra empresa o un competidor
ourcompetitorcompetitorNamestringNombre del competidor (si side=competitor)
mentionTypestring= bothTipo de mención
brandlinkbothoffsetinteger= 0Desplazamiento de paginación
limitinteger= 20Número de registros por página
timeRangestring24h7d30dallcompanyIdstring (uuid)productIdstring (uuid)sourceIdstring[]labelIdstring[]includeMentionsstringIncluir menciones en la respuesta
truefalseincludeDemostringIncluir datos de demostración
truefalselabelFilterModestring= orLógica del filtrado por grupos
orandfromstring (date-time)Inicio del período (ISO 8601)
tostring (date-time)Fin del período (ISO 8601)
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/competitors/previewRespuesta correcta
Analítica de tonalidad
/api/v1/analytics/tonalityAnálisis completo del sentimiento de las respuestas de asistentes de IA: indicadores de calidad, evolución temporal, respuestas problemáticas y mejores respuestas.
Parámetros de consulta
timeRangestring= 30d24h7d30d90dcompanyIdstring (uuid)productIdstring (uuid)queryTypestringTipo de consulta
neutralcomparativenegativesentimentstringFiltrar por sentimiento
positiveneutralnegativesourceIdstring[]Proveedores de IA
labelSlugstring[]Grupos/etiquetas por slug
labelFilterModestring= ororandfromstring (date-time)tostring (date-time)includeDemostringtruefalseRespuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/tonalityRespuesta correcta
Analítica de enlaces
/api/v1/analytics/linksAnalíticas de enlaces de respuestas de asistentes de IA: principales dominios, citas por proveedor y evolución temporal. Admite filtros por sentimiento, grupos, tipo de consulta, umbrales Impact/Overall Score y período personalizado. companyId es obligatorio: sin él se mezclarían los datos de todas las empresas de la cuenta. Si se omite, se utiliza preferredCompanyId de la clave (véase GET /api/v1/context).
Parámetros de consulta
timeRangestring24h7d30dallcompanyIdstring (uuid)productIdstring (uuid)includeDemostringtruefalselabelSlugstring[]sortDomainsBystringOrden de los dominios
sentimentstringFiltrar por sentimiento
positiveneutralnegativeminImpactnumberUmbral mínimo de Impact Score
minOverallnumberUmbral mínimo de Overall Score
presetstringPreajuste de filtrado
queryTypestringTipo de consulta
neutralnegativecomparativelabelstringSlug del grupo
labelFilterModestring= orLógica de filtrado
orandfromstring (date-time)Inicio del período
tostring (date-time)Fin del período
chartOnlystringSolo datos del gráfico
truefalsecitationModestringModo de cita
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/linksRespuesta correcta
Dominios principales
/api/v1/analytics/links/top-domainsDevuelve los dominios más citados en las respuestas de asistentes de IA. Admite filtros por sentimiento, tipo de consulta, umbrales Impact/Overall Score y datos de demostración. companyId es obligatorio: sin él se mezclarían los datos de todas las empresas de la cuenta. Si se omite, se utiliza preferredCompanyId de la clave (véase GET /api/v1/context).
Parámetros de consulta
timeRangestring24h7d30dallcompanyIdstring (uuid)productIdstring (uuid)limitinteger= 10Número de dominios
includeDemostringIncluir datos de demostración
truefalsesentimentstringFiltrar por sentimiento
positiveneutralnegativeminImpactnumberUmbral mínimo de Impact Score
minOverallnumberUmbral mínimo de Overall Score
queryTypestringTipo de consulta
neutralnegativecomparativeRespuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/links/top-domainsRespuesta correcta
Visibilidad de marca
/api/v1/analytics/brand-visibilityEvolución de la visibilidad de marca frente a competidores, con granularidad ajustable. Admite filtros por grupos (ID y slug), proveedores de IA y lógica de filtrado.
Parámetros de consulta
granularitystring= dayGranularidad del eje temporal
dayweekmonthtimeRangestring24h7d30dallcompanyIdstring (uuid)productIdstring (uuid)includeDemostringtruefalsefromstring (date-time)tostring (date-time)labelIdstringID del grupo. Array: ?labelId=id1&labelId=id2
labelSlugstringSlug del grupo
labelFilterModestring= orLógica de filtrado
orandsourceIdstringID de la fuente de IA
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/brand-visibilityRespuesta correcta
Evolución de las citas
/api/v1/analytics/links/citation-timelineProporción diaria de respuestas que nos citan frente a competidores. Se calcula a partir de agregados diarios; solo admite el modo de cita global, ya que estos agregados no distinguen citas por URL y por dominio.
Parámetros de consulta
companyIdstring (uuid)Empresa. Si se omite, se utiliza preferredCompanyId de la clave
productIdstringProducto
timeRangestring24h | 7d | 30d | 90d | all
granularitystringDesglose de la evolución temporal
tzstringZona horaria
sourceIdstring[]Fuentes
labelSlugstring[]Grupos
labelFilterModestringAND | OR
includeDemobooleanIncluir datos de demostración
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/analytics/links/citation-timelineRespuesta correcta
Empresas y productos para filtros
/api/v1/analytics/companies-productsEmpresas de la cuenta con sus productos, para el selector «empresa → producto». Aquí companyId NO es obligatorio: sin él se devuelven todas las empresas, que es precisamente el objetivo del método.
Parámetros de consulta
companyIdstring (uuid)Limitar a una empresa
includeDemobooleanIncluir datos de demostración
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/companies-productsRespuesta correcta
Enlaces
Dominios y enlaces de las respuestas de IA
Dominios y enlaces
/api/v1/linksTabla de dos niveles con dominios y enlaces de las respuestas de asistentes de IA, con ordenación y filtros. companyId es obligatorio: sin él se mezclarían los datos de todas las empresas de la cuenta. Si se omite, se utiliza preferredCompanyId de la clave (véase GET /api/v1/context).
Parámetros de consulta
pageinteger= 1Número de página
pageSizeinteger= 50Tamaño de página
sortBystring= lastMentionedlastMentionedmentionCountanswerCountourMentionCountcompetitorMentionCountdomaintrustRankdomainLinkssortDirstring= descascdescsearchstringTexto de búsqueda, sin distinguir mayúsculas y minúsculas
searchFieldstringCampo de búsqueda
domainurltitletimeRangestring24h7d30dfromstring (date-time)tostring (date-time)companyIdstring (uuid)productIdstring (uuid)sentimentstringpositiveneutralnegativequeryTypestringneutralnegativecomparativeproviderstring[]Proveedores de IA
activestringSolo enlaces activos
truefalsedomainsOnlystringSolo dominios, sin enlaces secundarios
truefalsedomainstringEnlaces secundarios de un dominio concreto
labelstring[]Grupos/etiquetas
includeDemostringtruefalseRespuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/linksRespuesta correcta
Opciones de filtro
/api/v1/links/filter-optionsDevuelve los valores disponibles para los filtros de la tabla de enlaces: proveedores y etiquetas. companyId es obligatorio: sin él se mezclarían los datos de todas las empresas de la cuenta. Si se omite, se utiliza preferredCompanyId de la clave (véase GET /api/v1/context).
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/links/filter-optionsRespuesta correcta
Publicidad
Datos publicitarios de las respuestas de IA
Datos publicitarios
/api/v1/advertisingAnalíticas de bloques publicitarios y promocionales en respuestas de asistentes de IA. Admite paginación, búsqueda por dominio/URL, filtros por grupos, tipo de promoción, período y ordenación. companyId es obligatorio: sin él se mezclarían los datos de todas las empresas de la cuenta. Si se omite, se utiliza preferredCompanyId de la clave (véase GET /api/v1/context).
Parámetros de consulta
timeRangestring24h7d30dallcompanyIdstring (uuid)productIdstring (uuid)includeDemostringtruefalsepageinteger= 1Número de página
pageSizeinteger= 50Tamaño de página
searchstringBúsqueda por dominio o URL
searchFieldstringCampo de búsqueda
domainurltitlelabelstringSlug del grupo. Array: ?label=slug1&label=slug2
promoTypestringTipo de bloque promocional
sortBystringCampo de ordenación
sortDirstringSentido de ordenación
ascdescfromstring (date-time)Inicio del período (ISO 8601)
tostring (date-time)Fin del período (ISO 8601)
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/advertisingRespuesta correcta
Vista previa de bloques publicitarios
/api/v1/advertising/previewDetalle del resumen /api/v1/advertising: promociones mostradas y respuestas donde aparecen.
Parámetros de consulta
domainstringobligatorioDominio de la promoción. OBLIGATORIO; si falta, error 400
companyIdstring (uuid)Empresa. Si se omite, se utiliza preferredCompanyId de la clave
productIdstringProducto
promoTypestringours | competitor | other
ourscompetitorothertimeRangestring24h | 7d | 30d | 90d | all
labelstring[]Grupos
labelFilterModestringAND | OR
limitinteger= 201..50
offsetinteger= 0Desplazamiento
includeDemobooleanIncluir datos de demostración
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/advertising/previewRespuesta correcta
Fábrica de contenido
Fábrica de contenido: tareas, etiquetas, enriquecimiento, generación de esquemas y artículos, detección de hallazgos
Listar tareas
/api/v1/factory/tasksDevuelve las tareas de la fábrica de contenido con filtros, paginación y ordenación.
Parámetros de consulta
companyIdstring (uuid)Filtrar por empresa
statusstring[]Filtrar por estado; admite varios: ?status=TODO&status=IN_PROGRESS
typestring[]Filtrar por tipo de tarea; admite varios
prioritystring[]Filtrar por prioridad; admite varias
searchstringBúsqueda en el título y la descripción de la tarea
tagIdstring (uuid)Filtrar por etiqueta
aiGeneratedbooleanFiltro: solo tareas generadas por IA
sortBystring= createdAtcreatedAtupdatedAtprioritystatuspositionsortOrderstring= descOrden de clasificación
ascdescoffsetinteger= 0Desplazamiento de paginación
limitinteger= 20Número de registros por página
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/factory/tasksRespuesta correcta
Crear tarea
/api/v1/factory/tasksCrea una tarea en la fábrica de contenido.
Cuerpo de la solicitud
titlestringobligatorioTítulo de la tarea
companyIdstringobligatorioID de la empresa
typestringobligatorioTipo de tarea
NEW_ARTICLEOPTIMIZE_PAGECREATE_FAQCOMPARISONGUIDECASE_STUDYprioritystring= MEDIUMPrioridad
CRITICALHIGHMEDIUMLOWdescriptionstringDescripción de la tarea
targetKeywordsstring[]Palabras clave objetivo (máximo 20)
targetProvidersstring[]Proveedores de IA objetivo
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasksRespuesta correcta
Obtener tarea
/api/v1/factory/tasks/{id}Devuelve la información completa de una tarea de la fábrica de contenido.
Parámetros de consulta
idstring (uuid)obligatorioID de la tarea
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/factory/tasks/{id}Respuesta correcta
Actualizar tarea
/api/v1/factory/tasks/{id}Actualiza parcialmente una tarea de la fábrica de contenido.
Parámetros de consulta
idstring (uuid)obligatorioID de la tarea
Cuerpo de la solicitud
statusstringIDEABACKLOGTODOIN_PROGRESSREVIEWDONEDISMISSEDprioritystringCRITICALHIGHMEDIUMLOWtitlestringdescriptionstringtagIdsstring[]Array de ID de etiquetas que se asociarán
targetKeywordsstring[]targetProvidersstring[]dueDatestringFecha límite de la tarea
metadataobjectMetadatos libres de la tarea
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasks/{id}Respuesta correcta
Archivar tarea
/api/v1/factory/tasks/{id}Archiva la tarea. Los datos se conservan, pero su estado pasa a DISMISSED.
Parámetros de consulta
idstring (uuid)obligatorioID de la tarea
Respuestas
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasks/{id}Eliminado correctamente
Enriquecer tarea
/api/v1/factory/tasks/{id}/enrichBúsqueda RAG en la base de fuentes, análisis de competidores y recomendaciones de IA.
Parámetros de consulta
idstring (uuid)obligatorioID de la tarea
Cuerpo de la solicitud
topicstringobligatorioTema que se enriquecerá
descriptionstringDescripción adicional
keywordsstring[]Palabras clave para la búsqueda RAG
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasks/{id}/enrichRespuesta correcta
Generar plan
/api/v1/factory/tasks/{id}/planGenera un esquema de artículo a partir de los datos enriquecidos: estructura, títulos, ideas principales y tono.
Parámetros de consulta
idstring (uuid)obligatorioID de la tarea
Cuerpo de la solicitud
promptstringInstrucciones adicionales para generar el esquema
topicIdstringID del tema seleccionado entre las sugerencias
topicTitlestringTítulo del tema
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasks/{id}/planRespuesta correcta
Generar artículo
/api/v1/factory/tasks/{id}/articleGenera un artículo a partir de un esquema, mediante streaming SSE. Content-Type: text/event-stream.
Parámetros de consulta
idstring (uuid)obligatorioID de la tarea
Cuerpo de la solicitud
planIdstringID del esquema utilizado para generar el artículo
articleLengthstring= mediumLongitud del artículo: short (~1000 palabras), medium (~2000), long (~3500)
shortmediumlongRespuestas
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasks/{id}/articleNo autenticado: token ausente o no válido
Versiones de contenido
/api/v1/factory/tasks/{id}/versionsDevuelve las versiones de contenido de la tarea: esquemas, artículos y briefs.
Parámetros de consulta
idstring (uuid)obligatorioID de la tarea
typestringFiltrar por tipo de contenido
planarticlebriefplanIdstringFiltrar por ID del esquema
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/factory/tasks/{id}/versionsRespuesta correcta
Analítica de la tarea
/api/v1/factory/tasks/{id}/analyticsDevuelve las analíticas de la tarea: estadísticas de enriquecimiento, generación y publicación.
Parámetros de consulta
idstring (uuid)obligatorioID de la tarea
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/factory/tasks/{id}/analyticsRespuesta correcta
Sugerir temas
/api/v1/factory/tasks/{id}/topicsGenera 10 temas a partir de los datos de la tarea.
Parámetros de consulta
idstring (uuid)obligatorioID de la tarea
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/tasks/{id}/topicsRespuesta correcta
Listar publicaciones
/api/v1/factory/publicationsDevuelve la lista paginada de publicaciones de la fábrica de contenido.
Parámetros de consulta
companyIdstring (uuid)Filtrar por empresa
offsetinteger= 0Desplazamiento de paginación
limitinteger= 20Número de registros por página
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/factory/publicationsRespuesta correcta
Detectar insights
/api/v1/factory/insightsEjecuta los detectores (15 tipos): carencias de contenido, éxitos de competidores, oportunidades sin explotar, riesgos reputacionales, etc.
Cuerpo de la solicitud
companyIdstringobligatorioID de la empresa
insightTypestringTipo de hallazgo; si se omite, se ejecutan todos los detectores
CONTENT_GAPCOMPETITOR_WINWHITE_SPACEREPUTATION_RISKKEYWORD_OPPORTUNITYTRENDING_TOPICPROVIDER_BIASSEASONAL_OPPORTUNITYFAQ_OPPORTUNITYCOMPARISON_OPPORTUNITYGUIDE_OPPORTUNITYCASE_STUDY_OPPORTUNITYOPTIMIZATION_NEEDEDAUTHORITY_BUILDINGlimitintegerNúmero máximo de hallazgos
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/insightsRespuesta correcta
Ajustes de Factory
/api/v1/factory/settingsDevuelve la configuración actual de la fábrica de contenido del usuario.
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/factory/settingsRespuesta correcta
Actualizar ajustes
/api/v1/factory/settingsActualiza la configuración de la fábrica de contenido mediante una combinación recursiva (deep merge).
Cuerpo de la solicitud
settingsobjectobligatorioConfiguración que se combinará recursivamente con la actual
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/settingsRespuesta correcta
Obtener la ficha de marca
/api/v1/factory/brand-cardLee la ficha de marca, un árbol de documentos Markdown de la empresa con la información utilizada para generar contenido. Tres modos: sin parámetros adicionales, toda la ficha en un documento Markdown (manifiesto → archivos core → archivos enlazados → resto; se excluyen los bloques privados ```private; límite de unos 12 000 caracteres); mode=index devuelve el manifiesto y los archivos con path, id, isCore y enlaces salientes; path=... devuelve un archivo: content, conservando literalmente los enlaces [Nombre](brandcard://id), y links con la ruta resuelta de cada enlace.
Parámetros de consulta
companyIdstring (uuid)obligatorioID de la empresa
modestringindex devuelve el manifiesto y la lista de archivos en lugar de la ficha completa
indexpathstringRuta del archivo tal como aparece en el índice, por ejemplo "main / settings.md", para devolver un archivo. No distingue mayúsculas y minúsculas
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/factory/brand-cardRespuesta correcta
Crear o actualizar un archivo de la ficha de marca
/api/v1/factory/brand-cardCrea o reemplaza por completo un archivo de la ficha de marca mediante su ruta. Se crean las carpetas que falten y se añade .md si no hay extensión. Para enlazar otro archivo, inserta un enlace Markdown [Nombre](brandcard://<id del índice>): se basa en el id, resiste cambios de nombre o ubicación y aumenta la prioridad del archivo de destino durante la generación. Conserva literalmente los enlaces brandcard:// existentes al editar. Encierra notas personales y opciones en un bloque ```private: no se enviarán a las IA.
Cuerpo de la solicitud
companyIdstringobligatorioID de la empresa
pathstringobligatorioRuta del archivo, con segmentos separados por "/", por ejemplo "products / pricing.md"
contentstringobligatorioMarkdown completo del archivo; reemplaza su contenido actual
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/brand-cardRespuesta correcta
Eliminar un archivo o carpeta de la ficha de marca
/api/v1/factory/brand-cardElimina un archivo o carpeta de la ficha de marca por su ruta; las carpetas se eliminan en cascada con todo su contenido. No se pueden eliminar los archivos estructurales instruction.md, README.md y core: edítalos mediante POST. Los enlaces a un archivo eliminado quedan rotos: desaparecen de links en el índice y se devuelven con path=null al leer un archivo.
Parámetros de consulta
companyIdstring (uuid)obligatorioID de la empresa
pathstringobligatorioRuta del archivo o carpeta, tal como aparece en el índice
Respuestas
204Eliminado correctamente
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/factory/brand-cardRespuesta correcta
Saldo y gastos
Saldo FoxCoin e historial de operaciones
Saldo FoxCoin y tarifas
/api/v1/billing/balanceSaldo, movimientos y precios de las operaciones. El monedero se comparte en la cuenta: los miembros del equipo gastan del saldo del propietario. Los precios se ofrecen aquí para evitar codificarlos de forma fija en la integración.
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/billing/balanceRespuesta correcta
Historial de transacciones
/api/v1/billing/transactionsHistorial de operaciones del monedero. En los cargos por respuestas, query identifica la consulta facturada.
Parámetros de consulta
typestringFiltrar por tipo de operación
ANSWER_CHARGEQUERY_GENERATIONBRAND_CARD_GENERATIONTASK_ENRICHMENTARTICLE_GENERATIONCONTENT_PLANTOPIC_SUGGESTIONFACT_CHECKTOPUPBONUSREFUNDMANUAL_ADJUSTMENTSUBSCRIPTION_CREDITAPI_CALL_FREEfromstring (date-time)Inicio del intervalo, fecha ISO incluida
tostring (date-time)Fin del intervalo, fecha ISO incluida
limitinteger= 50Tamaño de página
offsetinteger= 0Desplazamiento
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/billing/transactionsRespuesta correcta
Datos de referencia
Directorios y contexto de la clave
Listar modelos de IA
/api/v1/sourcesAsistentes disponibles para las ejecuciones y asistentes utilizados por defecto. value es el valor aceptado por providers en POST /api/v1/queries/setup. Los nombres que no estén en la lista se descartan silenciosamente al poner la consulta en cola.
Parámetros de consulta
includeUnpollableboolean= falseAñadir claude, cola heredada que no se consulta en este sistema
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/sourcesRespuesta correcta
Obtener el contexto de la clave API
/api/v1/contextPunto de partida recomendado para integrar: cuenta de la clave, permisos, empresas y productos disponibles y empresa utilizada por defecto.
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/contextRespuesta correcta
Tráfico de IA
Visitas al sitio desde respuestas de IA (Yandex Metrica)
Tráfico de IA
/api/v1/analytics/metrika/ai-trafficVisitas al sitio desde respuestas de IA: visitas aportadas por cada IA y su evolución. Ámbito de la cuenta: se ignora cualquier integrationId ajeno. Un resultado vacío suele indicar que Metrica no está conectado; comprueba /api/v1/integrations/metrika/status.
Parámetros de consulta
integrationIdstring (uuid)Contador de Metrica. Si se omite, todos los contadores conectados a la cuenta
timeRangestring24h | 7d | 30d | 90d | all
fromstringInicio del período, fecha ISO
tostringFin del período, fecha ISO
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/metrika/ai-trafficRespuesta correcta
Visitantes procedentes de modelos de IA
/api/v1/analytics/metrika/visitorsVisitas procedentes de IA y comportamiento en el sitio: profundidad de navegación, objetivos y visitas repetidas. Ámbito de la cuenta: se ignora cualquier integrationId ajeno. Un resultado vacío suele indicar que Metrica no está conectado; comprueba /api/v1/integrations/metrika/status.
Parámetros de consulta
integrationIdstring (uuid)Contador de Metrica. Si se omite, todos los contadores conectados a la cuenta
timeRangestring24h | 7d | 30d | 90d | all
fromstringInicio del período, fecha ISO
tostringFin del período, fecha ISO
hasGoalsbooleanSolo visitas con objetivos cumplidos
includeSyntheticbooleanIncluir tráfico sintético
pvMinintegerNúmero mínimo de páginas vistas
pvMaxintegerNúmero máximo de páginas vistas
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/metrika/visitorsRespuesta correcta
Embudo de tráfico de IA
/api/v1/analytics/metrika/traffic-funnelRecorrido desde una visita procedente de una respuesta de IA hasta la acción objetivo. Ámbito de la cuenta: se ignora cualquier integrationId ajeno. Un resultado vacío suele indicar que Metrica no está conectado; comprueba /api/v1/integrations/metrika/status.
Parámetros de consulta
integrationIdstring (uuid)Contador de Metrica. Si se omite, todos los contadores conectados a la cuenta
timeRangestring24h | 7d | 30d | 90d | all
fromstringInicio del período, fecha ISO
tostringFin del período, fecha ISO
hasGoalsbooleanSolo visitas con objetivos cumplidos
includeSyntheticbooleanIncluir tráfico sintético
pvMinintegerNúmero mínimo de páginas vistas
pvMaxintegerNúmero máximo de páginas vistas
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/metrika/traffic-funnelRespuesta correcta
Correlación entre menciones y tráfico
/api/v1/analytics/metrika/correlationCompara la evolución de menciones de marca con las visitas reales para saber si una mayor visibilidad genera más tráfico. Ámbito de la cuenta: se ignora cualquier integrationId ajeno. Un resultado vacío suele indicar que Metrica no está conectado; comprueba /api/v1/integrations/metrika/status.
Parámetros de consulta
companyIdstring (uuid)Empresa. Si se omite, se utiliza preferredCompanyId de la clave
integrationIdstring (uuid)Contador de Metrica. Si se omite, todos los contadores conectados a la cuenta
timeRangestring24h | 7d | 30d | 90d | all
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/metrika/correlationRespuesta correcta
Objetivos de Metrika
/api/v1/analytics/metrika/goalsDirectorio de objetivos del contador: explica qué representa hasGoals en los demás métodos. Ámbito de la cuenta: se ignora cualquier integrationId ajeno. Un resultado vacío suele indicar que Metrica no está conectado; comprueba /api/v1/integrations/metrika/status.
Parámetros de consulta
integrationIdstring (uuid)Contador de Metrica. Si se omite, todos los contadores conectados a la cuenta
includeInactivebooleanIncluir objetivos inactivos
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/metrika/goalsRespuesta correcta
Resumen del tráfico sintético
/api/v1/analytics/metrika/synthetic/summaryProporción de visitas de bots y no orgánicas, para evitar que distorsionen las conclusiones sobre tráfico de IA. Ámbito de la cuenta: se ignora cualquier integrationId ajeno. Un resultado vacío suele indicar que Metrica no está conectado; comprueba /api/v1/integrations/metrika/status.
Parámetros de consulta
integrationIdstring (uuid)Contador de Metrica. Si se omite, todos los contadores conectados a la cuenta
timeRangestring24h | 7d | 30d | 90d | all
fromstringInicio del período, fecha ISO
tostringFin del período, fecha ISO
filterstringFiltro de clasificación
hasGoalsbooleanSolo visitas con objetivos cumplidos
pvMinintegerNúmero mínimo de páginas vistas
pvMaxintegerNúmero máximo de páginas vistas
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/metrika/synthetic/summaryRespuesta correcta
Listar visitas sintéticas
/api/v1/analytics/metrika/synthetic/listDetalle paginado del resumen: visitas concretas con indicios de tráfico sintético. Ámbito de la cuenta: se ignora cualquier integrationId ajeno. Un resultado vacío suele indicar que Metrica no está conectado; comprueba /api/v1/integrations/metrika/status.
Parámetros de consulta
integrationIdstring (uuid)Contador de Metrica. Si se omite, todos los contadores conectados a la cuenta
timeRangestring24h | 7d | 30d | 90d | all
fromstringInicio del período, fecha ISO
tostringFin del período, fecha ISO
filterstringFiltro de clasificación
qstringBúsqueda
qScopestringÁmbito de búsqueda
hasRevenuebooleanSolo con ingresos
returningOnlybooleanSolo visitantes recurrentes
pageintegerPágina
pageSizeintegerTamaño de página
sortBystringCampo de ordenación
sortOrderstringasc | desc
hasGoalsbooleanSolo visitas con objetivos cumplidos
pvMinintegerNúmero mínimo de páginas vistas
pvMaxintegerNúmero máximo de páginas vistas
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/analytics/metrika/synthetic/listRespuesta correcta
Contadores conectados
/api/v1/integrations/metrika/listPunto de partida para el tráfico de IA: devuelve integrationId para los demás métodos de esta sección.
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/integrations/metrika/listRespuesta correcta
Estado de la integración
/api/v1/integrations/metrika/statusIndica si Metrica está conectado, cuándo se sincronizó y si el acceso ha caducado. Permite explicar los resultados vacíos de los métodos de esta sección.
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/integrations/metrika/statusRespuesta correcta
Commerce
Fichas de producto en las respuestas de IA
Analítica comercial
/api/v1/analytics/commerceFichas de producto que las IA muestran junto al texto de la respuesta. view=summary: proporción de respuestas con fichas y evolución por IA; sellers: principales vendedores y dominios; brands: fichas de nuestra marca frente a competidores; cards: lista paginada.
Parámetros de consulta
viewstring= summarysummary | sellers | brands | cards
summarysellersbrandscardscompanyIdstring (uuid)Empresa. Si se omite, se utiliza preferredCompanyId de la clave
productIdstring[]Admite varios valores
timeRangestring24h | 7d | 30d | 90d | all
granularitystringDesglose de la evolución temporal
tzstringZona horaria
labelIdstring[]Grupos
labelSlugstring[]Grupos por slug
labelFilterModestringAND | OR
sourceIdstring[]Fuentes
queryTypestring[]Tipos de consulta
includeDemobooleanIncluir datos de demostración
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/analytics/commerceRespuesta correcta
Productos en seguimiento
/api/v1/commerce/productsCatálogo utilizado para identificar los productos en las fichas de las respuestas. Sin él, la sección Comercio muestra vendedores y dominios, pero no distingue nuestros productos de los de competidores.
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/commerce/productsRespuesta correcta
Añadir un producto
/api/v1/commerce/productsRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/commerce/productsRespuesta correcta
Monitorización
Ejecución periódica de consultas según una programación
Listar consultas en seguimiento
/api/v1/favorite-queriesLista de consultas configuradas para ejecutarse periódicamente.
Parámetros de consulta
searchstringBúsqueda por texto
activebooleanSolo elementos activados
Respuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED/api/v1/favorite-queriesRespuesta correcta
Empezar a seguir una consulta
/api/v1/favorite-queriesPOST /api/v1/queries consulta normalmente las IA UNA sola vez. El seguimiento periódico es una entidad independiente que se crea aquí. Crear el registro aún no inicia la ejecución: el calendario se define después mediante POST /api/v1/favorite-queries/{id}/assignments. Cada ejecución programada es de pago: 10 FoxCoin por respuesta de CADA IA. Un intervalo de 60 minutos con tres IA supone 72 respuestas al día. Si faltan fondos, las ejecuciones se pausan y no se reanudan automáticamente (POST /api/v1/queries/queue/resume).
Cuerpo de la solicitud
textstringobligatoriotypestringobligatoriocompanyIdstringproductIdstringlanguagestring= ruregionstring= RUisActiveboolean= truetagsstring[]Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/favorite-queriesRespuesta correcta
Obtener un registro de seguimiento
/api/v1/favorite-queries/{id}Parámetros de consulta
idstring (uuid)obligatorioRespuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/favorite-queries/{id}Respuesta correcta
Modificar un registro de seguimiento
/api/v1/favorite-queries/{id}Texto, empresa, etiquetas e isActive. Para detener sin eliminar: isActive: false.
Parámetros de consulta
idstring (uuid)obligatorioRespuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/favorite-queries/{id}Respuesta correcta
Dejar de seguir una consulta
/api/v1/favorite-queries/{id}Elimina el registro y su calendario: no habrá nuevas ejecuciones. Se conservan las respuestas y menciones existentes, ya que pertenecen a la consulta y no a la suscripción.
Parámetros de consulta
idstring (uuid)obligatorioRespuestas
204Eliminado correctamente
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/favorite-queries/{id}Respuesta correcta
Obtener el calendario de consultas
/api/v1/favorite-queries/{id}/assignmentsParámetros de consulta
idstring (uuid)obligatorioRespuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND/api/v1/favorite-queries/{id}/assignmentsRespuesta correcta
Establecer el calendario de consultas
/api/v1/favorite-queries/{id}/assignmentsAquí comienza el seguimiento periódico: un registro sin calendario no ejecuta nada. Solo hay un calendario por registro; una nueva llamada lo reemplaza. Cada ejecución programada es de pago: 10 FoxCoin por respuesta de CADA IA. Un intervalo de 60 minutos con tres IA supone 72 respuestas al día. Si faltan fondos, las ejecuciones se pausan y no se reanudan automáticamente (POST /api/v1/queries/queue/resume).
Parámetros de consulta
idstring (uuid)obligatorioCuerpo de la solicitud
providersstring[]obligatorioLista: GET /api/v1/sources
frequencyMinutesintegerobligatorioIntervalo entre ejecuciones
isEnabledboolean= truePausar sin eliminar la programación
timezonestring= Europe/MoscowZona horaria utilizada para daysOfWeek y hoursWindow
daysOfWeekinteger[]1..7; vacío = todos los días
hoursWindowobjectFranja horaria fuera de la cual no se ejecutan consultas
modelobjectCorrespondencia «IA → modelo»
Respuestas
200Respuesta correcta
400application/jsonError de validación de los datos de entrada
VALIDATION_ERROR401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/favorite-queries/{id}/assignmentsRespuesta correcta
Ejecutar una consulta ahora
/api/v1/favorite-queries/{id}/run-nowEjecución inmediata, sin esperar ni modificar la programación. Se cobra según las tarifas habituales.
Parámetros de consulta
idstring (uuid)obligatorioRespuestas
200Respuesta correcta
401application/jsonNo autenticado: token ausente o no válido
UNAUTHORIZED404application/jsonRecurso no encontrado
NOT_FOUND429application/jsonSe ha superado el límite de solicitudes (IP: 120 req/min, por usuario: 60 req/min)
RATE_LIMIT_EXCEEDED/api/v1/favorite-queries/{id}/run-nowRespuesta correcta