Registo de alterações da API

Todas as alterações à API REST e às ferramentas MCP, as mais recentes primeiro.

  1. 2026-10

    Ligações a entidades Google agrupadas à parte. As ligações do Google AI Mode e do AI Overviews para o visualizador de entidades da Google (google.com/searchviewer/...) mantêm o respetivo url, mas passam a indicar google-entity.invalid como domain e host, em vez de google.com, em GET /metrics/top_sources, GET /dimensions/sources, nos endpoints de inteligência de citações e nas exportações. Nunca contam como citações próprias ou de concorrentes, pelo que um projeto ou concorrente com um domínio da Google deixa de ser creditado por elas. Na aplicação, o grupo é apresentado como «Google (entidade)».

  2. 2026-09-30

    As chaves de API deixam de funcionar abaixo do plano Scale. As chaves de API são uma funcionalidade do plano Scale e passam agora a deixar de funcionar enquanto a conta estiver num plano inferior ao Scale, por exemplo, após uma descida de plano: todos os pedidos REST e pedidos a /mcp feitos com uma chave devolvem ERR_PLAN_REQUIRED (403). As chaves não são revogadas: continuam listadas, podem continuar a ser revogadas e voltam a funcionar quando a conta regressa ao plano Scale ou superior. O MCP através de OAuth não é afetado.

  3. 2026-09-29 (v1.52.0)

    Editar os ficheiros de relatórios llms.txt através da API. PATCH /technical_geo_reports/:id/content substitui os ficheiros llms.txt e llms-full.txt de um relatório llms.txt concluído: envie report_type=llms_txt, um objeto edits com o texto integral novo de llms_txt e/ou llms_full_txt, e o content_version que leu da última vez. Os detalhes do relatório passam agora a devolver result_data.content_version. Um content_version desatualizado ou em falta, um ficheiro vazio, um ficheiro com mais de 200 000 caracteres ou um relatório ainda não concluído devolve ERR_INVALID_PARAM, e a resposta da atualização passa a incluir changed_files. A primeira edição guarda os ficheiros gerados em original_llms_txt_content e original_llms_full_txt_content, e POST /technical_geo_reports/:id/revert_content repõe esses ficheiros. Duas ferramentas MCP correspondem aos endpoints: update_technical_geo_report_content e revert_technical_geo_report_content. Ambas as operações de escrita requerem uma chave com âmbito de escrita e, para membros da equipa, permissão de criação em GEO Optimization.

  4. 2026-09-29 (v1.52.0)

    Idioma de saída automático nos relatórios llms.txt. output_language_code em POST /technical_geo_reports e create_technical_geo_report passa também a aceitar auto, que mantém os ficheiros llms.txt no idioma usado pelo próprio site. A resposta de criação devolve auto e, em seguida, o relatório devolve output_language_code: null.

  5. 2026-09-28 (v1.51.1)

    Quota de relatórios de GEO técnico. POST /technical_geo_reports e create_technical_geo_report passam a contabilizar cada relatório criado com êxito como uma unidade diária. A opção «Executar tudo» tenta criar nove relatórios e só começa quando restam pelo menos nove unidades diárias. Os relatórios que não forem criados não consomem unidades. As alocações diárias variam consoante a conta.

  6. 2026-09-28 (v1.51.0)

    Os esquemas das respostas correspondem ao que a API envia. As respostas não mudam no formato transmitido; o documento OpenAPI e os SDKs oficiais passam agora a descrevê-las corretamente. Os pontos de GET /metrics/timeseries, GET /metrics/summary e da série over_time de GET /metrics/sov (TimeseriesPoint) passam a conter uma data de calendário, como 2026-09-01 (o primeiro dia do período quando a granularidade é semanal ou mensal), em vez de um carimbo temporal, e value é null para métricas de taxa, posição e sentimento nos dias sem respostas. Antes, os SDKs de Go, Java, Kotlin, Rust e C# não conseguiam descodificar estes pontos. Nos SDKs tipados, date passa a ser um tipo de data, por exemplo LocalDate em Java e Kotlin, DateOnly em C#, NaiveDate em Rust, date em Python e uma string em Go. Os campos que a API pode devolver como null passam agora a ser declarados anuláveis, o que antes era rejeitado pelo SDK de C#: brand_name, url, description, business_model, target_audience, brand_voice, goals, google_play_id e app_store_id em GET /dimensions/projects/{id}; matching_names, google_play_id, app_store_id e color em GET /dimensions/competitors/{id}; domain no objeto do projeto em GET /metrics/timeseries, GET /metrics/summary e GET /metrics/sov, e na linha da marca própria de GET /dimensions/competitors, quando o projeto não tem URL; response, executed_at, success, duration_ms e fan_out_queries em GET /answers/{id}; result_data nas tarefas de GEO Writer; e last_delivered_at nas subscrições de webhooks. duration_ms é um número com uma casa decimal, não um número inteiro. No SDK de Go, os campos que não são arrays usam agora os tipos wrapper Nullable*.

  7. 2026-09-28 (v1.50.1)

    Paridade no acesso a sentimentos. GET /sentiments e GET /dimensions/sentiments passam agora a exigir o plano Growth. As ferramentas MCP correspondentes aplicam o mesmo requisito de plano e devolvem ERR_PLAN_REQUIRED a chamadas diretas feitas abaixo desse nível.

  8. 2026-09-28 (v1.50.0)

    Configuração de projetos com menos chamadas. POST /projects e a ferramenta MCP create_project aceitam collections, uma lista de {name, prompts} que cria etiquetas de prompts com o projeto e atribui etiquetas aos prompts do mesmo pedido com base no respetivo texto, e a resposta passa a incluir collections e same_domain_projects (projetos que já pode ver no mesmo domínio; a criação nunca é bloqueada). industry aceita uma chave ou um array na criação, em rascunho e na atualização, e uma chave desconhecida passa agora a indicar quais são as válidas. PATCH /projects/:id e update_project aceitam name. Os períodos de GET /metrics/sov passam a incluir confidence e margin_of_error, além de um sample de nível superior. GET /account e get_account_usage passam a incluir plan_name. Apenas no MCP: get_sov aceita view=compact e list_prompts aceita fields.

  9. 2026-09

    Código para exigir um plano nas ferramentas MCP com acesso condicionado. Uma chamada direta a tools/call para uma ferramenta não incluída no plano passa agora a devolver code: "ERR_PLAN_REQUIRED" junto a error, o mesmo código que os endpoints REST devolvem quando o plano não dá acesso. O texto de error não muda.

  10. 2026-09 (v1.49.0)

    As menções em páginas são apresentadas por projeto. Os campos de menções em páginas de GET /citation_intelligence/groups, GET /citation_intelligence/urls/{url_sha256} e /content, incluindo as contagens de menções por domínio e anfitrião e o filtro content_gap, passam a descrever a análise da página citada para o projeto que faz o pedido. Uma página ainda não analisada para o projeto, incluindo uma guardada antes de o projeto a citar, devolve null para brand_mentioned e competitor_mentioned em vez de false, content_gap_status: mentions_not_processed e page_cache.mentions_processed: false, e as contagens de menções de um grupo são null quando nenhuma das respetivas páginas foi analisada. A mesma regra aplica-se a page_details em GET /answers/{id}, ao filtro mention_filter em GET /dimensions/sources e às ferramentas MCP correspondentes. mentions_not_processed já era devolvido antes desta versão e passa agora a estar documentado.

  11. 2026-09 (v1.48.0)

    Ligações para a aplicação. As respostas (GET /answers, GET /answers/{id}, GET /dimensions/prompt_executions), os prompts (GET /dimensions/prompts, GET /metrics/prompt_summary) e os relatórios técnicos GEO (GET /technical_geo_reports, GET /technical_geo_reports/{id}) passam a devolver app_url, a ligação que abre o registo na aplicação. POST /technical_geo_reports devolve app_urls, uma ligação por relatório criado, identificada pelo tipo de relatório. Cada ligação termina em ?project_id=, pelo que abre o projeto para qualquer utilizador com acesso. As ferramentas MCP devolvem as mesmas ligações.

  12. 2026-09 (v1.47.0)

    Idioma de saída e edições manuais de llms.txt. POST /technical_geo_reports e a ferramenta MCP create_technical_geo_report passam a aceitar output_language_code (ISO 639-1, com o idioma do projeto como valor predefinido) para o relatório llms.txt do conjunto. Os resumos dos relatórios passam a expor output_language_code e um result_data llms.txt concluído acrescenta manually_edited_at, original_llms_txt_content, original_llms_full_txt_content e metadata.output_language_code: quando os ficheiros são editados na aplicação, llms_txt_content e llms_full_txt_content devolvem o texto editado.

  13. 2026-09 (v1.46.0)

    O parâmetro filters do Search Console passa a estar disponível nos SDK oficiais. O parâmetro aceita a lista completa como um único valor JSON, filters=[{"dimension":"page","operator":"contains","expression":"/blog/"}], porque não existe um formato de parâmetro de consulta para arrays de objetos que um cliente gerado consiga produzir. A codificação existente com parênteses retos, filters[][dimension]=page, não muda e continua a funcionar.

  14. 2026-09 (v1.45.0)

    Os filtros de modelo passam a aceitar naver_ai e baidu_ai para contas que tenham ativado esses suplementos em regime de autosserviço.

  15. 2026-09

    Compatibilidade do diretório MCP. As descrições das ferramentas passam a indicar apenas a respetiva operação, entradas, limites e efeitos secundários. Foram removidas as instruções de orquestração entre ferramentas e sobre o comportamento do modelo. Os guias de análise orientada continuam disponíveis através da funcionalidade de prompts MCP iniciada pelo utilizador, mas deixam de ser expostos por get_analysis_playbook, uma vez que as ferramentas não devem injetar instruções comportamentais dinamicamente.

  16. 2026-09 (v1.44.0)

    Os URLs citados mantêm as métricas de citação quando o conteúdo da página está indisponível. Quando não se sabe se uma página contém menções, a API passa a devolver null; content_gap_status passa a incluir content_unavailable. Os resultados vazios do rastreio deixam de ser apresentados como páginas analisadas. Os estados 404 e 410 observados continuam visíveis.

  17. 2026-09

    Códigos legíveis por máquina nos erros das ferramentas MCP. Uma chamada tools/call com falha continua a devolver isError: true e o respetivo texto passa a incluir code junto de error sempre que esse estado tenha um equivalente REST, usando o mesmo valor devolvido pelo endpoint REST: ERR_PROJECT_NOT_FOUND, ERR_INVALID_PARAM, ERR_INVALID_RANGE, os três códigos Search Console (ERR_SEARCH_CONSOLE_NOT_CONNECTED, ERR_SEARCH_CONSOLE_ACCESS_REVOKED, ERR_SEARCH_CONSOLE_UPSTREAM) e ERR_AI_TRAFFIC_NOT_CONNECTED / ERR_AGENT_TRAFFIC_NOT_CONNECTED. O texto de error não muda.

  18. 2026-09

    Webhook para edições manuais de GEO Writer (v1.43.0). É criado um novo tipo de evento, intelligence_task.updated, quando o texto de uma tarefa concluída é editado manualmente ou reposto para a versão de IA. Os dois payloads de eventos GEO Writer passam a incluir manually_edited_at, que é null numa tarefa nunca editada ou acabada de repor. Subscreva-o com POST /webhooks, como qualquer outro evento; GET /webhooks/sample/intelligence_task.updated devolve payloads de exemplo. Os conectores Zapier, Make e n8n expõem-no como um novo acionador.

  19. 2026-09

    Editar o resultado de GEO Writer depois da geração (v1.42.0). PATCH /intelligence_tasks/:id edita diretamente o texto de uma tarefa concluída: envie um objeto edits cujas chaves sejam caminhos separados por pontos dentro de result_data (por exemplo, sections.0.content ou title) e cujos valores sejam o texto de substituição. Só podem ser alterados campos de texto que já existam; um caminho não resolvido, um title vazio ou um valor com mais de 20 000 caracteres devolve ERR_INVALID_PARAM. A primeira edição guarda uma cópia do resultado gerado e POST /intelligence_tasks/:id/revert repõe essa versão. Os payloads das tarefas passam a incluir manually_edited_at (lista e detalhes) e edited_by_user_id (detalhes); a resposta da atualização acrescenta changed_paths. Duas ferramentas MCP reproduzem os endpoints: update_intelligence_task_content e revert_intelligence_task_content. Ambas as escritas exigem uma chave com âmbito de escrita e, para membros da equipa, permissão de edição em GEO Writer.

  20. 2026-09

    Filtros do cálculo da quota de menções por domínio citado (v1.42.0). GET /citation_intelligence/mentions_by_domain e a ferramenta MCP get_mentions_by_citing_domain passam a aceitar brand_kind (brand, brand_other ou non_brand) e a aplicar esse filtro ao universo de respostas do projeto, em conjunto com os filtros de modelo, país, idioma e coleção. Se o parâmetro for omitido, mantém-se o comportamento anterior, que inclui todos os tipos de marca. O endpoint REST rejeita valores inválidos com ERR_INVALID_PARAM; a ferramenta MCP devolve um erro de validação.

  21. 2026-09

    Duas correções Search Console (v1.41.0). Uma dimension desconhecida passa a devolver ERR_INVALID_PARAM, em vez de ser ignorada sem aviso; os valores das divisões page e query mantêm as maiúsculas e minúsculas devolvidas pelo Google, em vez de serem convertidos para minúsculas, uma vez que os URLs das páginas distinguem maiúsculas de minúsculas.

  22. 2026-09

    Os endpoints Search Console passam a aceitar todo o vocabulário de consultas Google (v1.41.0). Os quatro endpoints /search_console/* e as respetivas ferramentas MCP passam a aceitar três novos parâmetros da consulta Search Analytics disponibilizada pelo Google: search_type (web, image, video, news, discover, googleNews), filters (um array de objetos {dimension, operator, expression} combinados com AND; dois dos seis operadores são expressões regulares RE2) e data_state (final por predefinição, ou all para incluir os dias mais recentes, ainda incompletos). GET /search_console/summary passa também a apresentar divisões por page, query e searchAppearance, além de country e device, com um limite definido por limit (predefinição e máximo: 1000). Os intervalos de datas passam de 400 para 487 dias, os 16 meses de retenção aplicados pelo Google.

  23. 2026-09

    Correções dos intervalos de datas e das agregações (v1.40.0). Um valor to que contém apenas uma data (por exemplo, to=2026-09-01) passa a abranger esse dia inteiro. Antes, era interpretado como meia-noite, excluindo o último dia e encurtando todos os intervalos em um dia. Os clientes que já enviam uma data e hora completas não são afetados. Os períodos semanais e mensais em GET /reports/ai_model_insights/* passam a dividir o total do período, em vez de calcular a média das percentagens diárias, para que um dia de maior atividade não conte o mesmo que um dia mais calmo. As médias de posições passam a ponderar cada linha pelo número de posições que contém, em vez de tratarem todas as linhas da mesma forma. As linhas removidas de um projeto deixam de contar para menções, citações, origens ou sentimentos em qualquer endpoint de leitura.

  24. 2026-09

    Moeda nas linhas dos resultados de compras. GET /dimensions/shopping com view=merchants passa a devolver um campo currency que indica a moeda em que são expressos os valores de min_price, max_price e avg_price. Os fornecedores definem os preços de cada mercado na respetiva moeda e não enviam um campo próprio para a identificar; por isso, um comerciante que venda em mais de uma moeda passa a apresentar a moeda usada na maioria dos seus preços, em vez de calcular uma média entre moedas, e um intervalo de preços nunca mistura moedas diferentes. O valor é null quando não foi possível identificar a moeda de nenhum preço. Em view=products, currency passa a identificar a moeda de max_price, e um novo campo currency_count indica em quantas moedas o produto tinha preços: um valor superior a 1 significa que a linha apresenta a oferta com o preço mais alto e que min_price pode estar noutra moeda. totals.avg_price passa a ser calculado numa única moeda, em vez de resultar de uma média entre moedas, e totals.avg_price_currency identifica essa moeda. Não há novos endpoints nem códigos de erro.

  25. 2026-09

    Detalhes de erro mais claros e filtro de modelo mais rigoroso nas respostas (v1.38.0). Os erros com detalhes em error.meta.message passam a incluir também esses detalhes em error.message. error.meta não muda. Os erros sem detalhes continuam a usar tokens de mensagem predefinidos, como missing_authorization. Use sempre error.code para decidir como tratar o erro, nunca o texto da mensagem. GET /answers passa a rejeitar valores model que a conta não monitoriza, devolvendo 422 ERR_INVALID_PARAM em vez de ignorar o filtro. As descrições de ERR_LIMIT_REACHED e ERR_QUOTA_EXCEEDED passam a indicar todos os limites abrangidos por cada código.

  26. 2026-09

    Chaves revogadas e respostas de âmbito de escrita (v1.37.1). Uma chave de API revogada passa agora a devolver 403 ERR_REVOKED_API_KEY, conforme documentado, em vez de 401 ERR_INVALID_API_KEY. A chave de um membro da equipa é recusada da mesma forma enquanto o titular da conta estiver bloqueado ou com a eliminação pendente. POST /intelligence_tasks, PATCH /project_drafts/:id e POST /project_drafts/:id/finalize passam a documentar a resposta 403 ERR_INSUFFICIENT_SCOPE recebida por uma chave só de leitura, em linha com as restantes operações de escrita.

  27. 2026-09

    Códigos de erro Search Console e contrato de leitura em tempo real (v1.37.0). Quando as leituras em tempo real estão ativadas, os quatro endpoints /search_console/* devolvem ERR_SEARCH_CONSOLE_ACCESS_REVOKED (403) se o acesso Google tiver sido revogado; volte a ligar a propriedade em Preferências > Definições do projeto > Ligações de dados. Devolvem ERR_SEARCH_CONSOLE_UPSTREAM (503) quando o Google Search Console está indisponível ou excede a quota; aguarde o número de segundos indicado em Retry-After antes de tentar novamente. As ferramentas MCP comunicam estas situações como erros de ferramenta. O cabeçalho de resposta X-Search-Console-Backend identifica as leituras stored ou live. As leituras armazenadas usam dados sincronizados, sem contactar o Google. Para consultas e páginas, total conta as chaves distintas disponíveis no período: chaves das linhas diárias sincronizadas nas leituras armazenadas ou até 25 000 linhas de um pedido ao Google nas leituras em tempo real. As respostas em tempo real incluem truncated: true quando atingem esse limite. A ordenação e a paginação aplicam-se ao conjunto disponível.

  28. 2026-09

    Correspondência de URLs de citações por concorrente (v1.36.0). POST /competitors e PATCH /competitors/:id passam a aceitar o campo opcional citation_match_mode com os valores domain, host ou path_prefix. citation_match_path é obrigatório quando se usa path_prefix. PATCH /competitors/:id passa também a permitir alterar domain, que guarda o domínio do site ou o anfitrião exato usado pela regra. As respostas de leitura dos concorrentes passam a devolver os campos da regra. A alteração do site ou de qualquer uma das definições da regra volta a classificar citações históricas em segundo plano, para que as métricas históricas e a atribuição de origens reflitam a nova configuração.

  29. 2026-08 (final do mês)

    A referência pública da API passa a ter uma página por recurso. https://llmpulse.ai/api-docs passa a incluir os primeiros passos (chaves, primeira chamada, utilização da conta) e ligações para uma página por recurso: /api-docs/projects, /api-docs/metrics, /api-docs/prompts, /api-docs/webhooks, /api-docs/core-concepts (filtros partilhados, formatos de saída, códigos de erro), /api-docs/integrations (exemplos de código, Postman, MCP), /api-docs/oauth e as restantes, acessíveis a partir de todas as outras páginas. As ligações antigas para secções específicas, como /api-docs#webhooks, passam a encaminhar para a página onde a secção se encontra agora. llms.txt lista o URL da documentação de cada grupo de recursos, juntamente com os respetivos endpoints. Os utilizadores com sessão iniciada e Scale+ continuam a ter a referência completa numa só página, com a área de testes interativos, na aplicação, em API Keys. Nenhum endpoint, parâmetro, payload ou código de erro mudou.

  30. 2026-08 (final do mês)

    Enumerações do perfil do projeto atualizadas (v1.35.0). business_model passa a descrever um único aspeto, a forma como uma marca vende, em vez de combinar o canal e o setor. As chaves aceites são B2B_SAAS, B2C_SUBSCRIPTION, ECOMMERCE, RETAIL, MARKETPLACE, LEAD_GENERATION, SERVICES, ENTERPRISE_SOFTWARE, MEDIA_ADVERTISING, EDUCATION_TRAINING, NONPROFIT_PUBLIC e OTHER. As chaves descontinuadas (B2B_CLOUD_SERVICES, B2C_SMART_HOME, B2C_STREAMING, B2C_GAMING) são convertidas para o valor atual mais próximo em POST /projects e PATCH /projects/:id, em vez de serem rejeitadas, para manter a compatibilidade com as integrações existentes; as chaves realmente desconhecidas continuam a devolver ERR_INVALID_PARAM. industry passa a aceitar 34 chaves em vez de 19, incluindo setores que antes tinham de usar OTHER. Os valores armazenados foram migrados, pelo que um projeto criado antes desta alteração passa a devolver a nova chave quando consultado. O campo complementar de texto livre business_model_other passa a fazer parte da API: envie-o juntamente com business_model: OTHER em POST /projects ou PATCH /projects/:id (e nas ferramentas MCP create_project / update_project) para que seja devolvido no payload do projeto. Se for enviado com outra chave, devolve ERR_INVALID_PARAM; é eliminado automaticamente quando o modelo de negócio deixa de ser OTHER.

  31. 2026-08 (final do mês)

    Filtros de análise com vários valores (v1.34.0). collection_id, country_code, language_code e prompt_type passam a aceitar um valor ou uma lista separada por vírgulas nos endpoints de métricas, dimensões, respostas, Citation Intelligence e AI Model Insights que já suportam esses filtros. GET /sentiments passa também a aceitar vários valores analysis. Os valores dentro do mesmo filtro são combinados com OR; filtros diferentes são combinados com AND. Os pedidos com um único valor continuam a funcionar sem alterações, e as ferramentas MCP correspondentes seguem o mesmo contrato.

  32. 2026-08 (final do mês)

    Consulta de relatórios técnicos GEO (v1.33.0). GET /technical_geo_reports lista relatórios por project_id e report_type, enquanto GET /technical_geo_reports/:id devolve o estado atual e o result_data completo quando o relatório estiver concluído. As novas ferramentas MCP list_technical_geo_reports e get_technical_geo_report oferecem o mesmo acesso, e create_technical_geo_report passa a devolver os IDs dos relatórios e a indicar aos clientes que os consultem. Claude e outros clientes MCP podem agora iniciar, aguardar e consultar relatórios técnicos GEO na mesma conversa, sem passos de copiar e colar.

  33. 2026-08 (final do mês)

    Registos sentinela de ausência de resposta passam a ser expostos como no_result. Quando um fornecedor não devolve uma resposta a um prompt após todas as tentativas, o texto armazenado é um marcador e não uma resposta real da IA; estas linhas já eram excluídas de todas as métricas da plataforma, mas não se distinguiam através da API. Os itens de GET /answers e GET /answers/:id passam a incluir um valor booleano no_result, e GET /answers (bem como a ferramenta MCP list_answers) passa a aceitar o filtro opcional no_result: false = apenas respostas reais (recomendado para calcular as suas próprias métricas), true = apenas marcadores, omitido = ambos (formato anterior mantido).

  34. 2026-08 (meados do mês)

    Atualizações do perfil do projeto e Brand Book na criação (v1.31.0). O novo endpoint PATCH /api/v1/projects/:id atualiza o perfil de um projeto depois da criação, com os mesmos campos das Definições do projeto: brand_name, description, industry, business_model, target_audience, brand_voice, goals, primary_products e matching_names. Os campos do Brand Book (description, industry, brand_voice, target_audience) alimentam o GEO Writer, as sugestões de prompts e as recomendações, permitindo a sincronização programática do contexto da marca por sistemas externos. Envie apenas os campos que pretende alterar; os campos desconhecidos devolvem ERR_INVALID_PARAM. A alteração de matching_names (lista de substituição completa) volta a executar a correspondência de menções/citações em todo o histórico do projeto em segundo plano (rematching: true; não são aceites novas alterações durante o processo), enquanto uma alteração de brand_name só se aplica a execuções futuras. POST /api/v1/projects (e a ferramenta MCP create_project) passam a aceitar business_model, target_audience, brand_voice, goals e primary_products na criação. A ferramenta MCP update_project existente e o novo endpoint REST passam a partilhar exatamente o mesmo serviço. É necessária uma chave com âmbito read_write; os membros da equipa precisam da permissão de atualização de Projects.

  35. 2026-08 (meados do mês)

    Correções de filtros nas novas listas (v1.30.0). Os filtros que estavam documentados, mas eram ignorados sem aviso, passam a funcionar. store (meios próprios) e status (tópicos do Reddit) chegam à consulta em vez de serem descartados; assim, store=app_store e status=archived deixam de devolver linhas sem filtro. owned=true passa a ser aplicado a GET /dimensions/shopping?view=merchants, que antes devolvia todos os comerciantes, incluindo concorrentes, e a GET /dimensions/owned_media?provider=mobile_apps, cujas linhas passam a incluir o indicador yours, já devolvido por todos os outros fornecedores. Para este fornecedor, total passa a ser a contagem total do ranking (com o limite de 500) em vez do tamanho da página, que levava os clientes com paginação a concluir que não havia resultados após a página 1. direction=desc passa a ordenar alfabeticamente em sentido descendente os campos de texto de GET /dimensions/query_fan_outs (order=query_text, order=prompt_text), que antes eram sempre ascendentes; ambos passam a usar a ordenação descendente por predefinição, tal como as restantes ordenações. O parâmetro view de cada endpoint passa finalmente a poder ser combinado com output=flat ou output=csv (por exemplo, ?view=merchants&output=csv), combinação que antes devolvia ERR_INVALID_PARAM; as respostas planas passam a devolver view, provider e store. GET /account passa a indicar o limite de pedidos da chave usada, em vez do valor predefinido, e o respetivo bloco subscription fica limitado a quem pode aceder a Faturação e planos. Os estudos passam a estar limitados aos projetos a que o utilizador pode aceder.

  36. Agosto de 2026 (meados): Seis novas áreas de produto (v1.29.0). Cartões de produtos disponíveis para compra e anúncios pagos em respostas de IA: GET /api/v1/dimensions/shopping e GET /api/v1/dimensions/ads (Scale+). Canais próprios e comunidades: GET /api/v1/dimensions/owned_media (YouTube, Instagram, Facebook, TikTok, LinkedIn, lojas de aplicações) e GET /api/v1/dimensions/reddit (Growth+). Relatórios de análise com vários modelos: GET /api/v1/reputation/reports, GET /api/v1/reputation/reports/:id, GET /api/v1/studies, GET /api/v1/studies/:id e GET /api/v1/studies/:id/reports/:report_id (requer monitorização da reputação). Os endpoints de produtos e anúncios são deliberadamente independentes do modelo, em vez de terem o nome de um assistente específico, uma vez que os dados subjacentes sempre usaram a enumeração padrão de modelos. Nove ferramentas MCP correspondentes: list_shopping_products, list_ads, list_reddit_citations, list_owned_media, list_reputation_reports, get_reputation_report, list_studies, get_study, get_study_report. Todos os nove endpoints suportam output=flat e output=csv.

  37. 2026-08

    Expansão de consultas na API e no MCP (v1.28.0). O novo endpoint GET /api/v1/dimensions/query_fan_outs expõe as subconsultas que um modelo efetivamente fez ao responder aos prompts monitorizados, que muitas vezes diferem da formulação escrita por si. view=query (predefinição) devolve uma linha por subconsulta distinta, com a contagem de ocorrências e a respetiva quota; view=prompt devolve uma linha por prompt, com o número de subconsultas distintas que originou. Aceita os filtros de prompts habituais e ainda query (pesquisa parcial), order, direction e output para saída plana/CSV; uma ordenação incompatível com a vista escolhida devolve ERR_INVALID_PARAM. A ferramenta MCP correspondente é list_query_fan_outs. A expansão de consultas é comunicada sobretudo pelo ChatGPT, pelo que um resultado vazio costuma indicar que os modelos abrangidos não disponibilizam esses dados, e não que não tenha havido pesquisas. O endpoint devolve apenas os agregados: para comparar períodos, faça duas chamadas com from/to explícitos. As duas interfaces estão sujeitas à mesma permissão de membro da equipa Query Fan Out que a página na aplicação.

  38. 2026-08

    Utilização da conta, cabeçalhos de limite de pedidos e glossário MCP (v1.27.0). O novo endpoint GET /api/v1/account devolve o plano, a frequência de monitorização, o período da subscrição, o consumo de quotas (prompts, projetos, concorrentes por projeto, tarefas GEO Writer mensais e membros da equipa) e os limites aplicáveis à chave, para que uma integração possa consultar o saldo disponível sem ter de ultrapassar o limite. Uma quota ilimitada devolve limit e remaining como null e unlimited: true. A ferramenta MCP correspondente é get_account_usage, disponível em todos os planos. Os limites são determinados pela conta do titular, pelo que um membro da equipa vê a capacidade que lhe é aplicável. Todas as respostas /api/v1 passam a incluir X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset (a resposta 429 ERR_RATE_LIMITED inclui-os juntamente com Retry-After); os dois limites, 300 pedidos por minuto no total e 60 por minuto para escritas, passam a estar documentados. O servidor MCP passa também a disponibilizar o novo recurso llmpulse://glossary, que define cada métrica, unidade, dimensão e ressalva de interpretação (visibility face a AI Visibility Score, denominadores de Share of Voice, foco na marca, períodos parciais e amostras reduzidas), para que um assistente possa consultar as definições em vez de as inferir. Nenhum endpoint, parâmetro, payload ou código de erro existente mudou.

  39. 2026-08

    Agent Readiness integrado no conjunto de relatórios técnicos GEO (v1.26.0). POST /technical_geo_reports passa também a criar um relatório agent_readiness que avalia a preparação do domínio para agentes de IA, pelo que created_reports e report_ids passam a incluir a nova chave agent_readiness (9 relatórios por execução, em vez de 8). A ferramenta MCP create_technical_geo_report cria o mesmo conjunto. As chaves e os formatos das respostas existentes não mudam.

  40. 2026-08

    Monitorização semanal de Grok e DeepSeek. Os valores de filtro model grok e deepseek passam a devolver dados reais de visibilidade semanal nas contas com esses suplementos ativados, em todos os endpoints de métricas, dimensões, respostas, sentimentos e citações (antes eram aceites como valores de filtro, mas não correspondiam a execuções). As respostas do Grok provêm da respetiva pesquisa Web nativa, pelo que incluem origens e citações como as dos restantes modelos. As respostas de DeepSeek não incluem origens nem citações: o DeepSeek não disponibiliza pesquisa Web, pelo que as respostas refletem o conhecimento do próprio modelo. As linhas DeepSeek devolvem citations: 0 e uma lista de origens vazia, por conceção; visibility, mention_rate, Share of Voice e sentimento funcionam normalmente. O formato das respostas não muda e os modelos que o utilizador da chave de API não ativou continuam a ser descartados sem aviso.

  41. 2026-08

    Cartão público do servidor MCP. O novo endpoint GET /api/v1/mcp/server-card devolve um cartão de servidor Model Context Protocol com a descrição do endpoint, o transporte HTTP com streaming, as versões do protocolo aceites e o cabeçalho Authorization que o cliente deve enviar. Não requer autenticação, pois é um documento que o cliente consulta antes de obter credenciais, e não contém credenciais. O cartão é anunciado no catálogo Agentic Resource Discovery em /.well-known/ai-catalog.json, cuja entrada MCP passa a usar o tipo de media correto application/mcp-server-card+json e aponta para o cartão, em vez de apontar para o endpoint de transporte. O cartão não é servido deliberadamente em /.well-known/mcp/server-card.json: a especificação MCP exclui esse local. A LLM Pulse passa também a publicar um catálogo da API em /.well-known/api-catalog (RFC 9727) e um índice de competências de agentes em /.well-known/agent-skills/index.json.

  42. 2026-08

    Referência da API reorganizada por recurso. A documentação em /api-docs, as especificações OpenAPI e Swagger, o índice legível por máquina llms.txt e a coleção Postman passam a agrupar cada endpoint pelo recurso a que pertence (Projects, Metrics, Competitors, Prompts, Collections & Tags, Answers, Mentions & Citations, Sentiments, Sources & Citation Intelligence, AI Model Insights, AI & Agent Traffic, Search Console, Recommendations, GEO Writer, Technical GEO Reports, Annotations, Webhooks, MCP), apresentando leituras e escritas em conjunto e na mesma ordem em todas as superfícies. A lista de etiquetas OpenAPI passa a declarar todas as etiquetas utilizadas: Projects, Competitors, Collections, Annotations, Reports e OAuth estavam em falta, pelo que Swagger UI e Redoc apresentavam esses endpoints no fim, sem descrição. POST /projects e o assistente /project_drafts, que antes não constavam de llms.txt, passam a ser listados, e a coleção Postman passa a abranger todos os endpoints, em vez das duas pastas originais. Nenhum endpoint, parâmetro, payload ou código de erro mudou.

  43. 2026-08

    Amazon Rufus passa a chamar-se Alexa for Shopping. A Amazon mudou o nome do seu assistente de compras, pelo que o modelo passa a chamar-se Alexa for Shopping na aplicação, no site e na documentação. As integrações não mudam: o valor da API continua a ser amazon_rufus no filtro model e em todas as respostas, e os dados históricos mantêm-se. Não é necessária qualquer ação.

  44. 2026-08

    CLI Rust nativa e SDK oficiais. A CLI v2 substitui a implementação JavaScript por binários nativos para macOS, Linux e Windows, mantendo o formato de configuração e perfis existente. Os comandos tipados abrangem as 71 operações REST, com saída JSON, tabela e CSV, além de um comando REST direto. Passam a ser mantidos clientes oficiais gerados para TypeScript, Python, Go, Java, Kotlin, C#, PHP, Ruby, Rust, Swift, Dart e R. O documento OpenAPI usa campos anuláveis compatíveis com OpenAPI 3.0, para que todos os clientes possam ser gerados com a mesma cadeia de ferramentas fixada.

  45. 2026-08

    Anotações automáticas e acesso em todos os planos (v1.23.0). As anotações passam a estar disponíveis em todos os planos, incluindo Starter e contas em período de teste. As linhas devolvidas por GET /annotations e pela ferramenta MCP list_annotations incluem origin: manual, automation, geo_test ou platform. As anotações automáticas do projeto registam alterações diárias ao conjunto de prompts, aos modelos de IA ativados e à frequência de monitorização. Os campos e o comportamento de escrita existentes não mudam.

  46. 2026-08

    Tamanho da amostra de Share of Voice e agrupamento por modelo (v1.22.0). GET /metrics/sov passa a devolver um array periods que indica, por intervalo, o total de mentions usado para calcular as quotas (tamanho da amostra: um intervalo com 1-3 menções apresenta quotas de 100/50/33.33 e deve ser interpretado como uma amostra reduzida) e uma indicação partial que assinala intervalos ainda a recolher dados ou limitados pelo período pedido. Cada linha current inclui também diferenças pré-calculadas: previous_share (último intervalo completo) e avg_share (média dos intervalos completos com dados; os intervalos parciais são excluídos). Os campos existentes não mudam. A ferramenta MCP get_sov passa a aceitar group_by=model, devolvendo numa chamada uma comparação compacta das quotas por modelo (adicione include_series=true para obter séries de tendência por modelo). Todas as ferramentas MCP com âmbito de projeto passam a aceitar o domínio do projeto ou o nome/nome de marca exato em project_id, além do ID numérico. As respostas de métricas MCP passam a incluir uma ligação de origem app_url, e as ferramentas de métricas MCP passam a apresentar widgets interativos nos ambientes que os suportam: gráfico circular de Share of Voice, cartão-resumo de visibilidade, gráfico de linhas das métricas ao longo do tempo (get_timeseries) e principais domínios citados (get_top_sources).

  47. 2026-07 (final do mês)

    Correção da resposta de criação de projetos (v1.21.1). POST /projects e POST /project_drafts/:id/finalize passam a devolver competitors.processing: false, porque a configuração de concorrentes termina dentro da transação do projeto. As respostas anteriores indicavam incorretamente true. Os URLs dos sites dos projetos passam a devolver ERR_INVALID_PARAM se incluírem credenciais, endereços IP privados ou especiais, localhost ou nomes de anfitrião internos. Continuam a ser aceites nomes de anfitrião DNS públicos, nomes de domínio internacionalizados e endereços IP públicos literais. Um corpo JSON malformado enviado para um endpoint de escrita passa a devolver o erro de análise JSON (da família ERR_INVALID_PARAM), em vez de ERR_PROJECT_NOT_FOUND.

  48. 2026-07 (final do mês)

    Filtros de menções e citações (v1.21.0). GET /answers, GET /dimensions/prompt_executions e GET /dimensions/sources passam a aceitar mention_filter e, nos dois primeiros, citation_filter, a mesma matriz de dois eixos apresentada nas páginas Responses e Citations: a sua marca em relação aos concorrentes, com cada eixo presente, ausente ou indiferente. As opções predefinidas são mentions_you, not_mentions_you, mentions_competitor, not_mentions_competitor, you_and_competitor, competitor_not_you, you_not_competitor e no_brands (não aparece nenhuma marca monitorizada), com as opções equivalentes para citações cites_you, not_cites_you, cites_competitor, not_cites_competitor e cites_no_brands. Combine qualquer uma delas com competitors para limitar o eixo dos concorrentes a rivais específicos; numa opção negativa, significa «nenhum destes». Em /dimensions/sources, o filtro aplica-se ao conteúdo rastreado de cada página citada. As opções desconhecidas devolvem ERR_INVALID_PARAM. Os mesmos argumentos estão disponíveis nas ferramentas MCP list_answers, list_prompt_executions e list_sources.

  49. 2026-07 (final do mês)

    Saída plana e CSV para ferramentas de BI (v1.20.0). Os endpoints de leitura passam a aceitar um parâmetro opcional output: output=flat devolve os mesmos metadados e as colunas retangulares columns e rows; output=csv devolve essas linhas como text/csv. Assim, Tableau (através do respetivo REST API Connector), Excel, Google Sheets e carregadores de data warehouse podem ler a API sem código para percorrer JSON aninhado. /metrics/sov também aceita view=over_time|current|breakdown. Se omitir output, recebe exatamente a resposta que as integrações existentes já recebem. Os erros são sempre JSON, as percentagens mantêm-se na escala de 0 a 100, os endpoints paginados expõem os cabeçalhos X-Total-Count, X-Page e X-Per-Page, e a saída plana tem um limite de 200 000 linhas.

  50. 2026-07 (final do mês)

    Períodos de consulta mais longos para métricas. O período máximo nos endpoints de métricas (/metrics/*), nas listas /dimensions/*, em Citation Intelligence e em AI Model Insights (REST e respetivas ferramentas MCP) aumenta de 400 para 1500 dias, permitindo consultas de todo o histórico. Os endpoints Search Console mantêm o limite de 400 dias, correspondente ao período de retenção dos dados GSC que armazenamos. O conector Looker Studio passa a incluir as opções «Últimos 365 dias», «Todo o período» e «Seguir o intervalo de datas do relatório», além de três novos tipos de relatório (desempenho dos Prompts, Share of Voice, principais origens) baseados nestes endpoints.

  51. 2026-07 (final do mês)

    Expansão da API de escrita: iniciar, atualizar, eliminar (v1.19.0). As recomendações podem agora ser iniciadas através da API: POST /recommendations (MCP launch_recommendations) inicia a geração assíncrona e devolve a execução para consulta; a ferramenta MCP deixa de exigir o cartão de confirmação da conversa na aplicação (os clientes externos iniciam diretamente, enquanto o agente de conversação na aplicação continua a pedir confirmação). Novos endpoints de gestão, cada um com uma ferramenta MCP equivalente: DELETE /prompts/:id, PATCH/DELETE /competitors/:id, PATCH/DELETE /collections/:id e um conjunto completo para anotações (GET /annotations, PATCH/DELETE /annotations/:id, Growth+). As eliminações são irreversíveis: as linhas desaparecem imediatamente e os dados históricos são eliminados em segundo plano. Todos os endpoints de escrita exigem uma chave de API com âmbito read_write e respeitam a matriz de permissões dos membros da equipa.

  52. 2026-07 (final do mês)

    Revisão de qualidade do MCP (com base numa auditoria externa de agentes). Os valores model desconhecidos e os períodos from/to invertidos passam a devolver ERR_INVALID_PARAM, em vez de serem ignorados sem aviso. GET /metrics/agent_traffic devolve o novo ERR_AGENT_TRAFFIC_NOT_CONNECTED quando não há uma origem de tráfego de agentes ligada. Em GET /metrics/top_sources, avg_visibility passa a ser a percentagem de respostas que citam o domínio (limitada a 0-100). Os campos duration_ms passam a indicar milissegundos reais. Campos adicionais: url_sha256 + created_at nas linhas de origem, matching_names nas linhas da lista de concorrentes, score nas categorias de sentimento, created_at nas anotações criadas e data_through nas respostas Search Console (o GSC publica com um atraso de 2-3 dias). Ferramentas MCP: as ferramentas de listagem aceitam range; list_answers limita as respostas a 1500 caracteres por predefinição (full_text=true devolve mais); a vista de URLs de list_citation_groups é compacta, salvo se include_page_details=true; as ferramentas de URLs citados aceitam url como alternativa ao url_sha256; get_sov passa a incluir todos os concorrentes configurados por predefinição; list_prompts ganha o parâmetro de pesquisa query; e os erros de recurso não encontrado passam a incluir o ID pedido.

  53. 2026-07 (final do mês)

    As subscrições expiradas perdem acesso à API. Quando uma subscrição self-service (Starter, Growth ou Scale) é cancelada e termina o período já pago, após um breve período de tolerância, as chaves de API dessa conta devolvem 403 ERR_ACCOUNT_INACTIVE. As subscrições ativas não são afetadas, tal como os planos pagos por fatura e os planos negociados (Scale+ personalizado, Partner, Enterprise), que continuam a funcionar enquanto a faturação é tratada manualmente. Volte a subscrever na página de faturação para restaurar o acesso. Novo código de erro: ERR_ACCOUNT_INACTIVE (403).

  54. 2026-07 (final do mês)

    Correção da visibilidade em Top Sources. avg_visibility (e o seu alias avg_mention_rate) em GET /metrics/top_sources passa a indicar a percentagem de respostas válidas que citam o domínio: respostas distintas que citam o domínio divididas por todas as respostas válidas do período. Antes, contavam-se as linhas de origem, pelo que uma resposta que citasse um domínio três vezes contava três vezes, e só se dividia pelas respostas que tinham pelo menos uma origem, o que podia produzir valores acima de 100%. As percentagens passam a ser mais baixas e corretas. total_responses não muda.

  55. 2026-07 (final do mês)

    Modelo Amazon Rufus (v1.18.0). O novo modelo de IA amazon_rufus (o assistente de compras da Amazon, então chamado Amazon Rufus e entretanto renomeado Alexa for Shopping) foi lançado como suplemento Enterprise e passa agora a ser um suplemento pago em todos os planos. O filtro model nos endpoints de métricas, dimensões, respostas e sentimentos passa a aceitar amazon_rufus. Tal como nos outros modelos suplementares, os dados só aparecem nas contas em que o modelo está ativado.

  56. 2026-07 (final do mês)

    API do assistente de rascunhos de projeto (v1.17.0). Criação de projetos em várias etapas com sugestões de IA: POST /project_drafts inicia um rascunho e sugere nome/descrição/setor com base no URL; PATCH /project_drafts/:id envia cada etapa (detalhes, prompts, concorrentes, meios próprios) mediante validação rigorosa da sequência e devolve sugestões para a etapa seguinte; GET lê o estado (sugestões apenas a partir da cache, para permitir consultas seguras) e POST .../finalize cria o projeto com os mesmos efeitos exatos do modo rápido, de forma idempotente. Novos códigos de erro: ERR_DRAFT_NOT_FOUND e ERR_DRAFT_STATE. Os rascunhos expiram após 24 horas. São lançadas cinco ferramentas MCP equivalentes: create_project, start_project_draft, get_project_draft, update_project_draft e finalize_project_draft, que partilham exatamente os mesmos serviços REST.

  57. 2026-07 (final do mês)

    API de criação de projetos (v1.16.0). O novo POST /projects cria um projeto completo numa única chamada (modo rápido): campos do projeto, prompts (na fila para execução e classificação imediatas), concorrentes e subscrição de email semanal. Repetir um pedido de forma idempotente através de external_identifier (em contas com embed ativado) devolve o projeto existente com idempotent: true. A opção execute_prompts_immediately: false adia a primeira execução até ao próximo período de monitorização agendado. Aplicam-se os mesmos limites de plano e quotas do assistente na aplicação (ERR_LIMIT_REACHED, ERR_QUOTA_EXCEEDED, ERR_PLAN_REQUIRED).

  58. 2026-07 (final do mês)

    Orientações de utilização do MCP e detalhes de projeto mais completos (v1.15.6). Na inicialização, o servidor MCP passa a enviar instruções de utilização aos clientes de IA ligados: o fluxo de trabalho recomendado, os nomes das métricas, sugestões de eficiência e a regra brand_kind=non_brand para comparações justas entre marca e concorrentes (em conformidade com o valor predefinido da Vista geral na aplicação). Os filtros brand_kind e prompt_type foram adicionados aos três endpoints GET /reports/ai_model_insights/* e às respetivas ferramentas MCP (get_ai_model_summary, get_ai_model_position_distribution, get_ai_overview_results); os valores inválidos devolvem ERR_INVALID_PARAM. GET /dimensions/projects/:id (e a ferramenta MCP get_project_details) passam a incluir stats.prompts_by_brand_kind e um bloco data_coverage que enumera os modelos, países e idiomas com dados, substituindo várias consultas separadas de modelos/locales por uma só chamada.

  59. 2026-07 (meados do mês)

    Consistência das métricas de citações (v1.15.4). As citações e a Citation Rate passam a incluir citações visíveis e referências de origem em segundo plano na Vista geral, em AI Model Insights, no REST e no MCP. As citações em segundo plano não têm uma posição visível e continuam excluídas de avg_position e das distribuições de posições. A identificação da propriedade das origens passa a aplicar de forma consistente a correspondência exata de subdomínios. A vista By Domain continua a agregar por domínio registável. O formato das respostas não muda.

  60. 2026-07 (meados do mês)

    As notificações MCP Streamable HTTP passam a devolver uma resposta 202 vazia. Os clientes rigorosos, como Claude e Codex, conseguem concluir a inicialização sem falhar ao interpretar uma resposta JSON null.

  61. 2026-07 (meados do mês)

    As ligações OAuth MCP passam a expirar após um ano. As credenciais de acesso e de atualização partilham o mesmo prazo fixo de autorização. As respostas de atualização devolvem o mesmo token de atualização reutilizável, para evitar a perda de credenciais e falhas de concorrência nos clientes MCP.

  62. 2026-07 (meados do mês)

    REST e MCP passaram a usar a mesma camada de consulta partilhada. Os endpoints de métricas (/metrics/timeseries, summary, sov, prompt_summary, top_sources, agent_traffic, ai_traffic) e todas as listagens /dimensions/* passam a executar o mesmo código de consulta que as ferramentas MCP equivalentes, para que as duas interfaces devolvam sempre dados idênticos. As ferramentas MCP receberam os filtros que lhes faltavam: prompt_type / brand_kind em get_prompt_summary, get_top_sources e nas ferramentas de listagem, além de source_type em list_sources (cujas linhas passam a incluir source_type e indicadores de ligações para lojas de aplicações, como no REST). A validação de dados de entrada do MCP passa a corresponder à do REST: IDs desconhecidos em collection_id / prompt, datas com formato inválido e intervalos superiores a 400 dias passam a devolver erros, em vez de serem ignorados sem aviso. As linhas de list_prompts passam a incluir collection_ids, e as linhas de resumo do REST passam a incluir o campo metric, que o MCP já devolvia. Mantém-se uma diferença intencional: na granularidade semanal ou mensal, o MCP deixa como null os períodos anteriores ao primeiro ponto de dados nas métricas de taxas e posições, para que não reduzam as médias; o REST continua a preencher esses períodos com 0.0.

  63. 2026-07

    Comércios locais nos detalhes das respostas. GET /answers/:id (e a ferramenta MCP get_answer) passam a incluir um array local_businesses: os estabelecimentos que o ChatGPT apresenta no widget de resultados locais para prompts com intenção local, com nome, morada, telefone, número de avaliações, classificação, domínio do site e posição no ranking; cada um é associado à sua marca ou a um concorrente monitorizado através de is_owned / competitor_id.

  64. 2026-07

    Correções de erros. As ferramentas MCP get_timeseries e get_summary passam a devolver valores reais para net_sentiment, as cinco desagregações sentiment_* e avg_mention_position (antes, todos os pontos de dados eram nulos no MCP; o REST não era afetado), em conformidade com a semântica das métricas REST. GET /dimensions/all_mentions e GET /dimensions/all_citations passam a paginar na base de dados, com ordenação determinística quando há empates em created_at, para que as páginas posteriores dos resultados paginados sejam rápidas e estáveis em projetos grandes; o formato da resposta não muda. Os limites de pedidos definidos para cada chave passam a ser respeitados no limite global da API (o valor predefinido continua a ser 300 pedidos por minuto; contacte-nos para obter limites superiores).

  65. 2026-06 (final do mês)

    API AI Traffic (Scale+). O novo endpoint GET /metrics/ai_traffic expõe o tráfego proveniente de referências de IA, medido pelo fornecedor de análises Web ligado ao projeto (Google Analytics 4, Adobe Analytics, PostHog, Plausible ou Piano): utilizadores, sessões e conversões por dia, agrupados por origem de IA (ChatGPT, Perplexity, Gemini, Claude e outras), com totais e taxa de conversão. Nova ferramenta MCP: get_ai_traffic. Requer o plano Scale ou superior e um fornecedor ligado; os projetos sem um fornecedor devolvem o novo código ERR_AI_TRAFFIC_NOT_CONNECTED (404).

  66. 2026-06 (final do mês)

    API Search Console (Growth+). Os novos endpoints expõem os dados de desempenho do Google Search Console que já sincronizamos para projetos com uma propriedade GSC ligada: GET /search_console/summary (impressões, cliques, CTR e posição média, com divisão opcional por country/device), GET /search_console/timeseries (séries diárias, semanais ou mensais), GET /search_console/queries e GET /search_console/pages (principais consultas/páginas ordenadas por impressões, cliques, CTR ou posição, com paginação). ctr é uma fração entre 0 e 1 e position é a média ponderada pelas impressões, em conformidade com a API Search Console. Novas ferramentas MCP: get_search_console_summary, get_search_console_timeseries, get_search_console_queries, get_search_console_pages. Os projetos sem uma propriedade ligada devolvem o novo código ERR_SEARCH_CONSOLE_NOT_CONNECTED (404).

  67. 2026-06 (final do mês)

    Quota de menções por domínio citado e filtros de origens em lote. Novo endpoint GET /citation_intelligence/mentions_by_domain (e ferramenta MCP get_mentions_by_citing_domain): para as respostas em que é citado cada domínio de origem indicado, devolve a quota de menções da marca face à dos concorrentes, normalizada para que os intervenientes de cada domínio totalizem 100%. GET /metrics/top_sources e GET /citation_intelligence/groups (e as respetivas ferramentas MCP) passam a aceitar um array domains (lista exata de domínios permitidos) e um array collection_ids (filtra várias etiquetas de uma só vez), permitindo obter numa chamada uma matriz ampla de domínios por etiqueta em vez de uma chamada por célula.

  68. 2026-06 (final do mês)

    A matriz de permissões dos membros da equipa passa a ser aplicada à API e ao MCP. Uma chave de API (ou sessão MCP/agente de conversação) pertencente a um membro de equipa com restrições fica sujeita à mesma matriz de funcionalidades da aplicação Web: os endpoints e ferramentas fora das funcionalidades concedidas devolvem 403 ERR_INSUFFICIENT_PERMISSION (novo código de erro). As chaves dos titulares das contas e dos administradores não são afetadas, pelo que as integrações existentes continuam a funcionar. Os webhooks passam a ser uma funcionalidade de permissão independente, ainda disponível apenas no Scale+.

  69. 2026-06 (final do mês)

    Agregados por período corretos para métricas de taxas em GET /metrics/summary. O campo total das métricas percentuais (visibility/mention_rate, citation_rate, ai_visibility_score/weighted_visibility, percentagens de sentimento) passa a ser a média das taxas por período, em vez da soma, que podia ultrapassar 100%. As métricas de contagem (mentions, citations, responses) continuam a ser somadas. Cada linha do resumo passa a incluir um campo aggregation ("sum" ou "average") que indica como foi calculado total. A mesma correção aplica-se à ferramenta MCP get_summary, que deixa também de repetir a series completa juntamente com o resumo (use get_timeseries para obter dados de séries) e passa a aceitar o argumento group_by (model ou collection), devolvendo um resumo por grupo numa só chamada. GET /answers (e a ferramenta MCP list_answers) passam a aceitar um parâmetro query para pesquisa de texto integral, sem distinção entre maiúsculas e minúsculas, nas respostas de IA: total passa a ser a contagem exata de correspondências e as linhas devolvem snippet e match_count em vez do texto completo da resposta.

  70. 2026-06 (final do mês)

    Permissão de membros da equipa para gerir prompts e limites por projeto. Os titulares da conta podem agora impedir um membro da equipa de adicionar ou eliminar prompts. Quando essa permissão está desativada, POST /prompts e a ferramenta MCP create_prompts devolvem 403 ERR_INSUFFICIENT_SCOPE para a chave desse membro (os endpoints de leitura não são afetados). Os titulares também podem definir um limite de prompts por projeto em Definições do projeto; quando o projeto atinge esse limite, POST /prompts e create_prompts devolvem ERR_LIMIT_REACHED a todos, incluindo ao titular, juntamente com a verificação da quota global da conta já existente, até que o limite seja aumentado. Não há novos códigos de erro nem endpoints.

  71. 2026-06 (final do mês)

    Nova ferramenta MCP get_webhook_sample (Scale+), equivalente MCP de GET /webhooks/sample/:event_type, que permite aos clientes MCP pré-visualizar os payloads dos eventos antes de subscreverem. As restrições por plano foram alinhadas no catálogo de bots de IA: o endpoint REST GET /dimensions/agent_bots passa a exigir Scale ou superior (abaixo desse nível devolve ERR_PLAN_REQUIRED), enquanto a ferramenta MCP list_agent_bots passa a estar disponível em todos os planos.

  72. 2026-06 (final do mês)

    Webhooks de saída (Scale+, v1.9). Novos endpoints: POST /webhooks (subscrever um URL HTTPS público para receber eventos de um projeto), GET /webhooks (listar subscrições), DELETE /webhooks/:id (cancelar subscrição) e GET /webhooks/sample/:event_type (exemplos de payloads para editores de integrações). Sete tipos de evento: mention.created, competitor_mention.created, citation.created, prompt_execution.completed, sentiment.negative_detected, recommendation.completed, intelligence_task.completed. As entregas têm assinatura HMAC-SHA256, através de X-LLMPulse-Signature, e são tentadas até cinco vezes no total, com intervalos crescentes; as subscrições são desativadas automaticamente após 20 falhas consecutivas. Para criar ou eliminar subscrições é necessária uma chave com âmbito read_write. Novas ferramentas MCP: create_webhook_subscription, list_webhook_subscriptions, delete_webhook_subscription. Os webhooks permitem usar os novos conectores Zapier, Make e n8n.

  73. 2026-06

    Content Intelligence passa a chamar-se GEO Writer. A funcionalidade e a respetiva secção da API passam a ter o nome GEO Writer na aplicação e na documentação. A alteração é apenas de apresentação: os endpoints da API (POST/GET /intelligence_tasks, GET /intelligence_tasks/:id), os formatos dos pedidos/respostas, os códigos de erro e os nomes das ferramentas MCP (create_intelligence_task, list_intelligence_tasks, get_intelligence_task) não mudam. A página de marketing passou de /features/content-intelligence para /features/geo-writer, com um redirecionamento 301.

  74. 2026-05 (final do mês)

    MCP disponível em todos os planos através de OAuth. O endpoint MCP (POST /api/v1/mcp) passa a aceitar tokens de acesso OAuth 2.1 emitidos através de Dynamic Client Registration (RFC 7591) e PKCE-S256. Qualquer utilizador LLM Pulse, incluindo quem tem Starter, Growth ou uma avaliação, pode ligar ChatGPT, Claude, Gemini, Cursor ou qualquer outro cliente compatível com MCP à sua conta, colando o URL https://api.llmpulse.ai/api/v1/mcp nas definições MCP/de conectores do cliente; este orienta o utilizador pelo início de sessão OAuth, sem exigir uma chave de API. Continuam a aplicar-se as restrições por plano a cada ferramenta: as ferramentas de escrita e as ferramentas avançadas de leitura que exigem Growth ou Scale continuam excluídas de tools/list para quem não tem acesso. A autenticação por chave de API (Authorization: Bearer …) não muda e continua a ser a opção recomendada para integrações sem interface, como Data Studio, Zapier e scripts de CI (plano Scale ou superior). Os endpoints de descoberta (/.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource, /oauth/jwks.json) e os endpoints de registo/autorização/token encontram-se em /oauth/*.

  75. 2026-05 (final do mês)

    Novo tipo de recomendação: Sentiment & Reputation (Scale+). O parâmetro recommendation_type em GET /recommendations (e na ferramenta MCP launch_recommendations) passa a aceitar sentiment_reputation, além de ai_visibility, social_community e brand_building. Converte o sentimento da marca nos últimos 30 dias (alargando para 90 se houver poucos dados), temas negativos, lacunas comparativas em que um concorrente é elogiado, as origens citadas nas respostas negativas e dimensões de reputação fracas em recomendações práticas. Requer o plano Scale ou superior; quem não tiver acesso recebe erros ERR_INVALID_PARAM ou de plano.

  76. 2026-05 (final do mês)

    Filtros de classificação de Prompts. Cada prompt é agora classificado automaticamente por prompt_type (intenção de pesquisa: informational, navigational, commercial, transactional) e brand_kind (brand = a sua própria marca/produtos, brand_other = concorrentes ou outras marcas, non_brand = genérico, sem referência a uma marca). Ambos são aceites como filtros opcionais em /metrics/timeseries, /metrics/summary, /metrics/sov, /metrics/prompt_summary, /metrics/top_sources e /dimensions/prompts (que passa também a devolver os dois campos por prompt). Os valores inválidos devolvem ERR_INVALID_PARAM. Os mesmos filtros estão disponíveis como argumentos prompt_type / brand_kind nas ferramentas MCP get_timeseries, get_summary, get_sov e list_prompts.

  77. 2026-05 (meados do mês)

    Endpoints de escrita para agentes (v1.5). As chaves de API passam a expor um scope (read ou read_write); as chaves existentes tratam full como sinónimo de read_write. Os endpoints de alteração (POST/PATCH/PUT/DELETE) passam a exigir uma chave com âmbito read_write e, caso contrário, devolvem 403 ERR_INSUFFICIENT_SCOPE. Além do limite global de 300 pedidos por minuto por chave, as escritas passam a ter um segundo limite de 60 por minuto por chave. Novos endpoints REST: POST /competitors, POST /collections, POST /prompts/assign_tags (atribuição de etiquetas em lote idempotente), POST /annotations (Growth+) e POST /technical_geo_reports (conjunto GEO completo). Novas ferramentas de escrita MCP: create_competitor, create_collection, assign_prompt_tags, create_annotation, launch_recommendations (com confirmação prévia do utilizador no agente de conversação) e create_technical_geo_report (idem). Novos códigos de erro: ERR_INSUFFICIENT_SCOPE (403) para chaves só de leitura usadas em operações de escrita e ERR_PLAN_REQUIRED (403) para anotações no plano Starter.

  78. 2026-05

    Os projetos passam a expor brand_name separadamente de name nas respostas da API e do MCP. brand_name é o nome da marca enviado aos LLM e apresentado nos gráficos para clientes; name continua a ser o nome interno do projeto. name continua a ser devolvido para manter a compatibilidade com versões anteriores. mention_rate é aceite como sinónimo de visibility nos parâmetros de /metrics/* e nas ferramentas MCP de séries temporais, resumos e principais origens. As definições de modelos de IA por utilizador passam a aplicar-se a todos os endpoints de leitura: as respostas da API, métricas, dimensões, respostas, sentimentos e citações excluem silenciosamente os modelos que não estão ativados para o utilizador da chave de API. Na data desta versão, os suplementos pagos ativos eram Copilot, Claude, Grok, DeepSeek e Alexa for Shopping; a execução recorrente de Meta AI ainda não estava ativa. As métricas agrupadas por data passam a usar Europe/Madrid nos períodos diários, semanais e mensais, corrigindo os registos atribuídos ao dia errado perto da meia-noite UTC.

  79. 2026-04 (final do mês)

    API Agent Analytics (Scale+, Beta): GET /metrics/agent_traffic e GET /dimensions/agent_bots apresentam o tráfego de crawlers de bots de IA (GPTBot, PerplexityBot, ClaudeBot, OAI-SearchBot, Google-Extended e cerca de 25 outros) obtido a partir da Cloudflare ou de carregamentos CSV. Nova ferramenta MCP: get_agent_traffic. A lista tools/list do MCP passa a ser filtrada pelo plano: as ferramentas a que não tem acesso deixam de aparecer no catálogo e as chamadas diretas a ferramentas sujeitas a restrições devolvem ERR_PLAN_REQUIRED, sem expor o esquema. Os limites de autenticação do MCP foram reforçados para o acesso de membros de contas de outros utilizadores.

  80. 2026-04 (meados do mês)

    API Citation Intelligence: GET /citation_intelligence/groups (grupos de URLs citados, com filtros de origem/tipo), GET /citation_intelligence/urls/:url_sha256, /occurrences e /content para consultar cada URL em detalhe. API de relatórios AI Model Insights: GET /reports/ai_model_insights/summary, /position_distribution e /ai_overview_results. API Recommendations: GET /recommendations e GET /recommendations/:id. Novas ferramentas MCP: list_citation_groups, get_cited_url_details, list_cited_url_occurrences, get_cited_url_content, get_ai_model_summary, get_ai_model_position_distribution, get_ai_overview_results, list_recommendations, get_recommendation, list_competitor_mentions, list_competitor_citations, list_prompt_executions, list_tags. A validação de enumerações ficou mais rigorosa em view, order, direction, granularity, model, source_type, sentiment, content_gap, recommendation_type e status; os valores desconhecidos passam agora a devolver ERR_INVALID_PARAM, em vez de serem ignorados sem aviso. O filtro source_type aceita owned, competitor e third_party, além das listas de classificação. Os resultados de AI Overview são agrupados por executed_at (e não created_at), para que as linhas repetidas ou repostas em backfill sejam atribuídas ao dia correto.

  81. 2026-04

    Novo endpoint POST /prompts para criar prompts em lote (até 100 por pedido). Nova API Content Intelligence: POST /intelligence_tasks para criar tarefas, GET /intelligence_tasks para listar com filtros e GET /intelligence_tasks/:id para consultar detalhes e resultados. Novas ferramentas MCP: create_prompts, create_intelligence_task, list_intelligence_tasks, get_intelligence_task. Novos códigos de erro: ERR_LIMIT_REACHED (quota de prompts), ERR_QUOTA_EXCEEDED (quota de tarefas de inteligência), ERR_NOT_FOUND (recurso não encontrado).

  82. 2026-03

    Novo endpoint GET /metrics/prompt_summary para métricas paginadas por prompt (respostas, menções, citações, visibilidade, citation_rate) num único pedido

  83. 2026-02

    Adicionada a métrica ai_visibility_score (visibilidade ponderada pela posição). Novas ferramentas MCP: list_answers, get_answer, list_detailed_sentiments, get_project_details, get_competitor_details. Novos endpoints da API: /answers, /sentiments, /dimensions/projects/:id, /dimensions/competitors/:id. Adicionada a métrica responses (contagem de execuções de prompts) e a métrica citation_rate (citações / respostas x 100). Os limites da API aumentaram de 100 para 300 pedidos por minuto. Adicionado o filtro prompt a todos os endpoints de métricas e dimensões.

  84. 2026-01

    Adicionado o endpoint MCP (Model Context Protocol) para integrações de IA com Claude, ChatGPT e outros assistentes de IA

  85. 2025-12

    Métricas de sentimento adicionadas a /metrics/timeseries (sentiment_very_positive/positive/neutral/negative/very_negative) e semântica documentada

  86. 2025-09

    Métricas alinhadas com a Vista geral (totais por período com repetição do último valor disponível, razão entre as somas dos períodos para visibility e propagação em avg_position), repartição de SOV, filtro query em Top Sources, notas sobre a cache, transferência do Postman e secção sobre o ambiente.

  87. 2025-08

    Documentação pública inicial da API (v1)