Projetos

Um projeto é uma marca monitorizada: o seu domínio, o idioma, os Prompts e os concorrentes. Quase todos os outros endpoints recebem um project_id, por isso comece por aqui.

GET/dimensions/projects

Lista os projetos do utilizador autenticado (isto é também uma verificação de autenticação).

GET/dimensions/projects/:id

Obtenha informações detalhadas sobre um projeto: nomes correspondentes, setor, modelo de negócio, contagens de prompts por foco de marca e data_coverage (os modelos, países e idiomas que têm efetivamente dados), para que uma única chamada substitua as consultas separadas de modelos e idiomas.

GET/dimensions/models

Lista os modelos presentes nas métricas diárias do projeto.

GET/dimensions/locales

Lista os países e os idiomas presentes nas métricas diárias do projeto.

POST/projects

Cria um projeto completo numa única chamada (modo rápido): projeto, prompts (colocados em fila para execução + categorização), concorrentes e subscrição de email semanal. Idempotente quando é fornecido external_identifier. O projeto pertence sempre ao proprietário da conta.

  • Corpo (JSON): website_url (URL HTTP(S) pública obrigatória, com um nome de anfitrião DNS ou um endereço IP público; são rejeitadas credenciais, endereços IP privados e especiais, localhost e nomes de anfitrião internos), name (obrigatório), main_country (obrigatório), main_language (obrigatório), brand_name, description, industry (uma chave ou um array; uma chave desconhecida é rejeitada e as chaves válidas são indicadas), business_model, target_audience, brand_voice, goals, primary_products (array), matching_names (array), prompts (array, máximo 100), collections (array de {name, prompts}, máximo 50, cada uma associa prompts do mesmo pedido através do respetivo texto exato), competitors (array de {domain, brand_name, matching_names}), owned_media (objeto, plano Growth ou superior), use_subdomain, weekly_email_subscribed, external_identifier (apenas em contas com embed ativado; chave de idempotência, [a-z0-9_-]{1,64}), execute_prompts_immediately (predefinição true).

PATCH/projects/:id

Atualiza o perfil do projeto (o Brand Book e a correspondência de marca), com os mesmos campos das Definições do projeto. Os sete campos do Brand Book (industry, business_model, description, primary_products, target_audience, brand_voice, goals) alimentam todas as tarefas do GEO Writer e as sugestões de prompts. industry, description e target_audience também ajudam as Recomendações a calibrar os seus conselhos. Alterar matching_names reexecuta a correspondência de menções e citações sobre o histórico do projeto em segundo plano (rematching: true; as edições ficam bloqueadas entretanto); uma alteração a brand_name só se aplica a execuções futuras. Campos desconhecidos são rejeitados.

  • Corpo (JSON), envie apenas os campos a alterar: name (nome apresentado; não altera a deteção de menções, salvo se brand_name estiver vazio), brand_name, description, industry (uma chave ou um array, que é armazenado como array), business_model, target_audience, brand_voice, goals, primary_products (array de substituição integral), matching_names (array de substituição integral; envie todas as variantes que pretende manter).

Assistente de rascunhos de projeto

Assistente de projeto em vários passos com sugestões de IA: POST /project_drafts inicia um rascunho (devolve sugestões de nome, descrição e setor para o URL), o PATCH submete cada passo (details, prompts, competitors, owned_media) com um controlo rigoroso da ordem e devolve sugestões para o passo seguinte, e POST /project_drafts/:id/finalize cria o projeto real. Os rascunhos expiram após 24h.

  • O website_url inicial tem de ser um URL HTTP(S) público com um nome de anfitrião DNS ou um endereço IP público. São rejeitadas credenciais, endereços IP privados e especiais, localhost e nomes de anfitrião internos. Passos: details (nome obrigatório), prompts (máximo 100, validado face à quota), competitors (limitado pelo plano), owned_media (opcional, Growth+). Sugestões por passo, com exclusão através de suggest=false; os URLs novos podem demorar até cerca de 2 minutos, pelo que deve definir o timeout do cliente em 180s. A finalização é idempotente e revalida todos os controlos.