Proyectos

Un proyecto es una marca monitorizada: su dominio, configuración regional, prompts y competidores. Casi todos los demás endpoints reciben un project_id, así que empieza aquí.

GET/dimensions/projects

Lista los proyectos del usuario autenticado (también sirve como comprobación de autenticación).

GET/dimensions/projects/:id

Obtén información detallada sobre un proyecto: nombres coincidentes, dominios propios adicionales, sector, modelo de negocio, recuento de prompts por enfoque de marca y data_coverage (los modelos, países e idiomas que realmente tienen datos), de modo que una sola llamada sustituye a las consultas independientes de modelos y locales.

GET/dimensions/models

Lista los modelos presentes en las métricas diarias del proyecto.

GET/dimensions/locales

Lista los países e idiomas presentes en las métricas diarias del proyecto.

POST/projects

Crea un proyecto completo en una sola llamada (modo rápido): proyecto, prompts (en cola para ejecución y categorización), competidores y suscripción al correo semanal. Idempotente cuando se proporciona external_identifier. El proyecto siempre pertenece al propietario de la cuenta.

  • Cuerpo (JSON): website_url (obligatorio, URL HTTP(S) pública con un nombre de host DNS o una dirección IP pública; se rechazan las URL con credenciales, las direcciones IP privadas y especiales, localhost y los nombres de host internos), name (obligatorio), main_country (obligatorio), main_language (obligatorio), brand_name, description, industry (una clave o un array; una clave desconocida se rechaza y se indican las claves válidas), business_model, target_audience, brand_voice, goals, primary_products (array), matching_names (array), prompts (array, máx. 100), collections (array de objetos {name, prompts}, máx. 50; cada uno etiqueta prompts de la misma solicitud por su texto exacto), competitors (array de objetos {domain, brand_name, matching_names}), owned_media (objeto, Growth+), use_subdomain, weekly_email_subscribed, external_identifier (solo cuentas con embed habilitado; clave de idempotencia, [a-z0-9_-]{1,64}), execute_prompts_immediately (por defecto, true).

PATCH/projects/:id

Actualiza el perfil del proyecto (el Brand Book y el emparejamiento de marca), con los mismos campos que en Configuración del proyecto, y también los dominios propios adicionales. Los siete campos del Brand Book (industry, business_model, description, primary_products, target_audience, brand_voice, goals) se usan en todas las tareas de GEO Writer y en las sugerencias de prompts. industry, description y target_audience también ayudan a ajustar los consejos de Recomendaciones. Cambiar matching_names vuelve a ejecutar el emparejamiento de menciones y citaciones en todo el historial del proyecto en segundo plano, y cambiar additional_owned_domains reprocesa las respuestas anteriores que citan un dominio añadido o quitado (rematching: true; mientras tanto, las ediciones quedan bloqueadas); un cambio de brand_name solo se aplica a ejecuciones futuras. Solo el propietario de la cuenta puede cambiar additional_owned_domains. Se rechazan los campos desconocidos y cada solicitud se aplica completa o no se aplica en absoluto.

  • Cuerpo (JSON): envía solo los campos que quieras cambiar: name (una etiqueta; no cambia la detección de menciones salvo que brand_name esté vacío), brand_name, description, industry (una sola clave, o un array que se guarda como array), business_model, target_audience, brand_voice, goals, primary_products (array de sustitución completa), matching_names (array de SUSTITUCIÓN COMPLETA; envía todas las variantes que quieras conservar), additional_owned_domains (array de SUSTITUCIÓN COMPLETA de hasta 10 dominios; cada uno debe ser el dominio propio de un sitio web, así que se rechazan los subdominios y las plataformas compartidas por muchas empresas; [] vacía la lista; solo puede enviarlo el propietario de la cuenta).

Asistente de borradores de proyecto

Asistente de creación de proyectos en varios pasos con sugerencias de IA: POST /project_drafts inicia un borrador (devuelve el nombre, la descripción y el sector sugeridos para la URL), PATCH envía cada paso (details, prompts, competitors, owned_media) con una validación estricta del avance entre pasos y devuelve sugerencias para el siguiente paso, y POST /project_drafts/:id/finalize crea el proyecto real. Los borradores caducan tras 24h.

  • La website_url inicial debe ser una URL HTTP(S) pública con un nombre de host DNS o una dirección IP pública. Se rechazan las URL con credenciales, las direcciones IP privadas y especiales, localhost y los nombres de host internos. Pasos: details (name obligatorio), prompts (máx. 100, sujeto a cuota), competitors (limitado por plan), owned_media (opcional, Growth+). Sugerencias por paso, con opción de desactivarlas mediante suggest=false; las URL frías pueden tardar hasta ~2 minutos, configura el timeout del cliente en 180s. Finalize es idempotente y vuelve a comprobar todos los requisitos.