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, 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 (array), business_model, target_audience, brand_voice, goals, primary_products (array), matching_names (array), prompts (array, máx. 100), 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), los mismos campos que en la configuración del proyecto. Los campos del Brand Book (description, industry, brand_voice, target_audience) alimentan a GEO Writer, las sugerencias de prompts y las recomendaciones. Cambiar matching_names relanza el emparejamiento de menciones/citaciones sobre el historial del proyecto en segundo plano (rematching: true; mientras tanto, las ediciones quedan bloqueadas); un cambio de brand_name solo se aplica a las ejecuciones futuras. Los campos desconocidos se rechazan.

  • Cuerpo (JSON): envía solo los campos que quieras cambiar: brand_name, description, industry (una sola clave), 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).

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.