API-Changelog

Alle Änderungen an der REST-API und den MCP-Tools, die neuesten zuerst.

  1. 2026-10-29

    Keine Tools für Live-Webanalyse in ChatGPT. Bei ChatGPT-Verbindungen, ob über die ChatGPT-App oder über einen benutzerdefinierten Connector, werden die MCP-Tools get_web_analytics_schema und query_web_analytics nicht mehr aufgelistet und nicht mehr ausgeführt. In ChatGPT beantwortet get_ai_traffic weiterhin Fragen zu den Zugriffen über KI-Assistenten; in Claude, in anderen MCP-Clients und mit API-Schlüsseln bleiben beide Tools verfügbar. Das MCP-Tool create_webhook_subscription ist jetzt mit der Annotation destructiveHint: true gekennzeichnet: Wurde der API-Schlüssel oder die OAuth-Verbindung widerrufen, über die ein Abonnement erstellt wurde, wird beim erneuten Erstellen des Abonnements das alte gelöscht und ein neuer Signaturschlüssel erzeugt.

  2. 2026-10-28 (v1.74.0)

    Naver AI Tab, Qwen und Doubao. Die Werte naver_ai_tab, qwen und doubao für model sind jetzt in allen Endpunkten und MCP-Tools verfügbar, die nach Modell filtern, einschließlich Citation Intelligence und KI-Modellanalyse. Qwen und Doubao kennzeichnen in der Antwort keine Zitierungen. Daher ist jede Seite, die sie lesen, eine Hintergrundquelle: Sie zählt als Zitierung, hat aber keine Zitierungsposition.

  3. 2026-10-28 (v1.73.0)

    Projekte über die API löschen. Der neue Endpunkt DELETE /projects/:id und das MCP-Tool delete_project löschen ein Projekt wie die Schaltfläche „Projekt löschen“ in den Projekteinstellungen: Das Projekt verschwindet sofort und gibt einen Platz für ein weiteres Projekt frei, und ein Hintergrundprozess entfernt die zugehörigen Daten. Dies kann nicht rückgängig gemacht werden. Beide erfordern einen API-Schlüssel, der den Zugriffsumfang read_write hat und nicht auf bestimmte Projekte beschränkt ist (andernfalls ERR_KEY_PROJECT_SCOPED), und Teammitglieder benötigen die Berechtigung zum Löschen von Projekten.

  4. 2026-10-28 (v1.72.0)

    API-Schlüssel über die API verwalten. Die neuen Endpunkte GET /api_keys, POST /api_keys und DELETE /api_keys/:id listen Ihre Schlüssel auf, erstellen einen auf bestimmte Projekte beschränkten Schlüssel (sein Token wird nur einmal zurückgegeben) und widerrufen einen Schlüssel. Alle drei erfordern einen kontoweiten Schlüssel mit dem Zugriffsumfang read_write und erstellen nie einen kontoweiten Schlüssel. Ein MCP-Tool gibt es dafür nicht. Auflisten und Widerrufen funktionieren auch unterhalb von Scale.

  5. 2026-10-25 (v1.71.0)

    Keine API für Konten ohne Zahlung, Tracking-Status von Projekten und Prompts und Entfernen von Webhooks unterhalb von Scale. Jede REST- und MCP-Anfrage, auch lesende Anfragen und OAuth, gibt 403 ERR_ACCOUNT_INACTIVE zurück, wenn das Konto nie ein Abonnement abgeschlossen hat oder sein Abonnement vor mehr als drei Tagen geendet hat, und seine Webhooks stellen nichts zu, bis eine Zahlung eingeht. Per Rechnung abgerechnete Konten sind ausgenommen. Ab dem Ende des bezahlten Zeitraums antworten kostenpflichtige Funktionen (GEO Writer, technische GEO-Berichte, Durchläufe von GEO-Audits, Empfehlungen, Prompt-Vorschläge, Projektentwürfe, ask_support) mit demselben Code, und neue Prompts erhalten keinen ersten Durchlauf. Projekte, Projektdetails und Prompts geben tracked und untracked_reason zurück, und POST /prompts und /prompts/import ergänzen eine warning, wenn die Prompts nicht ausgeführt werden. GET /webhooks und DELETE /webhooks/:id funktionieren in jedem Tarif, damit sich ein Abonnement entfernen lässt, das unterhalb von Scale pausiert ist. GEO-Audits erhalten paused_reason mit dem Wert quota, public_link_active erfordert ein aktives Konto ab Tarif Scale, und Durchläufe von Empfehlungen zu Sentiment & Reputation antworten ohne Zugriff auf das Reputationsmonitoring mit ERR_NOT_FOUND.

  6. 2026-10-24 (v1.70.0)

    Bereits akzeptierte Filter sind jetzt dokumentiert, und range gilt für die Listen. Die Dokumente für OpenAPI und Swagger und damit die SDKs, die CLI und die Connectors führen jetzt Parameter auf, die diese Endpunkte auswerten, aber nicht dokumentiert hatten: country_code, language_code und include_project bei GET /metrics/summary und GET /metrics/sov; collection_ids und domains bei GET /metrics/top_sources; prompt_type, brand_kind und range bei GET /dimensions/mentions, /citations, /competitor_mentions, /competitor_citations, /all_mentions, /all_citations und /sources (dazu country_code und language_code bei den Listen für Wettbewerber und den kombinierten Listen); sowie prompt_type und brand_kind bei GET /dimensions/prompt_executions. Korrektur des Verhaltens: range wurde bei diesen sieben REST-Listen bisher ignoriert, sodass sie den gesamten Verlauf lieferten; jetzt beschränken sie sich auf die letzten N Tage, wie es ihre MCP-Tools bereits taten. Ein explizites from oder to hat weiterhin Vorrang, und ein range, der keine einzelne positive Zahl ist oder 1.500 Tage überschreitet, gibt ERR_INVALID_PARAM zurück. domains bei GET /metrics/top_sources und GET /citation_intelligence/mentions_by_domain sowie collection_ids bei GET /metrics/top_sources akzeptieren einen Wert oder eine kommagetrennte Liste (domains=gmac.com,educaweb.com), und die Form mit eckigen Klammern, domains[]=, funktioniert weiterhin. Ein kommagetrenntes domains fand bisher keine Domain, und ein Client, der den Parameter wiederholte (domains=a&domains=b, wie es die meisten generierten SDKs bei mentions_by_domain taten), erhielt nur den letzten Wert; neu generierte SDKs senden die kommagetrennte Form. model bei GET /reports/ai_model_insights/position_distribution listet jetzt nur die sieben Modelle auf, die der Endpunkt akzeptiert; andere Werte wurden bereits mit ERR_INVALID_PARAM abgelehnt. status bei GET /intelligence_tasks listet jetzt seine Werte auf. Die MCP-Tools bleiben unverändert.

  7. 2026-10-23 (v1.69.0)

    Archivierungsgründe und Aufwand für Empfehlungspunkte. PATCH /recommendations/:id/items/:item_id und update_recommendation_item akzeptieren beim Archivieren einen optionalen reason (not_relevant, too_complex oder competitor), aus dem spätere Durchläufe der Empfehlungen lernen; er wird als metadata.archive_reason zurückgegeben. Neue Punkte enthalten metadata.effort (low, medium oder high).

  8. 2026-10-22 (v1.68.0)

    Mehrere Properties der Search Console pro Projekt. Der neue Endpunkt GET /search_console/properties (MCP-Tool list_search_console_properties) listet bis zu 10 verbundene Properties auf. Jeder Lesezugriff auf die Search Console akzeptiert property: eine Property-ID oder eine kommagetrennte Liste oder all, um mehrere zu kombinieren; die Antwort enthält dann properties, excluded_properties (bereits von einer anderen ausgewählten Property erfasst) und property_errors. property ist außerdem eine dimension der Zusammenfassung und eine Dimension für Zeilen, und die Projektdetails melden search_console.properties_count.

  9. 2026-10-21 (v1.67.0)

    Status der Datenverbindungen und Links zum Verbinden. GET /dimensions/projects/:id und get_project_details geben jetzt neben search_console auch ai_traffic und agent_traffic zurück, sodass ein Client sieht, welche Datenquellen ein Projekt hat, bevor er deren Endpunkte aufruft. Jedes dieser Objekte enthält einen status (connected, reconnect_required oder not_connected, dazu imported, wenn der Traffic von KI-Agenten nur aus importierten Logs stammt), die verbundene property oder den provider sowie connect_url, die Seite, auf der die Verbindung hergestellt oder erneuert wird. Fehler wegen fehlender Verbindung oder widerrufenen Zugriffs von den Endpunkten für Search Console, KI-Traffic, Webanalyse und Traffic von KI-Agenten enthalten denselben Link in error.meta.connect_url, und ihre MCP-Tools geben ihn als connect_url zurück. Sonst ändert sich nichts an diesen Antworten.

  10. 2026-10-19 (v1.66.0)

    Maskierte Webhook-URLs, pausierte Webhooks unterhalb von Scale, tarifabhängige Felder in Antworten und Berechtigungen beim Import. GET /webhooks und das MCP-Tool list_webhook_subscriptions zeigen einem API-Schlüssel mit reinem Lesezugriff oder einer OAuth-Verbindung für MCP ohne mcp:write von target_url jetzt nur noch Schema, Host und einen gegebenenfalls vom Standard abweichenden Port, gefolgt von /… (zum Beispiel https://hook.eu1.make.com/…), weil mit der vollständigen URL beliebige Dritte Daten an den Empfänger senden könnten. Ein Schlüssel mit read_write oder eine Verbindung mit mcp:write erhält weiterhin die vollständige URL. Ein Abonnement, das ein auf bestimmte Projekte beschränkter API-Schlüssel erstellt hat, endet dauerhaft, sobald dieser Schlüssel das Projekt des Abonnements nicht mehr abdeckt: Es wird mit disabled: true aufgelistet, und wird es mit demselben Projekt, demselben Ereignis und derselben URL erneut erstellt, wird es durch ein neues Abonnement mit neuem Signaturschlüssel ersetzt. Solange das Konto einen niedrigeren Tarif als Scale hat, bleiben seine Abonnements erhalten, stellen aber nichts zu: Es werden keine fehlgeschlagenen Zustellungen gezählt und keine Abonnements deaktiviert. Die Zustellungen werden fortgesetzt, sobald das Konto wieder mindestens den Tarif Scale hat, und Ereignisse aus diesem Zeitraum werden nicht nachgeliefert. GET /answers/:id lässt jetzt unterhalb des Tarifs Growth sentiments und unterhalb des Tarifs Scale shopping_products weg, wie es das MCP-Tool get_answer bereits tat. Beide geben plan_required_fields zurück, die Liste der ausgelassenen Felder, die immer vorhanden ist und leer bleibt, wenn nichts ausgelassen wird; get_answer gab sie bisher als Objekt zurück, das für jedes Feld den Tarif nannte, und nur dann, wenn ein Feld ausgelassen wurde. In POST /prompts/import und im MCP-Tool import_prompts wird eine Zeile, die ein noch nicht vorhandenes Tag benötigt, für ein Teammitglied ohne die Berechtigung „Erstellen“ für Tags übersprungen, und eine Zeile, die einem bereits vorhandenen Prompt entspricht, fügt diesem für ein Teammitglied ohne die Berechtigung „Aktualisieren“ für Prompts keine Tags hinzu (die Zeile wird aufgeführt, wenn sie ein Tag hinzugefügt hätte). Beide erscheinen in row_errors, zusammen mit den Zeilen, die übersprungen wurden, weil sie einem Prompt mehr als 50 Tags gegeben oder die Anfrage über 500 neue Tags gebracht hätten; diese Limits nennt die Beschreibung des Imports jetzt.

  11. 2026-10-19 (v1.65.0)

    Limits für Namensvarianten. matching_names akzeptiert jetzt höchstens 50 Namen mit jeweils bis zu 100 Zeichen bei POST /projects, PATCH /projects/:id, POST /competitors, PATCH /competitors/:id und POST /project_drafts/:id/finalize sowie in den MCP-Tools create_project, update_project, create_competitor, update_competitor und finalize_project_draft. Zu den 50 zählt auch der Markenname, den POST /competitors und PATCH /competitors/:id der Liste hinzufügen. Eine längere Liste oder ein längerer Name gibt ERR_INVALID_PARAM (422) zurück, und nichts aus der Anfrage wird übernommen. Die Schritte von PATCH /project_drafts/:id speichern die Listen weiterhin so, wie sie gesendet werden, und die Finalisierung prüft sie. Die Anfrageschemas in OpenAPI deklarieren beide Limits als maxItems und maxLength. Eine vor dieser Änderung gespeicherte Liste funktioniert weiter, bis sie bearbeitet wird.

  12. 2026-10-16 (v1.64.0)

    Prompt-Limits pro Projekt in API und MCP. GET /dimensions/projects/:id und get_project_details geben prompt_limit (null statt einer Zahl, wenn kein Limit gesetzt ist) und stats.prompts_available zurück, also wie viele Prompts das Projekt noch aufnehmen kann: den kleineren Wert aus dem verbleibenden Spielraum unter diesem Limit und den verbleibenden Prompts des Kontos, im ungünstigsten Fall 0 und nur dann null (kein Wert), wenn keine der beiden Grenzen gilt. PATCH /projects/:id und das MCP-Tool update_project akzeptieren für prompt_limit eine ganze Zahl von 1 bis 2147483647 oder null (kein Wert), um das Limit zu entfernen. Ändern können es nur der Kontoinhaber oder ein Konto-Admin (wie Kontoinhaber) mit der Berechtigung „Aktualisieren“ für Projekte: Andere Teammitglieder erhalten ERR_INSUFFICIENT_PERMISSION, ein auf bestimmte Projekte beschränkter Schlüssel erhält ERR_KEY_PROJECT_SCOPED, und eine abgelehnte Anfrage übernimmt nichts. Werte wie "5" oder 5.0 geben ERR_INVALID_PARAM zurück. Ein Limit unter der aktuellen Anzahl löscht keinen Prompt; neue Prompts werden abgelehnt, bis das Projekt wieder unter dem Limit liegt. Eine Anfrage, die nur prompt_limit sendet, wird auch während einer Neuberechnung gespeichert.

  13. 2026-10-15 (v1.63.0)

    Mehr aus der App in API und MCP. GET /custom_reports, GET /custom_reports/:id und POST /custom_reports/:id/send (list_custom_reports, get_custom_report, send_custom_report) listen individuelle Berichte auf, lesen sie und versenden sie. PATCH /recommendations/:id/items/:item_id (update_recommendation_item) markiert einen Empfehlungspunkt als abgeschlossen, archiviert ihn oder stellt ihn wieder her. GET /reports/sentiment/topics und GET /reports/sentiment/tags (get_sentiment_topics, get_sentiment_tags) liefern das Sentiment nach Thema und nach Tags, wie die Seite Sentiment. GET /competitors/suggestions (list_competitor_suggestions) liefert die vorgeschlagenen Wettbewerber und die meistzitierten Domains der Seite Wettbewerber.

  14. 2026-10-15 (v1.63.0)

    Owned Media und Social-Media-Profile in der API. GET /dimensions/owned_media/summary (get_owned_media_summary) liefert die Zahlen hinter jedem Tab von Owned Media, darunter YouTube und LinkedIn: die Zitierungen der Plattform, den Anteil, der Ihre Profile und Inhalte zitiert, die Veränderung gegenüber dem Vorzeitraum, die wöchentlichen Zitierungen und die Aufteilung nach KI-Modell, Land, Inhaltstyp und Alter. GET /dimensions/owned_media/citing_prompts (list_owned_media_citing_prompts) listet die Antworten auf, die einen bestimmten Beitrag, ein Video oder ein Profil zitieren. GET /projects/:id/owned_media und PATCH /projects/:id/owned_media (get_owned_media_profiles, update_owned_media_profiles) lesen und setzen die Profile, die als Ihre eigenen zählen, wie unter Projekteinstellungen > Owned Media.

  15. 2026-10-15 (v1.63.0)

    Alle Wege, Prompts hinzuzufügen, jetzt auch über die API. POST /prompts/import und das MCP-Tool import_prompts nehmen bis zu 500 Zeilen an, jede mit eigenem Land, eigener Sprache und eigenen Tags, wie beim CSV-Import. POST /prompt_generations und generate_prompt_suggestions starten die Generatoren für Vorschläge aus der App (Website, Keyword, Thema, Reddit, People Also Ask, Reputation, Übersetzung und Search Console) und antworten mit 202 und einem Durchlauf, den Sie unter GET /prompt_generations/:id (get_prompt_generation) verfolgen können. Die Ideen landen in der Liste der Vorschläge: GET /suggested_prompts (list_suggested_prompts) listet sie auf, POST /suggested_prompts/accept macht aus Ideen Prompts im Tracking, und POST /suggested_prompts/reject verwirft sie (accept_suggested_prompts, reject_suggested_prompts). POST /prompts/remove_tags ist jetzt das REST-Gegenstück zum MCP-Tool remove_prompt_tags, und PATCH /prompts/:id (update_prompt_categorization) legt Suchintention und Markenbezug eines Prompts manuell fest.

  16. 2026-10-14 (v1.62.0)

    Zitierungen pro Zeitabschnitt für eine zitierte URL, eine Domain oder einen Host. GET /citation_intelligence/urls/:url_sha256 und das MCP-Tool get_cited_url_details akzeptieren include_series=true, das citation_series ergänzt: die Antworten, die die URL zitieren, pro KI-Modell (by_model) und pro Zeitabschnitt (data), nach Tag, Woche oder Monat, je nach Tracking-Rhythmus des Kontos (granularity), wobei total gleich stats.total_responses ist. Die Zeitabschnitte ordnen jede Antwort nach executed_at in der Zeitzone Europe/Madrid zu. Ohne include_series bleibt die Antwort unverändert. Der Endpunkt dokumentiert jetzt die Filter, die er bereits anwendete (model, collection_id, country_code, language_code, prompt, from, to, source_type, sentiment und content_gap), und akzeptiert brand_kind. Für eine Domain oder einen Host akzeptieren GET /citation_intelligence/groups und das MCP-Tool list_citation_groups den Parameter key, der nur diese Gruppe der gewählten Ansicht zurückgibt, und zusammen mit diesem Parameter ergänzt include_series=true dieselbe citation_series in ihrer Zeile; include_series ohne key gibt ERR_INVALID_PARAM (422) zurück. GET /citation_intelligence/groups wendet außerdem brand_kind an, das bisher ignoriert wurde.

  17. 2026-10-14 (v1.62.0)

    Markup in Produkttexten wird bereinigt statt abgelehnt. Bei einer Aufgabe vom Typ product_listing behalten PATCH /intelligence_tasks/:id und das MCP-Tool update_intelligence_task_content in description_html nur p, ul, ol, li, strong, em, h3 und br, ohne Attribute. Anderes Markup und alle Attribute werden entfernt, und die Bearbeitung gelingt trotzdem; lesen Sie den gespeicherten Wert daher aus der Antwort. POST /intelligence_tasks/:id/revert stellt die generierte Beschreibung wieder her, auf dieselbe Weise bereinigt.

  18. 2026-10-14 (v1.62.0)

    Auch eine verweigerte Antwort ist eine Platzhalterantwort. Lehnt das Modell die Beantwortung eines Prompts ab (derzeit nur Gemini, wegen seiner Sicherheitsfilter oder eines eingeschränkten Themas), geben GET /answers, GET /answers/:id und die MCP-Tools list_answers und get_answer diese Ausführung mit no_result: true und dem üblichen Platzhaltertext zurück, wie bei einer Ausführung, bei der der Anbieter nach allen Wiederholungsversuchen nichts geliefert hat. Eine solche Ausführung wird nicht wiederholt und bleibt von allen Kennzahlen der Plattform ausgeschlossen. Der Aufbau der Antwort bleibt unverändert; die Beschreibungen von no_result nennen jetzt beide Ursachen.

  19. 2026-10-14 (v1.61.0)

    Signaturschlüssel des Webhooks nur für die Zugangsdaten, die das Abonnement erstellt haben. Wird dasselbe Projekt mit demselben Ereignis und derselben URL erneut an POST /webhooks gesendet oder das MCP-Tool create_webhook_subscription erneut aufgerufen, wird wie bisher das bestehende Abonnement zurückgegeben, secret ist aber nur enthalten, wenn der Aufruf von dem API-Schlüssel oder der OAuth-Verbindung kommt, mit der es erstellt wurde. Jeder andere API-Schlüssel und jede andere OAuth-Verbindung erhält das Abonnement ohne secret und kann so keinen Signaturschlüssel mehr lesen, der nicht für diese Zugangsdaten ausgegeben wurde. Bei einem Abonnement, das vor v1.58.0 über eine OAuth-Verbindung für MCP erstellt wurde, ist nicht erfasst, wer es erstellt hat, daher gibt es secret nie wieder zurück. Ein neues Abonnement, auch eines, das ein Abonnement ersetzt, bei dem der erstellende API-Schlüssel oder die erstellende OAuth-Verbindung widerrufen wurde, gibt weiterhin secret zurück. Um einen neuen Signaturschlüssel für ein bestehendes Abonnement zu erhalten, löschen Sie es und erstellen Sie es neu.

  20. 2026-10-12 (v1.60.0)

    Ein Code bei jedem Fehler eines MCP-Tools. Jeder fehlgeschlagene tools/call enthält jetzt neben error auch code, mit dem Wert, den der REST-Endpunkt für denselben Zustand zurückgibt. Bisher enthielten manche Tool-Fehler nur error, und die beiden Ablehnungen vor der Ausführung eines Tools (fehlende Pflichtargumente, ein Wert, den das Eingabeschema ablehnt) kamen als reiner Text statt als JSON-Objekt mit error. Fehlende oder ungültige Argumente, auch Werte, die das Eingabeschema eines Tools vor der Ausführung ablehnt, geben ERR_INVALID_PARAM zurück. Ein unbekanntes Projekt gibt bei jedem Tool ERR_PROJECT_NOT_FOUND zurück, ein anderer fehlender Datensatz ERR_NOT_FOUND (ERR_DRAFT_NOT_FOUND bei Entwürfen). Wird ein Tool wegen des OAuth-Zugriffsumfangs oder eines Schlüssels mit reinem Lesezugriff abgelehnt, lautet der Code ERR_INSUFFICIENT_SCOPE, wegen fehlender Berechtigungen eines Teammitglieds ERR_INSUFFICIENT_PERMISSION und in einem White-Label-Portal ERR_INTEGRATION_UNAVAILABLE. Budgets und Tageslimits geben wie bei REST ERR_LIMIT_REACHED oder ERR_QUOTA_EXCEEDED zurück. Der Text in error bleibt unverändert.

  21. 2026-10-12 (v1.60.0)

    Unbekannter source_type oder abweichende Groß- und Kleinschreibung bei GET /dimensions/sources abgelehnt. GET /dimensions/sources ignorierte bisher einen unbekannten source_type oder die Array-Form source_type[] und listete alle Quellen auf, während ein Wert mit anderer Groß- und Kleinschreibung wie Owned als owned angewendet wurde. Jetzt werden genau owned, competitor oder third_party akzeptiert; jeder andere Wert, auch Owned und OWNED, gibt ERR_INVALID_PARAM (422) mit den akzeptierten Werten zurück. Das MCP-Tool list_sources lehnt dieselben Werte mit demselben Code ab.

  22. 2026-10-12 (v1.60.0)

    Weitere eigene Domains über die API. PATCH /projects/:id und das MCP-Tool update_project akzeptieren additional_owned_domains, die weiteren Domains der Marke, deren Zitierungen als eigene zählen und die sich bisher nur in der App bearbeiten ließen. Das Feld ist eine Liste von bis zu 10 Domains, die die bisherige vollständig ersetzt, und [] leert sie. Eine eingefügte URL wird als ihre Domain gespeichert. Es gelten die Regeln der App: Eine Subdomain, eine Plattform, die viele Unternehmen gemeinsam nutzen (etwa youtube.com, amazon.com oder wordpress.com), die Website des Projekts oder eine Domain, die bereits für einen Wettbewerber erfasst ist, wird mit ERR_INVALID_PARAM und dem Grund abgelehnt. GET /dimensions/projects/:id und get_project_details geben die Liste zurück.

  23. 2026-10-12 (v1.60.0)

    Weitere eigene Domains: Neuberechnung, Änderungen nur durch den Kontoinhaber. Eine Änderung von additional_owned_domains verarbeitet im Hintergrund die früheren Antworten neu, die eine hinzugefügte oder entfernte Domain zitieren (rematching: true); eine umsortierte oder identische Liste startet nichts. Nur der Kontoinhaber kann das Feld senden: Der Schlüssel oder die Verbindung eines Teammitglieds, auch die eines Konto-Admins, erhält ERR_INSUFFICIENT_PERMISSION, und nichts aus der Anfrage wird übernommen. Eine Anfrage wird vollständig oder gar nicht übernommen, und eine Anfrage, die das Feld zusammen mit matching_names sendet, startet nur eine einzige Neuberechnung. Das project der Antwort enthält die Liste, und für PATCH /projects/:id ist jetzt das Antwortschema veröffentlicht. Solange eine Neuberechnung läuft, lehnen PATCH /projects/:id und das MCP-Tool update_project weitere Änderungen mit ERR_INVALID_PARAM ab; diese Meldung verspricht keine Wartezeit von wenigen Minuten mehr, sondern bittet darum, es nach Abschluss der Neuberechnung erneut zu versuchen.

  24. 2026-10-12 (v1.60.0)

    Was beim Löschen eines Wettbewerbers erhalten bleibt. DELETE /competitors/:id und das MCP-Tool delete_competitor behalten jetzt die Shopping-Produkte und Markenentitäten des Wettbewerbers, die der Hintergrundjob bisher löschte, und lassen seine Anzeigen und lokalen Unternehmen nicht mehr ohne Zuordnung zurück. Alle vier werden dem Projekt oder einem anderen Wettbewerber zugeordnet, zu dessen Domain sie passen, oder bleiben ohne Zuordnung. Der Job löscht weiterhin die Erwähnungen, Zitierungen und Sentiments des Wettbewerbers sowie dessen Verlauf im Share of Voice.

  25. 2026-10-12 (v1.60.0)

    Ausnahmen beim Modellfilter dokumentiert. Die Referenz beschreibt den Filter model jetzt so, wie jeder Endpunkt ihn bereits angewendet hat. Ein unbekanntes Modell oder eines, das für das Konto nicht aktiviert ist, gibt ERR_INVALID_PARAM (422) zurück, mit diesen Ausnahmen. GET /sentiments ignoriert einen solchen Wert. Die Endpunkte von Citation Intelligence akzeptieren nur chatgpt, ai_mode, ai_overview, perplexity, gemini, naver_ai und baidu_ai. GET /reports/ai_model_insights/position_distribution akzeptiert diese sieben auch dann, wenn sie nicht aktiviert sind. Die Endpunkte unter /metrics akzeptieren außerdem google-ai-mode und google-ai-overview als Synonyme für ai_mode und ai_overview.

  26. 2026-10-12 (v1.60.0)

    Die Listen der Dimensionen lehnen den Modellfilter in Array-Form ab. model[] wurde bei den Listen unter /dimensions bisher verworfen, sodass sie ungefilterte Daten lieferten. Jetzt gibt der Parameter wie bei /metrics und /answers ERR_INVALID_PARAM (422) zurück. project_id bei GET /dimensions/agent_bots ist jetzt als erforderlich, aber ohne Wirkung dokumentiert: Der Katalog der Bots ist für jedes Projekt gleich.

  27. 2026-10-12 (v1.60.0)

    Markenname in Projektlisten und der Modellfilter für Prompts. GET /dimensions/projects und das MCP-Tool list_projects geben jetzt für jedes Projekt brand_name zurück (null, wenn kein Markenname festgelegt ist), ebenso das project, das GET /ping beim Aufruf mit project_id ergänzt, wie es das veröffentlichte Schema Project bereits deklarierte. GET /dimensions/prompts wendet jetzt model an, das bisher ignoriert wurde: Der Filter behält die Prompts mit mindestens einer Ausführung auf diesem Modell, unabhängig von Ergebnis und Datum. Der Filter prompt funktionierte bereits und ist jetzt dokumentiert. Das MCP-Tool list_prompts akzeptiert beide Filter.

  28. 2026-10-12 (v1.60.0)

    Webhooks mit widerrufenen Zugangsdaten gelten als deaktiviert. GET /webhooks und das MCP-Tool list_webhook_subscriptions geben für ein Abonnement, dessen API-Schlüssel oder OAuth-Verbindung widerrufen wurde, disabled: true statt false zurück. Ein solches Abonnement erhält keine Ereignisse mehr. Löschen Sie es, oder erstellen Sie es mit demselben Projekt, demselben Ereignis und derselben URL erneut, um es durch ein neues Abonnement mit neuem Signaturschlüssel zu ersetzen.

  29. 2026-10-12 (v1.59.0)

    Zeilen von GET /metrics/prompt_summary enthalten jetzt das Markensentiment jedes Prompts: sentiment_responses (Antworten mit einer Sentiment-Einstufung für die Marke), die fünf Prozentwerte sentiment_* bezogen auf diese Anzahl und net_sentiment, berechnet wie die Sentiment-Kennzahlen von /metrics/timeseries und null (kein Wert), wenn keine Antwort eine Einstufung hat. Sie folgen breakdown=model und jedem Filter und lassen sich nicht zum Sortieren verwenden. Jede Zeile enthält außerdem Land, Sprache, Suchintention, Markenbezug und Tags ihres Prompts, wie in /dimensions/prompts. Das MCP-Tool get_prompt_summary liefert dieselben Felder.

  30. 2026-10-12 (v1.58.0)

    API für Teammitglieder. Verwalten Sie das Team des Kontos über die API, mit denselben Regeln wie auf der Einstellungsseite Teammitglieder. Die neuen Endpunkte GET /team_members und GET /team_invitations listen Mitglieder (Kontoinhaber zuerst) und offene Einladungen mit ihren Zugriffsrechten und Projekten auf, POST /team_invitations sendet eine Einladung per E-Mail, DELETE /team_invitations/:id widerruft eine Einladung, und DELETE /team_members/:id entfernt ein Mitglied. Die MCP-Tools sind list_team_members, list_team_invitations, invite_team_member, revoke_team_invitation und remove_team_member. Lesen dürfen der Kontoinhaber, Konto-Admins und Teammitglieder mit der Berechtigung für Teammitglieder; widerrufen und entfernen dürfen nur der Kontoinhaber und Konto-Admins. Ein Teammitglied, das einladen darf, kann die Zugriffsrechte nicht wählen: Die Einladung übernimmt die Berechtigungen der einladenden Person. Schreibvorgänge erfordern einen API-Schlüssel mit dem Zugriffsumfang read_write, und ein auf bestimmte Projekte beschränkter API-Schlüssel erhält bei jedem Endpunkt für das Team ERR_KEY_PROJECT_SCOPED (403). Einladungen, die über die API und MCP gesendet werden, unterliegen einem Tageslimit, bei dem widerrufene Einladungen mitzählen; wird es erreicht, lautet die Antwort ERR_LIMIT_REACHED.

  31. 2026-10-12 (v1.58.0)

    Versionsprüfung im GEO Writer, strengere Zeiträume für Traffic und erneutes Anlegen von Webhooks. Die Payloads der Aufgaben im GEO Writer geben result_version zurück, und PATCH /intelligence_tasks/:id sowie das MCP-Tool update_intelligence_task_content akzeptieren es als optionales Feld. Wurde die Aufgabe neu generiert, nachdem Sie sie gelesen haben, wird die Bearbeitung mit dem neuen Fehlercode ERR_STALE_CONTENT (409) abgelehnt, es wird nichts geschrieben, und error.meta.result_version enthält das aktuelle Token. Ohne result_version werden Bearbeitungen wie bisher übernommen. GET /metrics/ai_traffic, GET /metrics/agent_traffic und die MCP-Tools get_ai_traffic und get_agent_traffic antworten bei einem range unter 1 oder einem from nach to mit ERR_INVALID_PARAM (422) statt mit einem leeren Ergebnis. Wird dasselbe Projekt mit demselben Ereignis und derselben URL erneut an POST /webhooks gesendet, wird das bestehende Abonnement zurückgegeben, es sei denn, der API-Schlüssel oder die OAuth-Verbindung, mit der es erstellt wurde, wurde widerrufen; dann wird es durch ein neues Abonnement mit einem neuen Signaturschlüssel ersetzt.

  32. 2026-10-12 (v1.58.0)

    Neues in der API für die Search Console. Der neue Endpunkt GET /search_console/rows und das MCP-Tool get_search_console_rows gruppieren Zeilen nach bis zu drei Dimensionen (zum Beispiel Seite und Suchanfrage oder Datum und Seite). start_row bei Suchanfragen, Seiten und Zeilen liest über das Fenster von 25.000 Zeilen hinaus, das Google vorgibt, und aggregation_type (auto, byPage, byProperty) funktioniert bei jedem Endpunkt der Search Console. REST-Antworten enthalten jetzt data_through; bei output=csv transportieren X-Data-Through und X-Truncated dieselbe Information. MCP-Fehler, die auf Google zurückgehen, enthalten retry_after. GET /dimensions/projects/:id und get_project_details melden die Verbindung zur Search Console (search_console.status und property). REST und MCP werten den Zeitraum gleich aus: Ein ungültiger range ergibt ERR_INVALID_PARAM, und nur ein from nach to ergibt ERR_INVALID_RANGE.

  33. 2026-10-10 (v1.57.0)

    Live-Webanalyse (Growth+). Die neuen Endpunkte GET /web_analytics/schema und POST /web_analytics/query mit den MCP-Tools get_web_analytics_schema und query_web_analytics machen LLM Pulse zu einer Live-Verbindung mit reinem Lesezugriff zum Webanalyse-Anbieter, der auf der Seite KI-Traffic verbunden ist (Google Analytics 4, Adobe Analytics oder Customer Journey Analytics, Matomo, PostHog, Plausible oder Piano). Sie formulieren die Abfrage im nativen Format des Anbieters; es wird immer die verbundene Property verwendet, es werden nur Lesevorgänge ausgeführt, die Zeilen sind auf 5.000 begrenzt, und identische Abfragen werden 10 Minuten lang zwischengespeichert. Neue Fehlercodes: ERR_WEB_ANALYTICS_NOT_CONNECTED (404), ERR_WEB_ANALYTICS_INVALID_QUERY (422, mit der Validierungsmeldung des Anbieters), ERR_WEB_ANALYTICS_ACCESS_REVOKED (403) und ERR_WEB_ANALYTICS_UPSTREAM (503 mit Retry-After).

  34. 2026-10-10 (v1.57.0)

    Kennzeichen für gekürzte Aufschlüsselungen der Search Console. GET /search_console/summary und das MCP-Tool get_search_console_summary geben jetzt breakdown_truncated: true zurück, wenn die Aufschlüsselung Zeilen ausgelassen hat, wegen limit oder wegen des Maximums von 25.000 Zeilen, das Google zurückgibt. Mit filters und ohne dimension sind die Gesamtwerte der Zusammenfassung die vollständigen Zahlen, die Google für diesen Filter meldet.

  35. 2026-10-07 (v1.56.0)

    Einheitliches Verhalten von REST und MCP. Diese MCP-Parameter lehnen jetzt nicht dokumentierte Werte ab, statt auf einen Standardwert zurückzufallen (REST bleibt unverändert): sort, sort_dir und breakdown in get_prompt_summary, sort in get_top_sources, group_by und granularity in get_agent_traffic, granularity in get_ai_traffic und source_type in list_sources, das jetzt zwischen Groß- und Kleinschreibung unterscheidet. get_ai_model_position_distribution akzeptiert naver_ai und baidu_ai. Weitere schreibende MCP-Tools geben den Fehlercode der REST-Schnittstelle in code zurück. Einige Fehlermeldungen von REST und MCP wurden umformuliert; die REST-Codes und HTTP-Statuscodes bleiben unverändert. assign_prompt_tags ignoriert wie REST create_missing bei Teammitgliedern, die keine Tags erstellen dürfen. start_project_draft akzeptiert execute_prompts_immediately. POST /collections und create_collection verknüpfen keine Prompts mehr, die gerade gelöscht werden. PATCH /project_drafts/{id} akzeptiert ein verschachteltes Objekt owned_media und lehnt darin unbekannte Felder ab.

  36. 2026-10-07 (v1.56.0)

    GEO-Audits. Die neue Gruppe GEO Audits behält eine technische GEO-Prüfung für eine Domain oder URL im Blick und verfolgt sie von Durchlauf zu Durchlauf. GET / POST /geo_audits listen Audits auf und erstellen eines pro Audit-Typ, einmalig, wöchentlich oder monatlich (wöchentlich und monatlich nur für agent_readiness und robots_txt); GET, PATCH und DELETE /geo_audits/{id} lesen ein Audit, planen es neu, pausieren oder archivieren es, und wird ein archiviertes Audit erneut erstellt, wird sein Verlauf wiederhergestellt. GET / POST /geo_audits/{geo_audit_id}/runs listen Durchläufe auf und starten einen manuellen Durchlauf (6 pro Audit in einem gleitenden Zeitfenster von einer Stunde sowie 200 pro Konto und Tag), GET /geo_audits/{geo_audit_id}/runs/{sequence} und dessen /findings liefern das vollständige Ergebnis und die Befunde jeder einzelnen Prüfung, GET /geo_audits/{id}/comparison vergleicht zwei Durchläufe, GET / PATCH /geo_audits/{geo_audit_id}/issues listen Probleme auf und akzeptieren eines oder öffnen es wieder (eine Akzeptanz erlischt, wenn sich die Nachweise ändern), und GET /geo_alerts listet die Benachrichtigungen auf, die Audits ausgelöst haben. Aktive wiederkehrende Audits sind pro Tarif begrenzt; oberhalb dieser Grenze antwortet die API mit ERR_LIMIT_REACHED, ebenso bei Überschreiten der Limits für Durchläufe. Neue MCP-Tools bilden jeden Endpunkt ab: list_geo_audits, get_geo_audit, create_geo_audit, update_geo_audit, delete_geo_audit, compare_geo_audit_runs, list_geo_audit_runs, run_geo_audit, get_geo_audit_run, list_geo_audit_findings, list_geo_audit_issues, update_geo_audit_issue und list_geo_alerts. Schreibvorgänge erfordern einen API-Schlüssel mit Schreibzugriff und bei Teammitgliedern die entsprechende Berechtigung für GEO-Optimierung.

  37. 2026-10-04 (v1.55.0)

    API-Schlüssel mit Beschränkung auf Projekte. Ein API-Schlüssel lässt sich jetzt beim Erstellen über das Feld Projekte auf der Seite API-Schlüssel auf ein oder mehrere Projekte beschränken. Die Auswahl lässt sich später nicht ändern, und bestehende Schlüssel sehen weiterhin das gesamte Konto. Ein auf bestimmte Projekte beschränkter Schlüssel sieht nur diese: GET /dimensions/projects und das MCP-Tool list_projects geben nur diese Projekte zurück, jede andere Projekt-ID, Domain und jeder andere Name ergibt ERR_PROJECT_NOT_FOUND, genau wie ein Projekt, das nicht existiert, und bei Webhook-Abonnements und Studien erscheinen nur die dieser Projekte. GET /account und get_account_usage nennen die Projekte im neuen Feld api_key_project_ids. Das Erstellen eines Projekts und der Assistent für Projektentwürfe antworten mit dem neuen Code ERR_KEY_PROJECT_SCOPED (403), und ihre MCP-Tools fehlen in tools/list. Wird ein Projekt gelöscht, wird es aus den darauf beschränkten Schlüsseln entfernt, und ein Schlüssel, dem kein Projekt mehr bleibt, wird widerrufen.

  38. 2026-10-04 (v1.54.0)

    Shop-Integrationen. Die neue Gruppe Store Integrations ist die Grundlage der App LLM Pulse für Shopify: GET /store_connection ordnet eine Shop-Domain einem Projekt zu, PUT /ai_orders und GET /ai_orders speichern die Bestellungen, die KI-Assistenten an den Shop vermittelt haben, und lesen sie wieder aus, und GET / POST /catalog_prompt_suggestions mit /accept und /reject machen aus Produkten des Katalogs Prompts aus Käufersicht für das Tracking. Das MCP-Tool get_ai_orders liest die gespeicherten Bestellungen. POST /intelligence_tasks akzeptiert außerdem task_type=product_listing mit einem Objekt product und liefert sofort einsetzbare Texte für die Produktseite; dieser Typ ist nur über die API verfügbar. Produktzeilen von GET /dimensions/shopping enthalten jetzt best_rank, models und last_seen_at. Neue Fehlercodes: ERR_INTEGRATION_UNAVAILABLE (403, Konten mit White-Label-Portal oder Einbettung) und ERR_GENERATION_FAILED (502, wiederholen Sie die Anfrage).

  39. 2026-10-03 (v1.53.0)

    Lokale Unternehmen. Der neue Endpunkt GET /dimensions/local_businesses und das MCP-Tool list_local_businesses listen die Geschäfte, Restaurants und Dienstleister auf, die KI-Antworten zu Ihren Prompts nennen, eine Zeile pro Unternehmen und Adresse, mit Nennungen, Prompts, durchschnittlicher Bewertung, durchschnittlicher Position, Anzahl der Rezensionen und der Angabe, ob es zu Ihrer Marke oder zu einem Wettbewerber im Tracking gehört, dazu ein Block totals. Beide akzeptieren die üblichen Listenfilter, owned, query, order und direction, und der Endpunkt unterstützt output=flat und output=csv. In jedem Tarif verfügbar; Teammitglieder benötigen die Berechtigung „Lesen“ für Lokale Unternehmen.

  40. 2026-10

    Links zu Google-Entitäten werden separat gruppiert. Links aus Google AI Mode und AI Overviews zur Entitätsansicht von Google (google.com/searchviewer/...) behalten ihre url, melden als domain und host jetzt aber google-entity.invalid statt google.com, und zwar in GET /metrics/top_sources, GET /dimensions/sources, den Endpunkten von Citation Intelligence und den Exporten. Sie zählen nie als eigene Zitierungen oder als Zitierungen von Wettbewerbern, sodass sie einem Projekt oder Wettbewerber auf einer Google-Domain nicht mehr angerechnet werden. Die App bezeichnet die Gruppe als „Google (Entität)“.

  41. 2026-09-30

    API-Schlüssel funktionieren nur noch ab Tarif Scale. API-Schlüssel sind eine Funktion ab Tarif Scale und funktionieren jetzt nicht mehr, solange das Konto einen niedrigeren Tarif als Scale hat, zum Beispiel nach einem Wechsel in einen niedrigeren Tarif: Jede REST-Anfrage und jede Anfrage an /mcp mit einem Schlüssel wird mit ERR_PLAN_REQUIRED (403) beantwortet. Die Schlüssel werden nicht widerrufen: Sie bleiben aufgelistet, lassen sich weiterhin widerrufen und funktionieren wieder, sobald das Konto wieder mindestens den Tarif Scale hat. MCP über OAuth ist nicht betroffen.

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

    Dateien von Berichten zu llms.txt über die API bearbeiten. PATCH /technical_geo_reports/:id/content ersetzt die Dateien llms.txt und llms-full.txt eines abgeschlossenen Berichts zu llms.txt: Senden Sie report_type=llms_txt, ein Objekt edits mit dem vollständigen neuen Text von llms_txt und/oder llms_full_txt sowie die content_version, die Sie zuletzt gelesen haben. Die Detailansicht des Berichts liefert jetzt result_data.content_version. Eine veraltete oder fehlende content_version, eine leere Datei, eine Datei mit mehr als 200.000 Zeichen oder ein noch nicht abgeschlossener Bericht gibt ERR_INVALID_PARAM zurück, und die Antwort auf die Aktualisierung enthält zusätzlich changed_files. Bei der ersten Bearbeitung werden die generierten Dateien in original_llms_txt_content und original_llms_full_txt_content aufbewahrt, und POST /technical_geo_reports/:id/revert_content stellt sie wieder her. Zwei MCP-Tools bilden die Endpunkte ab: update_technical_geo_report_content und revert_technical_geo_report_content. Beide Schreibvorgänge erfordern einen API-Schlüssel mit Schreibzugriff und bei Teammitgliedern die Berechtigung „Erstellen“ für GEO-Optimierung.

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

    Automatische Ausgabesprache für Berichte zu llms.txt. output_language_code bei POST /technical_geo_reports und create_technical_geo_report akzeptiert auch auto, womit die Dateien für llms.txt in der Sprache der Website bleiben. Die Antwort auf die Erstellung gibt auto zurück, und der Bericht liefert danach output_language_code: null.

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

    Kontingent für technische GEO-Berichte. POST /technical_geo_reports und create_technical_geo_report zählen jetzt jeden erfolgreich erstellten Bericht als eine Einheit des Tageskontingents. „Alle Berichte starten“ versucht, neun Berichte zu erstellen, und wird nur ausgeführt, wenn in Ihrem Tageskontingent noch mindestens neun Einheiten frei sind. Nicht erstellte Berichte verbrauchen keine Einheit. Wie groß das Tageskontingent ist, hängt vom Konto ab.

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

    Antwortschemas entsprechen dem, was die API sendet. Die tatsächlich gesendeten Antworten bleiben unverändert; das OpenAPI-Dokument und die offiziellen SDKs beschreiben sie jetzt korrekt. Die Punkte von GET /metrics/timeseries, GET /metrics/summary und der Reihe over_time von GET /metrics/sov (TimeseriesPoint) enthalten ein Kalenderdatum wie 2026-09-01 (bei der Granularität Woche oder Monat den ersten Tag des Zeitabschnitts) und keinen Zeitstempel, und value ist bei Kennzahlen zu Raten, Positionen und Sentiment an Tagen ohne Antworten null. Die SDKs für Go, Java, Kotlin, Rust und C# konnten diese Punkte bisher nicht dekodieren. In den typisierten SDKs ist date jetzt ein Datumstyp, zum Beispiel LocalDate in Java und Kotlin, DateOnly in C#, NaiveDate in Rust, date in Python und ein String in Go. Felder, die die API als null senden kann und an denen das C#-SDK bisher scheiterte, sind jetzt als nullable deklariert: brand_name, url, description, business_model, target_audience, brand_voice, goals, google_play_id und app_store_id bei GET /dimensions/projects/{id}; matching_names, google_play_id, app_store_id und color bei GET /dimensions/competitors/{id}; domain im Eintrag des Projekts in GET /metrics/timeseries, GET /metrics/summary und GET /metrics/sov sowie in der Zeile der eigenen Marke von GET /dimensions/competitors, wenn das Projekt keine URL hat; response, executed_at, success, duration_ms und fan_out_queries bei GET /answers/{id}; result_data bei Aufgaben im GEO Writer; und last_delivered_at bei Webhook-Abonnements. duration_ms ist eine Zahl mit einer Nachkommastelle, keine Ganzzahl. Im Go-SDK verwenden die Felder darunter, die keine Arrays sind, jetzt die Wrapper-Typen Nullable*.

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

    Einheitlicher Zugriff auf Sentiments. GET /sentiments und GET /dimensions/sentiments erfordern jetzt mindestens den Tarif Growth. Die entsprechenden MCP-Tools nutzen dieselbe Beschränkung und geben bei direkten Aufrufen unterhalb dieses Tarifs ERR_PLAN_REQUIRED zurück.

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

    Projekteinrichtung mit weniger Aufrufen. POST /projects und das MCP-Tool create_project akzeptieren collections, eine Liste von {name, prompts}, die mit dem Projekt Prompt-Tags anlegt und Prompts derselben Anfrage anhand ihres Texts diesen Tags zuordnet, und die Antwort enthält zusätzlich collections und same_domain_projects (Projekte mit derselben Domain, die Sie bereits sehen können; die Erstellung wird nie blockiert). industry akzeptiert beim Erstellen, im Entwurf und beim Aktualisieren einen Schlüssel oder ein Array, und bei einem unbekannten Schlüssel werden jetzt die gültigen aufgelistet. PATCH /projects/:id und update_project akzeptieren name. Die Zeitabschnitte von GET /metrics/sov erhalten confidence und margin_of_error, dazu kommt sample auf oberster Ebene. GET /account und get_account_usage enthalten zusätzlich plan_name. Nur in MCP: get_sov akzeptiert view=compact, und list_prompts akzeptiert fields.

  48. 2026-09

    Code für fehlenden Tarif bei tarifbeschränkten MCP-Tools. Ein direkter tools/call an ein Tool, das Ihr Tarif nicht enthält, gibt jetzt neben error auch code: "ERR_PLAN_REQUIRED" zurück, also denselben Code, den die REST-Endpunkte bei einer Tarifbeschränkung zurückgeben. Der Text in error bleibt unverändert.

  49. 2026-09 (v1.49.0)

    Erwähnungen auf Seiten werden pro Projekt ausgewertet. Die Felder zu Erwähnungen auf Seiten in GET /citation_intelligence/groups, GET /citation_intelligence/urls/{url_sha256} und /content, einschließlich der Anzahl der Erwähnungen nach Domain und Host und des Filters content_gap, beschreiben jetzt die Analyse der zitierten Seite für das anfragende Projekt. Eine Seite, die für das Projekt noch nicht analysiert wurde, auch eine, die gespeichert wurde, bevor das Projekt sie zitierte, gibt für brand_mentioned und competitor_mentioned null statt false zurück, dazu content_gap_status: mentions_not_processed und page_cache.mentions_processed: false, und die Anzahl der Erwähnungen einer Gruppe ist null, wenn noch keine ihrer Seiten analysiert wurde. Dieselbe Regel gilt für page_details in GET /answers/{id}, für mention_filter bei GET /dimensions/sources und für die entsprechenden MCP-Tools. mentions_not_processed wurde bereits vor dieser Version zurückgegeben und ist jetzt dokumentiert.

  50. 2026-09 (v1.48.0)

    Links in die App. Antworten (GET /answers, GET /answers/{id}, GET /dimensions/prompt_executions), Prompts (GET /dimensions/prompts, GET /metrics/prompt_summary) und technische GEO-Berichte (GET /technical_geo_reports, GET /technical_geo_reports/{id}) geben jetzt app_url zurück, den Link, der den Datensatz in der App öffnet. POST /technical_geo_reports gibt app_urls zurück, einen Link pro erstelltem Bericht mit dem Berichtstyp als Schlüssel. Jeder Link endet auf ?project_id=, sodass er dieses Projekt für jede Person öffnet, die Zugriff darauf hat. Die MCP-Tools geben dieselben Links zurück.

  51. 2026-09 (v1.47.0)

    Ausgabesprache und manuelle Bearbeitungen für llms.txt. POST /technical_geo_reports und das MCP-Tool create_technical_geo_report akzeptieren output_language_code (ISO 639-1, standardmäßig die Sprache des Projekts) für den Bericht zu llms.txt, der dabei entsteht. Die Zusammenfassungen der Berichte enthalten output_language_code, und das result_data eines abgeschlossenen Berichts zu llms.txt enthält zusätzlich manually_edited_at, original_llms_txt_content, original_llms_full_txt_content und metadata.output_language_code: Wurden die Dateien in der App bearbeitet, geben llms_txt_content und llms_full_txt_content den bearbeiteten Text zurück.

  52. 2026-09 (v1.46.0)

    Der Parameter filters der Search Console funktioniert jetzt mit den offiziellen SDKs. Der Parameter akzeptiert die gesamte Liste als einen einzigen JSON-Wert, filters=[{"dimension":"page","operator":"contains","expression":"/blog/"}], weil es für ein Array aus Objekten keine Darstellung als Query-Parameter gibt, die ein generierter Client erzeugen kann. Die bestehende Kodierung mit eckigen Klammern, filters[][dimension]=page, bleibt unverändert und funktioniert weiterhin.

  53. 2026-09 (v1.45.0)

    Modellfilter akzeptieren jetzt naver_ai und baidu_ai für Konten, in denen diese selbst buchbaren Add-ons aktiviert sind.

  54. 2026-09

    Kompatibilität mit MCP-Verzeichnissen. Die Beschreibungen der Tools nennen jetzt nur noch ihre eigene Operation, ihre Eingaben, Grenzen und Nebenwirkungen. Anweisungen zur Orchestrierung über mehrere Tools hinweg und zum Verhalten des Modells wurden entfernt. Playbooks für die geführte Analyse bleiben über MCP-Prompts verfügbar, die Sie im Client selbst aufrufen, werden aber nicht mehr über get_analysis_playbook bereitgestellt, weil Tools keine Verhaltensanweisungen dynamisch einfügen dürfen.

  55. 2026-09 (v1.44.0)

    Zitierte URLs behalten ihre Kennzahlen zu Zitierungen, wenn der Seiteninhalt nicht verfügbar ist. Ist unbekannt, ob eine Seite Erwähnungen enthält, wird jetzt null (kein Wert) zurückgegeben; content_gap_status umfasst content_unavailable. Leere Crawl-Ergebnisse erscheinen nicht mehr als analysierte Seiten. Festgestellte Statuscodes 404 und 410 bleiben sichtbar.

  56. 2026-09

    Maschinenlesbare Codes bei Fehlern von MCP-Tools. Ein fehlgeschlagener tools/call behält isError: true, und sein Text enthält jetzt neben error auch code, wenn es für den Zustand ein REST-Gegenstück gibt, und zwar mit demselben Wert, den der REST-Endpunkt zurückgibt: ERR_PROJECT_NOT_FOUND, ERR_INVALID_PARAM, ERR_INVALID_RANGE, die drei Codes der Search Console (ERR_SEARCH_CONSOLE_NOT_CONNECTED, ERR_SEARCH_CONSOLE_ACCESS_REVOKED, ERR_SEARCH_CONSOLE_UPSTREAM) sowie ERR_AI_TRAFFIC_NOT_CONNECTED / ERR_AGENT_TRAFFIC_NOT_CONNECTED. Der Text in error bleibt unverändert.

  57. 2026-09

    Webhook für manuelle Bearbeitungen im GEO Writer (v1.43.0). Der neue Ereignistyp intelligence_task.updated wird ausgelöst, wenn der Text einer abgeschlossenen Aufgabe von Hand bearbeitet oder auf die von der KI erstellte Fassung zurückgesetzt wird. Beide Payloads der Ereignisse zum GEO Writer enthalten jetzt manually_edited_at, das bei einer nie bearbeiteten und bei einer gerade zurückgesetzten Aufgabe null ist. Abonnieren Sie das Ereignis wie jedes andere mit POST /webhooks; GET /webhooks/sample/intelligence_task.updated liefert Beispiel-Payloads. Die Connectors für Zapier, Make und n8n stellen es als neuen Trigger bereit.

  58. 2026-09

    Texte aus dem GEO Writer nach der Generierung bearbeiten (v1.42.0). PATCH /intelligence_tasks/:id bearbeitet den Text einer abgeschlossenen Aufgabe direkt: Senden Sie ein Objekt edits, dessen Schlüssel Pfade in Punktnotation innerhalb von result_data sind (zum Beispiel sections.0.content oder title) und dessen Werte den neuen Text enthalten. Nur bereits vorhandene Textfelder lassen sich ändern; ein Pfad, der sich nicht auflösen lässt, ein leerer title oder ein Wert mit mehr als 20.000 Zeichen gibt ERR_INVALID_PARAM zurück. Bei der ersten Bearbeitung wird eine Kopie des generierten Ergebnisses aufbewahrt, und POST /intelligence_tasks/:id/revert stellt sie wieder her. Die Payloads der Aufgaben erhalten manually_edited_at (Liste und Detailansicht) und edited_by_user_id (Detailansicht), und die Antwort auf die Aktualisierung enthält zusätzlich changed_paths. Zwei MCP-Tools bilden die Endpunkte ab: update_intelligence_task_content und revert_intelligence_task_content. Beide Schreibvorgänge erfordern einen API-Schlüssel mit Schreibzugriff und bei Teammitgliedern die Berechtigung „Aktualisieren“ für GEO Writer.

  59. 2026-09

    Prompt-Filter für den Erwähnungsanteil nach zitierender Domain (v1.42.0). GET /citation_intelligence/mentions_by_domain und das MCP-Tool get_mentions_by_citing_domain akzeptieren jetzt brand_kind (brand, brand_other oder non_brand) und wenden den Filter zusammen mit den Filtern für Modell, Land, Sprache und Tag auf die Antworten des Projekts an, auf denen die Auswertung beruht. Ohne den Parameter bleibt das bisherige Verhalten über alle Markenbezüge hinweg erhalten. Der REST-Endpunkt lehnt ungültige Werte mit ERR_INVALID_PARAM ab; das MCP-Tool gibt einen Validierungsfehler zurück.

  60. 2026-09

    Zwei Korrekturen für die Search Console (v1.41.0). Eine unbekannte dimension gibt jetzt ERR_INVALID_PARAM zurück, statt stillschweigend verworfen zu werden, und die Werte der Aufschlüsselungen nach page und query behalten die Groß- und Kleinschreibung, die Google zurückgibt, statt in Kleinbuchstaben umgewandelt zu werden, weil bei der URL einer Seite die Groß- und Kleinschreibung eine Rolle spielt.

  61. 2026-09

    Die Endpunkte der Search Console unterstützen alle Abfrageoptionen von Google (v1.41.0). Die vier Endpunkte unter /search_console/* und ihre MCP-Tools erhalten drei neue Parameter, die Google für Abfragen der Search Analytics anbietet: search_type (web, image, video, news, discover, googleNews), filters (ein Array aus Objekten {dimension, operator, expression}, die mit AND verknüpft werden; zwei der sechs Operatoren sind reguläre Ausdrücke nach RE2) und data_state (standardmäßig final, oder all, um auch die jüngsten, noch unvollständigen Tage einzubeziehen). GET /search_console/summary schlüsselt jetzt neben country und device auch nach page, query und searchAppearance auf, begrenzt durch limit (Standard- und Höchstwert 1.000). Zeiträume können jetzt bis zu 487 statt 400 Tage umfassen, entsprechend der Aufbewahrungsdauer von 16 Monaten bei Google.

  62. 2026-09

    Korrekturen an Datumsbereichen und Aggregation (v1.40.0). Ein Wert für to nur mit Datum (zum Beispiel to=2026-09-01) umfasst jetzt den ganzen Tag. Bisher wurde er als Mitternacht ausgewertet, sodass der letzte Tag fehlte und jeder Zeitraum einen Tag zu kurz war. Clients, die bereits einen vollständigen Zeitstempel senden, sind nicht betroffen. Wöchentliche und monatliche Zeitabschnitte in GET /reports/ai_model_insights/* werden jetzt aus den Gesamtwerten des Zeitabschnitts berechnet, statt die täglichen Prozentwerte zu mitteln, sodass ein Tag mit vielen Daten nicht mehr genauso zählt wie ein ruhiger Tag. Positionsdurchschnitte gewichten jede Zeile danach, wie viele Positionen sie enthält, statt alle Zeilen gleich zu behandeln. Aus einem Projekt entfernte Zeilen zählen in keinem lesenden Endpunkt mehr zu Erwähnungen, Zitierungen, Quellen oder Sentiments.

  63. 2026-09

    Währung in Shopping-Zeilen. GET /dimensions/shopping mit view=merchants liefert jetzt das Feld currency, das die Währung von min_price, max_price und avg_price angibt. Unsere Datenanbieter geben die Preise jedes Markts in dessen eigener Währung an und senden selbst kein Währungsfeld. Ein Händler, der in mehr als einer Währung verkauft, meldet daher jetzt die Währung, in der die meisten seiner Preise angegeben sind, statt über alle hinweg zu mitteln, und eine Preisspanne mischt nie zwei Währungen. Der Wert ist null, wenn kein Preis eine Währung enthielt, die wir zuordnen konnten. Bei view=products gibt currency jetzt die Währung von max_price an, und das neue Feld currency_count gibt an, in wie vielen Währungen das Produkt angeboten wurde: Ein Wert über 1 bedeutet, dass die Zeile das Angebot mit dem höchsten Preis meldet und min_price in einer anderen Währung angegeben sein kann. totals.avg_price wird jetzt innerhalb einer einzigen Währung berechnet, statt über mehrere zu mitteln, und totals.avg_price_currency nennt diese Währung. Keine neuen Endpunkte oder Fehlercodes.

  64. 2026-09

    Klarere Fehlerdetails und ein strengerer Modellfilter für Antworten (v1.38.0). Fehler mit Details unter error.meta.message enthalten diese Details jetzt auch in error.message. error.meta bleibt unverändert. Fehler ohne Details verwenden weiterhin Standardtoken für die Meldung, etwa missing_authorization. Werten Sie in Ihrem Code error.code aus, niemals den Text der Meldung. GET /answers lehnt jetzt einen Wert für model, der zu keinem Modell im Tracking des Kontos gehört, mit 422 ERR_INVALID_PARAM ab, statt den Filter zu ignorieren. Die Beschreibungen von ERR_LIMIT_REACHED und ERR_QUOTA_EXCEEDED führen jetzt jede Obergrenze auf, die der jeweilige Code abdeckt.

  65. 2026-09

    Widerrufene Schlüssel und Antworten zum Zugriffsumfang (v1.37.1). Ein widerrufener API-Schlüssel antwortet jetzt wie dokumentiert mit 403 ERR_REVOKED_API_KEY statt mit 401 ERR_INVALID_API_KEY. Der Schlüssel eines Teammitglieds wird auf dieselbe Weise abgewiesen, solange der Kontoinhaber gesperrt ist oder das Konto zur Löschung vorgemerkt ist. POST /intelligence_tasks, PATCH /project_drafts/:id und POST /project_drafts/:id/finalize dokumentieren jetzt wie die anderen schreibenden Operationen die Antwort 403 ERR_INSUFFICIENT_SCOPE, die ein Schlüssel mit reinem Lesezugriff erhält.

  66. 2026-09

    Fehlercodes der Search Console und Verhalten bei Live-Abrufen (v1.37.0). Wenn Live-Abrufe aktiviert sind, geben die vier Endpunkte unter /search_console/* bei widerrufenem Google-Zugriff ERR_SEARCH_CONSOLE_ACCESS_REVOKED (403) zurück; verbinden Sie die Property unter Einstellungen > Projekteinstellungen > Datenverbindungen erneut. Sie geben ERR_SEARCH_CONSOLE_UPSTREAM (503) zurück, wenn die Google Search Console nicht verfügbar oder ihr Kontingent erschöpft ist; warten Sie vor einem erneuten Versuch so viele Sekunden, wie Retry-After angibt. MCP-Tools melden diese Zustände als Tool-Fehler. Der Antwort-Header X-Search-Console-Backend gibt an, ob es sich um einen Abruf gespeicherter Daten (stored) oder einen Live-Abruf (live) handelt. Abrufe gespeicherter Daten nutzen die synchronisierten Daten, ohne Google zu kontaktieren. Bei Suchanfragen und Seiten zählt total die eindeutigen Schlüssel, die für den Zeitraum verfügbar sind: bei Abrufen gespeicherter Daten die Schlüssel aus den synchronisierten Tageszeilen, bei Live-Abrufen bis zu 25.000 Zeilen aus einer einzigen Anfrage an Google. Live-Antworten enthalten truncated: true, wenn diese Grenze erreicht ist. Sortierung und Paginierung beziehen sich auf die verfügbaren Einträge.

  67. 2026-09

    Abgleich zitierter URLs pro Wettbewerber (v1.36.0). POST /competitors und PATCH /competitors/:id akzeptieren jetzt das optionale Feld citation_match_mode mit domain, host oder path_prefix. Bei path_prefix ist citation_match_path erforderlich. Mit PATCH /competitors/:id lässt sich außerdem domain ändern, das die Domain der Website oder den exakten Host speichert, den die Regel verwendet. Die Payloads beim Lesen von Wettbewerbern enthalten die Felder der Regel. Wenn Sie die Website oder eine der beiden Regeleinstellungen ändern, werden die bisherigen Zitierungen im Hintergrund neu zugeordnet, sodass auch die bisherigen Kennzahlen und die Zuordnung der Quellen der neuen Konfiguration folgen.

  68. 2026-08 (Monatsende)

    Öffentliche API-Referenz mit einer Seite pro Ressource. https://llmpulse.ai/api-docs behandelt jetzt den Einstieg (Schlüssel, erster Aufruf, Kontonutzung) und verlinkt auf eine Seite pro Ressource: /api-docs/projects, /api-docs/metrics, /api-docs/prompts, /api-docs/webhooks, /api-docs/core-concepts (gemeinsame Filter, Ausgabeformate, Fehlercodes), /api-docs/integrations (Codebeispiele, Postman, MCP), /api-docs/oauth und die übrigen, jeweils von jeder anderen Seite aus erreichbar. Alte Deeplinks wie /api-docs#webhooks werden auf die Seite weitergeleitet, die den Abschnitt jetzt enthält. llms.txt nennt für jede Ressourcengruppe neben ihren Endpunkten die URL der Dokumentation. Wenn Sie mit einem Konto ab Tarif Scale angemeldet sind, finden Sie die vollständige Referenz mit dem interaktiven API-Playground weiterhin auf einer einzigen Seite in der App unter API-Schlüssel. Endpunkte, Parameter, Payloads und Fehlercodes bleiben unverändert.

  69. 2026-08 (Monatsende)

    Überarbeitete Enum-Werte des Projektprofils (v1.35.0). business_model beschreibt jetzt nur noch eine Sache, nämlich wie eine Marke verkauft, statt Vertriebskanal und Branche zu vermischen. Die akzeptierten Schlüssel sind B2B_SAAS, B2C_SUBSCRIPTION, ECOMMERCE, RETAIL, MARKETPLACE, LEAD_GENERATION, SERVICES, ENTERPRISE_SOFTWARE, MEDIA_ADVERTISING, EDUCATION_TRAINING, NONPROFIT_PUBLIC und OTHER. Nicht mehr verwendete Schlüssel (B2B_CLOUD_SERVICES, B2C_SMART_HOME, B2C_STREAMING, B2C_GAMING) werden bei POST /projects und PATCH /projects/:id auf den nächstliegenden aktuellen Wert übertragen, statt abgelehnt zu werden, sodass bestehende Integrationen weiter funktionieren; tatsächlich unbekannte Schlüssel geben weiterhin ERR_INVALID_PARAM zurück. industry akzeptiert jetzt 34 statt 19 Schlüssel und ergänzt Branchen, die sich bisher mit OTHER begnügen mussten. Die gespeicherten Werte wurden migriert, sodass ein vor dieser Änderung erstelltes Projekt beim Auslesen seinen neuen Schlüssel meldet. Das zugehörige Freitextfeld business_model_other ist jetzt Teil der API: Senden Sie es zusammen mit business_model: OTHER bei POST /projects oder PATCH /projects/:id (und in den MCP-Tools create_project / update_project), dann wird es in der Payload des Projekts zurückgegeben. Zusammen mit einem anderen Schlüssel führt es zu ERR_INVALID_PARAM, und es wird automatisch geleert, sobald das Geschäftsmodell nicht mehr OTHER ist.

  70. 2026-08 (Monatsende)

    Analysefilter mit mehreren Werten (v1.34.0). collection_id, country_code, language_code und prompt_type akzeptieren jetzt einen einzelnen Wert oder eine kommagetrennte Liste, und zwar bei den Endpunkten für Kennzahlen, Dimensionen, Antworten, Citation Intelligence und die KI-Modellanalyse, die diese Filter bereits unterstützen. GET /sentiments akzeptiert außerdem mehrere Werte für analysis. Werte innerhalb eines Filters werden mit OR verknüpft, verschiedene Filter mit AND. Anfragen mit einem einzelnen Wert funktionieren unverändert, und die entsprechenden MCP-Tools folgen denselben Regeln.

  71. 2026-08 (Monatsende)

    Technische GEO-Berichte abrufen (v1.33.0). GET /technical_geo_reports listet Berichte nach project_id und report_type auf, und GET /technical_geo_reports/:id liefert den aktuellen Status und nach Abschluss das vollständige result_data. Die neuen MCP-Tools list_technical_geo_reports und get_technical_geo_report bieten denselben Zugriff, und create_technical_geo_report gibt jetzt die IDs der Berichte zurück und weist Clients an, diese regelmäßig abzufragen. Claude und andere MCP-Clients können technische GEO-Berichte jetzt im selben Chat starten, auf sie warten und sie lesen, ganz ohne Kopieren und Einfügen.

  72. 2026-08 (Monatsende)

    Platzhalterantworten werden als no_result ausgewiesen. Liefert ein Anbieter nach allen Wiederholungsversuchen nichts für einen Prompt, ist der gespeicherte Text ein Platzhalter und keine echte KI-Antwort. Diese Zeilen waren bereits von allen Kennzahlen der Plattform ausgeschlossen, ließen sich über die API aber nicht unterscheiden. Einträge von GET /answers und GET /answers/:id enthalten jetzt den booleschen Wert no_result, und GET /answers (sowie das MCP-Tool list_answers) akzeptiert den optionalen Filter no_result: false = nur echte Antworten (empfohlen, wenn Sie eigene Kennzahlen berechnen), true = nur Platzhalter, weggelassen = beides (bisheriger Aufbau, unverändert).

  73. 2026-08 (Monatsmitte)

    Projektprofile aktualisieren, Markenhandbuch schon bei der Erstellung (v1.31.0). Der neue Endpunkt PATCH /api/v1/projects/:id aktualisiert das Profil eines Projekts nach der Erstellung, mit denselben Feldern wie in den Projekteinstellungen: brand_name, description, industry, business_model, target_audience, brand_voice, goals, primary_products und matching_names. Die Felder des Markenhandbuchs (description, industry, brand_voice, target_audience) fließen in den GEO Writer, die Prompt-Vorschläge und die Empfehlungen ein, sodass externe Systeme den Markenkontext programmatisch synchron halten können. Senden Sie nur die Felder, die sich ändern sollen; unbekannte Felder geben ERR_INVALID_PARAM zurück. Eine Änderung von matching_names (eine Liste, die die bisherige vollständig ersetzt) startet im Hintergrund den Abgleich von Erwähnungen und Zitierungen über den gesamten Verlauf des Projekts neu (rematching: true; weitere Änderungen werden abgelehnt, solange er läuft), und eine Änderung von brand_name gilt nur für künftige Durchläufe. POST /api/v1/projects (und das MCP-Tool create_project) akzeptieren jetzt schon bei der Erstellung business_model, target_audience, brand_voice, goals und primary_products. Das bestehende MCP-Tool update_project und der neue REST-Endpunkt nutzen jetzt genau denselben Dienst. Erfordert einen API-Schlüssel mit dem Zugriffsumfang read_write; Teammitglieder benötigen die Berechtigung „Aktualisieren“ für Projekte.

  74. 2026-08 (Monatsmitte)

    Korrekturen an den Filtern der neuen Listen (v1.30.0). Dokumentierte Filter, die bisher stillschweigend ignoriert wurden, funktionieren jetzt. store (Owned Media) und status (Reddit-Threads) erreichen die Abfrage, statt verworfen zu werden, sodass store=app_store und status=archived keine ungefilterten Zeilen mehr liefern. owned=true gilt für GET /dimensions/shopping?view=merchants, das bisher jeden Händler einschließlich der Wettbewerber zurückgab, sowie für GET /dimensions/owned_media?provider=mobile_apps, dessen Zeilen jetzt das Kennzeichen yours enthalten, das alle anderen Anbieter bereits zurückgaben. Beim selben Anbieter ist total jetzt die Gesamtzahl des Rankings (begrenzt auf 500) statt der Größe der Seite, die paginierenden Clients signalisiert hatte, dass nach Seite 1 nichts mehr folgt. direction=desc gilt jetzt für die Textsortierungen von GET /dimensions/query_fan_outs (order=query_text, order=prompt_text), die immer aufsteigend sortierten; beide sortieren jetzt wie jede andere Sortierung standardmäßig absteigend. Der eigene Parameter view eines Endpunkts lässt sich jetzt endlich mit output=flat oder output=csv kombinieren (zum Beispiel ?view=merchants&output=csv), was bisher ERR_INVALID_PARAM zurückgab, und flache Antworten geben view, provider und store mit zurück. GET /account meldet jetzt das Anfragelimit des Schlüssels, mit dem Sie den Aufruf senden, statt des Standardwerts, und sein Block subscription ist nur sichtbar, wenn Sie Zugriff auf Tarife & Abrechnung haben. Studien sind auf die Projekte beschränkt, auf die Sie zugreifen können.

  75. 2026-08 (Monatsmitte)

    Sechs neue Produktbereiche (v1.29.0). Shopping und bezahlte Platzierungen in KI-Antworten: GET /api/v1/dimensions/shopping und GET /api/v1/dimensions/ads (Scale+). Owned Media und Communitys: GET /api/v1/dimensions/owned_media (YouTube, Instagram, Facebook, TikTok, LinkedIn, App-Stores) und GET /api/v1/dimensions/reddit (Growth+). Analystenberichte über mehrere Modelle: GET /api/v1/reputation/reports, GET /api/v1/reputation/reports/:id, GET /api/v1/studies, GET /api/v1/studies/:id und GET /api/v1/studies/:id/reports/:report_id (erfordert Reputationsmonitoring). Die Pfade für Shopping und Anzeigen sind bewusst nicht nach einem einzelnen Assistenten benannt, sondern gelten für alle Modelle, weil die zugrunde liegenden Daten schon immer die üblichen Modellwerte enthalten. Neun passende MCP-Tools: list_shopping_products, list_ads, list_reddit_citations, list_owned_media, list_reputation_reports, get_reputation_report, list_studies, get_study, get_study_report. Alle neun Endpunkte unterstützen output=flat und output=csv.

  76. 2026-08

    Query Fan Out in API und MCP (v1.28.0). Der neue Endpunkt GET /api/v1/dimensions/query_fan_outs liefert die Suchanfragen, die ein Modell bei der Beantwortung Ihrer Prompts im Tracking tatsächlich im Hintergrund gestellt hat. Sie weichen oft von Ihrer eigenen Formulierung ab. view=query (Standard) liefert eine Zeile pro eindeutiger Suchanfrage mit der Anzahl ihrer Vorkommen und ihrem Anteil; view=prompt liefert eine Zeile pro Prompt mit der Anzahl der eindeutigen Suchanfragen, die er ausgelöst hat. Der Endpunkt akzeptiert die üblichen Prompt-Filter sowie query (Suche nach Teilzeichenfolgen), order, direction und output für flache Ausgabe oder CSV; eine Sortierung, die nicht zur gewählten Ansicht gehört, gibt ERR_INVALID_PARAM zurück. Das entsprechende MCP-Tool ist list_query_fan_outs. Fan-out-Suchanfragen meldet vor allem ChatGPT. Ein leeres Ergebnis bedeutet daher meist, dass die betrachteten Modelle sie nicht offenlegen, und nicht, dass nichts gesucht wurde. Der Endpunkt liefert nur die Aggregation: Für eine Veränderung gegenüber dem Vorzeitraum rufen Sie ihn zweimal mit expliziten Werten für from/to auf. Für Teammitglieder gilt bei beiden Schnittstellen dieselbe Berechtigung für Query Fan Out wie für die Seite in der App.

  77. 2026-08

    Kontonutzung, Header zu Anfragelimits und ein Glossar für MCP (v1.27.0). Der neue Endpunkt GET /api/v1/account liefert den Tarif, den Tracking-Rhythmus, die Laufzeit des Abonnements, die Nutzung der Kontingente (Prompts, Projekte, Wettbewerber pro Projekt, Aufgaben im GEO Writer pro Monat, Teammitglieder) und die Anfragelimits, die für Ihren Schlüssel gelten. So sieht eine Integration ihr verbleibendes Budget, statt die Obergrenze erst zu bemerken, wenn sie an sie stößt. Bei einem unbegrenzten Kontingent sind limit und remaining null, und unlimited: true ist gesetzt. Die Limits richten sich nach dem Kontoinhaber, daher sehen Teammitglieder die Kapazität, die für sie gilt. Das entsprechende MCP-Tool ist get_account_usage und in jedem Tarif verfügbar. Jede Antwort unter /api/v1 enthält jetzt X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset (die Antwort 429 ERR_RATE_LIMITED enthält sie zusammen mit Retry-After), und die beiden Budgets, global 300 Anfragen pro Minute und 60 Anfragen pro Minute für Schreibanfragen, sind jetzt dokumentiert statt nur implizit. Der MCP-Server stellt außerdem die neue Ressource llmpulse://glossary bereit, die jede Kennzahl, Einheit und Dimension sowie die Hinweise zur Interpretation definiert (Sichtbarkeit vs. AI Visibility Score, Nenner des Share of Voice, Markenbezug, unvollständige Zeitabschnitte, kleine Stichproben). Ein Assistent kann die Definitionen so nachlesen, statt sie zu erschließen. Bestehende Endpunkte, Parameter, Payloads und Fehlercodes bleiben unverändert.

  78. 2026-08

    Agent-Readiness ergänzt die technischen GEO-Berichte (v1.26.0). POST /technical_geo_reports erstellt jetzt zusätzlich einen Bericht agent_readiness, der bewertet, wie gut die Domain auf KI-Agenten vorbereitet ist. created_reports und report_ids enthalten daher den neuen Schlüssel agent_readiness (9 Berichte pro Durchlauf statt 8). Das MCP-Tool create_technical_geo_report erstellt dieselben Berichte. Bestehende Schlüssel und der Aufbau der Antworten bleiben unverändert.

  79. 2026-08

    Wöchentliches Tracking für Grok und DeepSeek. Die Werte grok und deepseek im Filter model liefern jetzt echte wöchentliche Sichtbarkeitsdaten für Konten, in denen diese Add-ons aktiviert sind, und zwar in jedem Endpunkt für Kennzahlen, Dimensionen, Antworten, Sentiments und Zitierungen (bisher wurden sie als Filterwerte akzeptiert, fanden aber nie eine passende Ausführung). Die Antworten von Grok stammen aus seiner eigenen Websuche und enthalten daher wie bei jedem anderen Modell Quellen und Zitierungen. Antworten von DeepSeek enthalten keine Quellen oder Zitierungen: DeepSeek bietet keine Websuche, daher geben seine Antworten das eigene Wissen des Modells wieder. Zeilen zu DeepSeek liefern bewusst citations: 0 und eine leere Quellenliste; visibility, mention_rate, Share of Voice und Sentiment verhalten sich normal. Der Aufbau der Antworten bleibt unverändert, und Modelle, die für das Konto des API-Schlüssels nicht aktiviert sind, werden weiterhin stillschweigend ausgelassen.

  80. 2026-08

    Öffentliche MCP-Server-Card. Der neue Endpunkt GET /api/v1/mcp/server-card liefert eine Server-Card nach dem Model Context Protocol, die den Endpunkt beschreibt, seinen Transport über Streamable HTTP, die akzeptierten Protokollversionen und den Authorization-Header, den ein Client senden muss. Sie erfordert keine Authentifizierung, weil ein Client dieses Dokument liest, bevor er Zugangsdaten besitzt, und sie enthält selbst keine Zugangsdaten. Die Card ist im Katalog für Agentic Resource Discovery unter /.well-known/ai-catalog.json eingetragen. Dessen MCP-Eintrag verwendet jetzt den korrekten Medientyp application/mcp-server-card+json und verweist auf die Card statt auf den Transport-Endpunkt. Die Card wird bewusst NICHT unter /.well-known/mcp/server-card.json bereitgestellt: Die MCP-Spezifikation schließt diesen Pfad aus. LLM Pulse veröffentlicht außerdem jetzt einen API-Katalog unter /.well-known/api-catalog (RFC 9727) und einen Agent-Skills-Index unter /.well-known/agent-skills/index.json.

  81. 2026-08

    API-Referenz nach Ressourcen neu gegliedert. Die Dokumentation unter /api-docs, die Spezifikationen für OpenAPI und Swagger, der maschinenlesbare Index llms.txt und die Postman-Collection ordnen jetzt jeden Endpunkt der Ressource zu, zu der er gehört (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). Jede Ressource zeigt ihre lesenden und schreibenden Endpunkte zusammen und überall in derselben Reihenfolge. Die Liste der Tags im OpenAPI-Dokument deklariert jetzt jedes verwendete Tag: Projects, Competitors, Collections, Annotations, Reports und OAuth fehlten, weshalb Swagger UI und Redoc diese Endpunkte ohne Beschreibung am Ende aufführten. POST /projects und der Assistent unter /project_drafts, die bisher in llms.txt fehlten, sind jetzt aufgeführt, und die Postman-Collection deckt jeden Endpunkt ab statt nur der ursprünglichen zwei Ordner. Endpunkte, Parameter, Payloads und Fehlercodes bleiben unverändert.

  82. 2026-08

    Amazon Rufus heißt jetzt Alexa for Shopping. Amazon hat seinen Shopping-Assistenten umbenannt, daher heißt das Modell in der App, auf der Website und in der Dokumentation jetzt Alexa for Shopping. Für Integrationen ändert sich nichts: Der API-Wert bleibt im Filter model und in jeder Antwort amazon_rufus, und die bisherigen Daten bleiben unverändert. Sie müssen nichts tun.

  83. 2026-08

    Native CLI in Rust und offizielle SDKs. Die CLI v2 ersetzt die JavaScript-Implementierung durch native Binärdateien für macOS, Linux und Windows und behält das bestehende Format für Konfiguration und Profile bei. Typisierte Befehle decken alle 71 REST-Operationen ab, mit Ausgabe als JSON, Tabelle oder CSV und zusätzlich einem Befehl für direkte REST-Aufrufe. Offizielle generierte Clients werden jetzt für TypeScript, Python, Go, Java, Kotlin, C#, PHP, Ruby, Rust, Swift, Dart und R gepflegt. Das OpenAPI-Dokument deklariert Felder, die null sein können, in einer mit OpenAPI 3.0 kompatiblen Form (nullable), damit sich jeder Client mit derselben fest versionierten Toolchain generieren lässt.

  84. 2026-08

    Automatische Anmerkungen und Zugriff in allen Tarifen (v1.23.0). Anmerkungen sind jetzt in jedem Tarif verfügbar, auch im Tarif Starter und in der kostenlosen Testphase. Zeilen von GET /annotations und des MCP-Tools list_annotations enthalten origin: manual, automation, geo_test oder platform. Automatische Projektanmerkungen halten tägliche Änderungen am Prompt-Set, Änderungen an den aktivierten KI-Modellen und Änderungen des Tracking-Rhythmus fest. Bestehende Felder und das Verhalten beim Schreiben bleiben unverändert.

  85. 2026-08

    Stichprobengrößen und Gruppierung nach Modell für den Share of Voice (v1.22.0). GET /metrics/sov gibt jetzt ein Array periods zurück, das pro Zeitabschnitt die Gesamtzahl der mentions enthält, auf denen die Anteile beruhen (die Stichprobengröße: Ein Zeitabschnitt mit 1 bis 3 Erwähnungen ergibt Anteile von 100/50/33,33 und sollte als kleine Stichprobe behandelt werden), sowie ein Kennzeichen partial für Zeitabschnitte, in denen noch Daten erfasst werden oder die durch den angefragten Zeitraum abgeschnitten sind. Jede Zeile in current enthält außerdem vorberechnete Veränderungen: previous_share (letzter vollständiger Zeitabschnitt) und avg_share (Durchschnitt über die vollständigen Zeitabschnitte mit Daten, ohne unvollständige Zeitabschnitte). Bestehende Felder bleiben unverändert. Das MCP-Tool get_sov erhält group_by=model, das pro Aufruf einen kompakten Vergleich der Anteile nach Modell liefert (mit include_series=true zusätzlich Trendreihen pro Modell). Jedes projektbezogene MCP-Tool akzeptiert in project_id neben der numerischen ID jetzt auch die Domain des Projekts oder den exakten Projekt- oder Markennamen, Antworten der MCP-Tools für Kennzahlen enthalten einen Link zur Ansicht in der App (app_url), und in Hosts, die das unterstützen, zeigen diese Tools interaktive Widgets an: ein Ringdiagramm zum Share of Voice, eine Übersichtskarte zur Sichtbarkeit, ein Liniendiagramm einer Kennzahl im Zeitverlauf (get_timeseries) und die meistzitierten Domains (get_top_sources).

  86. 2026-07 (Monatsende)

    Korrektur der Antwort bei der Projekterstellung (v1.21.1). POST /projects und POST /project_drafts/:id/finalize geben jetzt competitors.processing: false zurück, weil die Einrichtung der Wettbewerber innerhalb der Transaktion des Projekts abgeschlossen wird. Frühere Antworten meldeten fälschlich true. Bei Website-URLs von Projekten antwortet die API jetzt mit ERR_INVALID_PARAM, wenn sie Zugangsdaten, private oder spezielle IP-Adressen, localhost oder interne Hostnamen enthalten. Öffentliche DNS-Hostnamen, internationalisierte Domainnamen und öffentliche IP-Adressen in Literalschreibweise werden weiterhin unterstützt. Ein fehlerhafter JSON-Anfragetext an einen schreibenden Endpunkt gibt jetzt den Fehler beim Parsen des JSON zurück (aus der Familie ERR_INVALID_PARAM) statt ERR_PROJECT_NOT_FOUND.

  87. 2026-07 (Monatsende)

    Filter für Erwähnungen und Zitierungen (v1.21.0). GET /answers, GET /dimensions/prompt_executions und GET /dimensions/sources akzeptieren mention_filter und (die ersten beiden zusätzlich) citation_filter, also dieselbe Matrix mit zwei Achsen wie auf den Seiten Antworten und Zitierungen: Ihre Marke auf der einen, die Wettbewerber auf der anderen Achse, jeweils vorhanden, nicht vorhanden oder beliebig. Die Voreinstellungen sind mentions_you, not_mentions_you, mentions_competitor, not_mentions_competitor, you_and_competitor, competitor_not_you, you_not_competitor und no_brands (es kommt überhaupt keine Marke im Tracking vor), dazu die Varianten für Zitierungen cites_you, not_cites_you, cites_competitor, not_cites_competitor und cites_no_brands. Kombinieren Sie den jeweiligen Filter mit competitors, um die Seite der Wettbewerber auf bestimmte Wettbewerber einzugrenzen; bei einer negativen Voreinstellung bedeutet das „keiner davon“. Bei /dimensions/sources gilt der Filter für den gecrawlten Inhalt jeder zitierten Seite. Unbekannte Voreinstellungen geben ERR_INVALID_PARAM zurück. Dieselben Argumente stehen in den MCP-Tools list_answers, list_prompt_executions und list_sources zur Verfügung.

  88. 2026-07 (Monatsende)

    Flache Ausgabe und CSV-Ausgabe für BI-Tools (v1.20.0). Lesende Endpunkte akzeptieren jetzt den optionalen Parameter output: output=flat liefert dieselben Metadaten und zusätzlich eine rechteckige Tabelle aus columns und rows, output=csv liefert diese Zeilen als text/csv. So lesen Tableau (über seinen REST API Connector), Excel, Google Sheets und Ladeprozesse für Data Warehouses die API, ohne dass Code das verschachtelte JSON durchlaufen muss. /metrics/sov akzeptiert außerdem view=over_time|current|breakdown. Ohne output kommt genau die Antwort zurück, die bestehende Integrationen schon heute erhalten. Fehler kommen immer als JSON, Prozentwerte bleiben auf der Skala von 0 bis 100, paginierte Endpunkte liefern die Header X-Total-Count, X-Page und X-Per-Page, und die flache Ausgabe ist auf 200.000 Zeilen begrenzt.

  89. 2026-07 (Monatsende)

    Längerer Verlauf für Kennzahlen. Der maximale Zeitraum der Endpunkte für Kennzahlen (/metrics/*), der Listen unter /dimensions/*, von Citation Intelligence und der KI-Modellanalyse (REST und ihre MCP-Gegenstücke) steigt von 400 auf 1.500 Tage. Damit sind Abfragen über den gesamten Zeitraum möglich. Die Endpunkte der Search Console behalten ihren Zeitraum von 400 Tagen, der der Aufbewahrungsdauer der von uns gespeicherten GSC-Daten entspricht. Der Connector für Looker Studio erhält die Optionen „Last 365 days“, „All time“ und „Follow report date range“ sowie drei neue Berichtstypen (Prompt performance, Share of Voice, Top Sources), die auf diesen Endpunkten aufbauen.

  90. 2026-07 (Monatsende)

    Mehr schreibende API-Endpunkte: starten, ändern, löschen (v1.19.0). Empfehlungen lassen sich jetzt über die API starten: POST /recommendations (MCP: launch_recommendations) startet eine asynchrone Generierung und gibt den Durchlauf zurück, den Sie regelmäßig abfragen können. Das MCP-Tool benötigt die Bestätigungskarte im Chat der App nicht mehr (externe Clients starten direkt, der Agent in der App fragt weiterhin nach einer Bestätigung). Neue Endpunkte zur Verwaltung, jeweils mit MCP-Gegenstück: DELETE /prompts/:id, PATCH/DELETE /competitors/:id, PATCH/DELETE /collections/:id und alle Endpunkte für Anmerkungen (GET /annotations, PATCH/DELETE /annotations/:id, Growth+). Löschvorgänge lassen sich nicht rückgängig machen: Die Zeilen verschwinden sofort, und die bisherigen Daten werden im Hintergrund endgültig gelöscht. Alle schreibenden Endpunkte erfordern einen API-Schlüssel mit dem Zugriffsumfang read_write und beachten die Berechtigungsmatrix für Teammitglieder.

  91. 2026-07

    Qualitätsverbesserungen für MCP (nach dem Audit eines externen Agenten). Unbekannte Werte für model und vertauschte Zeiträume in from/to geben jetzt ERR_INVALID_PARAM zurück, statt stillschweigend ignoriert zu werden. GET /metrics/agent_traffic gibt den neuen Code ERR_AGENT_TRAFFIC_NOT_CONNECTED zurück, wenn keine Datenquelle für den Traffic von KI-Agenten verbunden ist. avg_visibility in GET /metrics/top_sources ist jetzt der Prozentsatz der Antworten, die die Domain zitieren (begrenzt auf 0 bis 100). Die Felder duration_ms enthalten jetzt echte Millisekunden. Zusätzliche Felder: url_sha256 und created_at in Zeilen von Quellen, matching_names in Zeilen der Wettbewerberliste, score in Sentiment-Kategorien, created_at bei erstellten Anmerkungen und data_through in Antworten zur Search Console (GSC veröffentlicht Daten mit 2 bis 3 Tagen Verzögerung). MCP-Tools: Listen-Tools akzeptieren range, list_answers kürzt Antworten standardmäßig auf 1.500 Zeichen (mehr mit full_text=true), die URL-Ansicht von list_citation_groups ist kompakt, außer mit include_page_details=true, Tools für zitierte URLs akzeptieren statt url_sha256 auch direkt die url, get_sov nutzt standardmäßig alle konfigurierten Wettbewerber, list_prompts erhält den Suchparameter query, und Fehler zu nicht gefundenen Ressourcen geben die angefragte ID zurück.

  92. 2026-07 (Monatsende)

    Abgelaufene Abonnements verlieren den API-Zugriff. Wird ein selbst gebuchtes Abonnement (Starter, Growth oder Scale) gekündigt und ist der bezahlte Zeitraum abgelaufen, geben die API-Schlüssel dieses Kontos nach einer kurzen Kulanzfrist 403 ERR_ACCOUNT_INACTIVE zurück. Aktive Abonnements sind nicht betroffen, ebenso wenig per Rechnung bezahlte und individuell verhandelte Tarife (Scale+ mit individuellen Konditionen, Partner, Enterprise), die weiterlaufen, während ihre Abrechnung manuell erfolgt. Schließen Sie auf der Seite Tarife & Abrechnung erneut ein Abonnement ab, um den Zugriff wiederherzustellen. Neuer Fehlercode: ERR_ACCOUNT_INACTIVE (403).

  93. 2026-07 (Monatsende)

    Sichtbarkeit in den Top-Quellen korrigiert. avg_visibility (und der Alias avg_mention_rate) in GET /metrics/top_sources ist jetzt der Anteil gültiger Antworten, die die Domain zitieren: die Zahl der unterschiedlichen zitierenden Antworten geteilt durch alle gültigen Antworten im Zeitraum. Bisher wurden die Zeilen der Quellen gezählt, sodass eine Antwort, die eine Domain dreimal zitierte, dreifach zählte, und es wurde nur durch die Antworten mit mindestens einer Quelle geteilt. Dadurch konnten Werte über 100 % entstehen. Rechnen Sie mit niedrigeren, korrekten Prozentwerten. total_responses bleibt unverändert.

  94. 2026-07 (Monatsende)

    Modell Amazon Rufus (v1.18.0). Das neue KI-Modell amazon_rufus (der KI-Shopping-Assistent von Amazon, damals Amazon Rufus genannt und inzwischen in Alexa for Shopping umbenannt) startete als Add-on für Enterprise und ist jetzt in jedem Tarif als kostenpflichtiges Add-on erhältlich. Der Filter model der Endpunkte für Kennzahlen, Dimensionen, Antworten und Sentiments akzeptiert amazon_rufus. Wie bei anderen Add-on-Modellen erscheinen Daten nur bei Konten, in denen das Modell aktiviert ist.

  95. 2026-07 (Monatsende)

    API für Projektentwürfe (v1.17.0). Projekterstellung in mehreren Schritten mit KI-Vorschlägen: POST /project_drafts startet einen Entwurf und schlägt Name, Beschreibung und Branche für die URL vor, PATCH /project_drafts/:id übermittelt jeden Schritt (Details, Prompts, Wettbewerber, Owned Media) in strikt vorgegebener Reihenfolge und liefert Vorschläge für den nächsten Schritt, GET liest den Stand (Vorschläge nur aus dem Cache, damit regelmäßiges Abfragen unbedenklich ist), und POST .../finalize erstellt das Projekt idempotent mit genau denselben Wirkungen wie der Schnellmodus. Neue Fehlercodes: ERR_DRAFT_NOT_FOUND und ERR_DRAFT_STATE. Entwürfe laufen nach 24 Stunden ab. Dazu kommen fünf MCP-Gegenstücke, die genau dieselben REST-Dienste nutzen: create_project, start_project_draft, get_project_draft, update_project_draft und finalize_project_draft.

  96. 2026-07 (Monatsende)

    API zur Projekterstellung (v1.16.0). Der neue Endpunkt POST /projects erstellt ein vollständiges Projekt in einem einzigen Aufruf (Schnellmodus): Projektfelder, Prompts (sofort zur Ausführung und Kategorisierung eingereiht), Wettbewerber und das Abonnement der wöchentlichen E-Mail. Wiederholte Anfragen mit demselben external_identifier (Konten mit aktivierter Einbettung) sind idempotent und geben das bestehende Projekt mit idempotent: true zurück. Mit dem optionalen execute_prompts_immediately: false wird der erste Durchlauf in das nächste geplante Tracking-Zeitfenster verschoben. Tarifbeschränkungen und Kontingente gelten genau wie im Einrichtungsassistenten der App (ERR_LIMIT_REACHED, ERR_QUOTA_EXCEEDED, ERR_PLAN_REQUIRED).

  97. 2026-07 (Monatsende)

    Nutzungshinweise für MCP und ausführlichere Projektdetails (v1.15.6). Der MCP-Server gibt verbundenen KI-Clients bei der Initialisierung jetzt Nutzungshinweise mit: den empfohlenen Arbeitsablauf, die Benennung der Kennzahlen, Tipps zur Effizienz und die Regel brand_kind=non_brand für faire Vergleiche zwischen Marke und Wettbewerbern (entsprechend der Standardeinstellung der Übersicht in der App). Filter für brand_kind und prompt_type in allen drei Endpunkten GET /reports/ai_model_insights/* und ihren MCP-Tools (get_ai_model_summary, get_ai_model_position_distribution, get_ai_overview_results) ergänzt; ungültige Werte geben ERR_INVALID_PARAM zurück. GET /dimensions/projects/:id (und das MCP-Tool get_project_details) enthalten jetzt stats.prompts_by_brand_kind sowie einen Block data_coverage mit den Modellen, Ländern und Sprachen, für die tatsächlich Daten vorliegen. Ein einziger Aufruf ersetzt damit separate Abfragen der Modelle sowie der Länder und Sprachen.

  98. 2026-07 (Monatsmitte)

    Einheitliche Kennzahlen für Zitierungen (v1.15.4). Zitierungen und Zitierungsrate umfassen jetzt in Übersicht, KI-Modellanalyse, REST und MCP sowohl sichtbare Zitierungen als auch Verweise auf Hintergrundquellen. Zitierungen im Hintergrund haben keine sichtbare Position und bleiben von avg_position und den Positionsverteilungen ausgeschlossen. Bei der Zuordnung von Quellen zu Ihrer Marke oder zu Wettbewerbern werden exakte Subdomains jetzt durchgängig berücksichtigt. Die Ansicht „Nach Domain“ fasst weiterhin auf Ebene der Root-Domain zusammen. Der Aufbau der Antworten bleibt unverändert.

  99. 2026-07 (Monatsmitte)

    MCP-Benachrichtigungen über Streamable HTTP geben jetzt eine leere Antwort mit Status 202 zurück. Strenge Clients wie Claude und Codex schließen die Initialisierung damit ab, statt beim Parsen einer JSON-Antwort mit dem Wert null zu scheitern.

  100. 2026-07 (Monatsmitte)

    OAuth-Verbindungen über MCP laufen jetzt nach einem Jahr ab. Zugriffs- und Aktualisierungstoken haben eine gemeinsame, feste Ablauffrist für die Autorisierung. Bei einer Aktualisierung wird dasselbe wiederverwendbare Aktualisierungstoken zurückgegeben, damit MCP-Clients keine Zugangsdaten verlieren und keine Fehler durch parallele Anfragen entstehen.

  101. 2026-07 (Monatsmitte)

    REST und MCP nutzen eine gemeinsame Abfrageschicht. Die Endpunkte für Kennzahlen (/metrics/timeseries, summary, sov, prompt_summary, top_sources, agent_traffic, ai_traffic) und alle Listen unter /dimensions/* führen jetzt denselben Abfragecode aus wie ihre MCP-Gegenstücke, sodass beide Schnittstellen immer identische Daten liefern. MCP-Tools haben die fehlenden Filter erhalten: prompt_type / brand_kind in get_prompt_summary, get_top_sources und den Listen-Tools sowie source_type in list_sources (dessen Zeilen jetzt wie bei REST source_type und Kennzeichen für Links zu App-Stores enthalten). Die Prüfung der Eingaben in MCP entspricht jetzt REST: Unbekannte IDs in collection_id / prompt, fehlerhafte Datumsangaben und Zeiträume von mehr als 400 Tagen geben Fehler zurück, statt stillschweigend ignoriert zu werden. Zeilen von list_prompts enthalten jetzt collection_ids, und Zeilen der REST-Zusammenfassung enthalten jetzt das Feld metric, das MCP bereits zurückgab. Ein bewusster Unterschied bleibt: Bei der Granularität Woche oder Monat gibt MCP für Zeitabschnitte vor dem ersten Datenpunkt bei Raten- und Positionskennzahlen null zurück, damit Durchschnitte nicht nach unten gezogen werden, während REST sie weiterhin mit 0.0 auffüllt.

  102. 2026-07

    Lokale Unternehmen in den Details einer Antwort. GET /answers/:id (und das MCP-Tool get_answer) enthalten jetzt das Array local_businesses: die Unternehmen, die ChatGPT bei Prompts mit lokaler Suchintention in seinem Widget für lokale Ergebnisse anzeigt, mit Titel, Adresse, Telefonnummer, Anzahl der Rezensionen, Bewertung, Domain der Website und Position im Ranking. Jedes Unternehmen wird über is_owned / competitor_id Ihrer Marke oder einem Wettbewerber im Tracking zugeordnet.

  103. 2026-07

    Fehlerbehebungen. Die MCP-Tools get_timeseries und get_summary liefern jetzt echte Werte für net_sentiment, die fünf Aufschlüsselungen sentiment_* und avg_mention_position (bisher lieferte MCP für jeden Datenpunkt null statt eines Werts; REST war nicht betroffen) und entsprechen damit der Bedeutung der REST-Kennzahlen. GET /dimensions/all_mentions und GET /dimensions/all_citations paginieren jetzt in der Datenbank, mit deterministischer Reihenfolge bei gleichem created_at. Dadurch laden auch hintere Seiten bei großen Projekten schnell und stabil; der Aufbau der Antwort bleibt unverändert. Individuelle Anfragelimits pro Schlüssel werden jetzt auch bei der globalen Drosselung der API berücksichtigt (Standard bleiben 300 Anfragen pro Minute; für höhere Kontingente kontaktieren Sie uns).

  104. 2026-06 (Monatsende)

    API für KI-Traffic (Scale+). Der neue Endpunkt GET /metrics/ai_traffic liefert den KI-Traffic, den wir über den verbundenen Webanalyse-Anbieter eines Projekts messen (Google Analytics 4, Adobe Analytics, PostHog, Plausible oder Piano): Nutzer, Sitzungen und Conversions pro Tag, gruppiert nach KI-System (ChatGPT, Perplexity, Gemini, Claude und weitere), mit Gesamtwerten und Conversion-Rate. Neues MCP-Tool: get_ai_traffic. Erfordert mindestens den Tarif Scale und einen verbundenen Anbieter; Projekte ohne Anbieter geben den neuen Code ERR_AI_TRAFFIC_NOT_CONNECTED (404) zurück.

  105. 2026-06 (Monatsende)

    API für die Search Console (Growth+). Neue Endpunkte liefern die Leistungsdaten aus der Google Search Console, die wir für Projekte mit verbundener GSC-Property bereits synchronisieren: GET /search_console/summary (Impressionen, Klicks, CTR und durchschnittliche Position als Gesamtwerte, optional aufgeschlüsselt nach country/device), GET /search_console/timeseries (Zeitreihen nach Tag, Woche oder Monat), GET /search_console/queries und GET /search_console/pages (Top-Suchanfragen und -Seiten, sortiert nach Impressionen, Klicks, CTR oder Position, paginiert). ctr ist ein Anteil zwischen 0 und 1 und position der nach Impressionen gewichtete Durchschnitt, wie in der Search Console API. Neue MCP-Tools: get_search_console_summary, get_search_console_timeseries, get_search_console_queries, get_search_console_pages. Projekte ohne verbundene Property geben den neuen Code ERR_SEARCH_CONSOLE_NOT_CONNECTED (404) zurück.

  106. 2026-06 (Monatsende)

    Erwähnungsanteil nach zitierender Domain und Quellenfilter mit mehreren Werten. Neuer Endpunkt GET /citation_intelligence/mentions_by_domain (und MCP-Tool get_mentions_by_citing_domain): Für die Antworten, in denen die jeweilige Domain als Quelle zitiert wird, liefert er den Erwähnungsanteil Ihrer Marke im Vergleich zu den Wettbewerbern, so normalisiert, dass die Anteile aller Marken je Domain zusammen 100 % ergeben. GET /metrics/top_sources und GET /citation_intelligence/groups (und ihre MCP-Tools) erhalten ein Array domains (Positivliste exakter Domains) und ein Array collection_ids (Filter nach mehreren Tags gleichzeitig). Eine breite Matrix aus Domains und Tags braucht damit einen einzigen Aufruf statt eines Aufrufs pro Zelle.

  107. 2026-06 (Monatsende)

    Berechtigungsmatrix für Teammitglieder gilt jetzt auch für API und MCP. Für einen API-Schlüssel (oder eine Sitzung über MCP oder den Agenten der App) eines eingeschränkten Teammitglieds gilt dieselbe Funktionsmatrix wie in der Web-App: Endpunkte und Tools außerhalb der freigegebenen Funktionen geben 403 ERR_INSUFFICIENT_PERMISSION zurück (neuer Fehlercode). Schlüssel von Kontoinhabern und Admins sind nicht betroffen, sodass bestehende Integrationen unverändert weiterlaufen. Ausgehende Webhooks sind jetzt eine eigene Funktion, die sich in der Berechtigungsmatrix freigeben lässt (weiterhin Scale+).

  108. 2026-06 (Monatsende)

    Korrekte Gesamtwerte für Ratenkennzahlen in GET /metrics/summary. Das Feld total ist für Prozentkennzahlen (visibility/mention_rate, citation_rate, ai_visibility_score/weighted_visibility, Sentiment-Anteile) jetzt der Durchschnitt über die Zeitabschnitte statt der Summe der Raten pro Zeitabschnitt, die 100 % übersteigen konnte. Zählkennzahlen (mentions, citations, responses) werden weiterhin summiert. Jede Zeile der Zusammenfassung enthält jetzt das Feld aggregation ("sum" oder "average"), das angibt, wie total berechnet wurde. Dieselbe Korrektur gilt für das MCP-Tool get_summary, das außerdem nicht mehr die vollständige series neben der Zusammenfassung zurückgibt (rufen Sie für Zeitreihen get_timeseries auf) und das neue Argument group_by (model oder collection) erhält, das in einem einzigen Aufruf eine Zusammenfassung pro Gruppe liefert. GET /answers (und das MCP-Tool list_answers) akzeptieren den neuen Parameter query für eine Volltextsuche in den Texten der KI-Antworten, bei der die Groß- und Kleinschreibung keine Rolle spielt: total ist dann die exakte Anzahl der Treffer, und die Zeilen liefern statt des vollständigen Antworttexts snippet und match_count.

  109. 2026-06 (Monatsende)

    Prompt-Berechtigung für Teammitglieder und Prompt-Limits pro Projekt. Kontoinhaber können einem Teammitglied jetzt das Hinzufügen und Löschen von Prompts untersagen. Ist diese Berechtigung für ein Mitglied deaktiviert, geben POST /prompts und das MCP-Tool create_prompts für den Schlüssel dieses Mitglieds 403 ERR_INSUFFICIENT_SCOPE zurück (lesende Endpunkte sind nicht betroffen). Kontoinhaber können in den Projekteinstellungen außerdem ein Prompt-Limit pro Projekt festlegen. Sobald ein Projekt dieses Limit erreicht, geben POST /prompts und create_prompts für alle, auch für den Kontoinhaber, ERR_LIMIT_REACHED zurück (zusätzlich zur bestehenden Prüfung des kontoweiten Kontingents), bis das Limit erhöht wird. Keine neuen Fehlercodes oder Endpunkte.

  110. 2026-06 (Monatsende)

    Neues MCP-Tool get_webhook_sample (Scale+), das MCP-Gegenstück zu GET /webhooks/sample/:event_type: MCP-Clients können sich Ereignis-Payloads damit schon vor dem Abonnieren ansehen. Tarifbeschränkungen für den Katalog der KI-Bots angeglichen: Der REST-Endpunkt GET /dimensions/agent_bots erfordert jetzt mindestens den Tarif Scale (darunter ERR_PLAN_REQUIRED), das MCP-Tool list_agent_bots ist dagegen jetzt in allen Tarifen verfügbar.

  111. 2026-06 (Monatsmitte)

    Ausgehende Webhooks (Scale+, v1.9). Neue Endpunkte: POST /webhooks (ein Projektereignis für eine öffentliche HTTPS-URL abonnieren), GET /webhooks (Abonnements auflisten), DELETE /webhooks/:id (Abonnement beenden), GET /webhooks/sample/:event_type (Beispiel-Payloads für Integrationseditoren). Sieben Ereignistypen: mention.created, competitor_mention.created, citation.created, prompt_execution.completed, sentiment.negative_detected, recommendation.completed, intelligence_task.completed. Zustellungen sind per HMAC-SHA256 signiert (X-LLMPulse-Signature); pro Zustellung gibt es insgesamt bis zu 5 Versuche mit wachsenden Wartezeiten, und nach 20 Fehlschlägen in Folge wird ein Abonnement automatisch deaktiviert. Erstellen und Löschen erfordern einen Schlüssel mit dem Zugriffsumfang read_write. Neue MCP-Tools: create_webhook_subscription, list_webhook_subscriptions, delete_webhook_subscription. Webhooks bilden die Grundlage der neuen Connectors für Zapier, Make und n8n.

  112. 2026-06

    Content Intelligence heißt jetzt GEO Writer. Die Funktion und ihr API-Abschnitt heißen in der App und in der Dokumentation jetzt GEO Writer. Die Umbenennung betrifft nur die Anzeige: API-Endpunkte (POST/GET /intelligence_tasks, GET /intelligence_tasks/:id), der Aufbau von Anfragen und Antworten, Fehlercodes und die Namen der MCP-Tools (create_intelligence_task, list_intelligence_tasks, get_intelligence_task) bleiben unverändert. Die Marketingseite ist mit einer 301-Weiterleitung von /features/content-intelligence nach /features/geo-writer umgezogen.

  113. 2026-05 (Monatsende)

    MCP per OAuth in allen Tarifen verfügbar. Der MCP-Endpunkt (POST /api/v1/mcp) akzeptiert jetzt OAuth-2.1-Zugriffstoken, die über Dynamic Client Registration (RFC 7591) und PKCE-S256 ausgestellt werden. In jedem Tarif, auch in den Tarifen Starter und Growth sowie in der kostenlosen Testphase, lassen sich ChatGPT, Claude, Gemini, Cursor oder jeder andere MCP-kompatible Client mit dem Konto bei LLM Pulse verbinden: Fügen Sie dazu die URL https://api.llmpulse.ai/api/v1/mcp in die MCP- oder Connector-Einstellungen Ihres Clients ein. Der Client führt Sie anschließend durch eine Anmeldung per OAuth, ganz ohne API-Schlüssel. Tarifbeschränkungen für einzelne Tools gelten weiterhin: Schreibende Tools und erweiterte lesende Tools, die Growth oder Scale voraussetzen, werden für Konten ohne Zugriff weiterhin aus tools/list herausgefiltert. Die Authentifizierung per API-Schlüssel (Authorization: Bearer …) bleibt unverändert und ist weiterhin der empfohlene Weg für Headless-Integrationen wie Data Studio, Zapier und CI-Skripte (ab Tarif Scale). Die Discovery-Endpunkte (/.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource, /oauth/jwks.json) sowie die Endpunkte für Registrierung, Autorisierung und Token liegen unter /oauth/*.

  114. 2026-05 (Monatsende)

    Neuer Empfehlungstyp: Sentiment & Reputation (Scale+). recommendation_type in GET /recommendations (und im MCP-Tool launch_recommendations) akzeptiert jetzt neben ai_visibility, social_community und brand_building auch sentiment_reputation. Dieser Typ macht aus dem Sentiment zu Ihrer Marke in den letzten 30 Tagen (bei wenigen Daten erweitert auf 90 Tage), negativen Themen, Rückständen in Vergleichen, in denen ein Wettbewerber gelobt wird, den zitierten Quellen hinter negativen Antworten und schwachen Reputationsdimensionen konkrete Empfehlungen. Verfügbar ab Tarif Scale; Konten ohne Zugriff erhalten ERR_INVALID_PARAM oder einen Tariffehler.

  115. 2026-05 (Monatsende)

    Filter für die Kategorisierung von Prompts. Jeder Prompt wird jetzt automatisch nach prompt_type (Suchintention: informational, navigational, commercial, transactional) und nach brand_kind klassifiziert (brand = Ihre eigene Marke oder Ihre Produkte, brand_other = Wettbewerber oder andere Marken, non_brand = generisch, ohne Markennennung). Beide werden als optionale Filter von /metrics/timeseries, /metrics/summary, /metrics/sov, /metrics/prompt_summary, /metrics/top_sources und /dimensions/prompts akzeptiert (dieser Endpunkt gibt jetzt auch beide Felder pro Prompt zurück). Ungültige Werte geben ERR_INVALID_PARAM zurück. Dieselben Filter stehen als Argumente prompt_type / brand_kind in den MCP-Tools get_timeseries, get_summary, get_sov und list_prompts zur Verfügung.

  116. 2026-05 (Monatsmitte)

    Schreibende Endpunkte für Agenten (v1.5). API-Schlüssel haben jetzt einen scope (read oder read_write); bei bestehenden Schlüsseln gilt full als Synonym für read_write. Schreibende Endpunkte (POST/PATCH/PUT/DELETE) erfordern jetzt einen Schlüssel mit dem Zugriffsumfang read_write und geben andernfalls 403 ERR_INSUFFICIENT_SCOPE zurück. Für Schreibanfragen gilt zusätzlich zum globalen Budget von 300 Anfragen pro Minute und Schlüssel ein zweites Anfragelimit (60 Anfragen pro Minute und Schlüssel). Neue REST-Endpunkte: POST /competitors, POST /collections, POST /prompts/assign_tags (idempotentes Zuweisen von Tags an viele Prompts), POST /annotations (Growth+), POST /technical_geo_reports (alle technischen GEO-Berichte in einem Aufruf). Neue schreibende MCP-Tools: create_competitor, create_collection, assign_prompt_tags, create_annotation, launch_recommendations (mit vorheriger Bestätigung im Agenten der App), create_technical_geo_report (ebenso). Neue Fehlercodes: ERR_INSUFFICIENT_SCOPE (403), wenn ein Schlüssel mit reinem Lesezugriff einen schreibenden Endpunkt aufruft, und ERR_PLAN_REQUIRED (403) für Anmerkungen im Tarif Starter.

  117. 2026-05

    Projekte geben in den Payloads von API und MCP jetzt brand_name getrennt von name aus. brand_name ist der Markenname, der an LLMs gesendet und in für Kunden sichtbaren Diagrammen angezeigt wird; name bleibt die interne Bezeichnung des Projekts. name wird aus Gründen der Abwärtskompatibilität weiterhin zurückgegeben. mention_rate wird in den Parametern von /metrics/* und in den MCP-Tools für timeseries, summary und top_sources als Synonym für visibility akzeptiert. Die pro Konto aktivierten KI-Modelle gelten jetzt für jeden lesenden Endpunkt: API-Antworten, Kennzahlen, Dimensionen, Antworten, Sentiments und Zitierungen schließen Modelle, die für das Konto des API-Schlüssels nicht aktiviert sind, stillschweigend aus. Zum Zeitpunkt dieser Version waren Copilot, Claude, Grok, DeepSeek und Alexa for Shopping als kostenpflichtige Add-ons aktiv; die wiederkehrende Ausführung von Meta AI war noch nicht aktiv. Nach Datum gruppierte Kennzahlen verwenden für tägliche, wöchentliche und monatliche Zeitabschnitte jetzt einheitlich Europe/Madrid. Dadurch werden Zeilen rund um Mitternacht UTC nicht mehr dem falschen Tag zugeordnet.

  118. 2026-04 (Monatsende)

    API für Agent Analytics (Scale+, Beta): GET /metrics/agent_traffic und GET /dimensions/agent_bots liefern den Traffic von KI-Crawlern (GPTBot, PerplexityBot, ClaudeBot, OAI-SearchBot, Google-Extended und rund 25 weitere) aus Cloudflare oder aus hochgeladenen CSV-Dateien. Neues MCP-Tool: get_agent_traffic. MCP filtert tools/list jetzt nach Ihrem Tarif: Tools, die Sie nicht nutzen können, erscheinen nicht mehr im Katalog, und direkte Aufrufe tarifbeschränkter Tools geben ein eindeutiges ERR_PLAN_REQUIRED zurück, statt das Schema preiszugeben. Die Authentifizierungsgrenzen von MCP wurden für den Zugriff von Teammitgliedern auf das Konto des Kontoinhabers verschärft.

  119. 2026-04 (Monatsmitte)

    API für Citation Intelligence: GET /citation_intelligence/groups (Gruppen zitierter URLs mit Filtern nach Quelle und Typ), GET /citation_intelligence/urls/:url_sha256, /occurrences und /content für die Detailansicht einzelner URLs. API für Berichte der KI-Modellanalyse: GET /reports/ai_model_insights/summary, /position_distribution und /ai_overview_results. API für Empfehlungen: GET /recommendations und GET /recommendations/:id. Neue MCP-Tools: 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. Strengere Prüfung der Enum-Werte für view, order, direction, granularity, model, source_type, sentiment, content_gap, recommendation_type und status: Unbekannte Werte geben jetzt ERR_INVALID_PARAM zurück, statt stillschweigend ignoriert zu werden. Der Filter source_type akzeptiert neben Klassifizierungslisten auch owned, competitor und third_party. Ergebnisse in AI Overviews werden nach executed_at (nicht nach created_at) auf Tage verteilt, sodass wiederholte oder rückwirkend nachgetragene Zeilen am richtigen Tag erscheinen.

  120. 2026-04

    Neuer Endpunkt POST /prompts, um viele Prompts auf einmal zu erstellen (bis zu 100 pro Anfrage). Neue API für Content Intelligence: POST /intelligence_tasks erstellt Aufgaben, GET /intelligence_tasks listet sie mit Filtern auf und GET /intelligence_tasks/:id liefert alle Details und Ergebnisse. Neue MCP-Tools: create_prompts, create_intelligence_task, list_intelligence_tasks, get_intelligence_task. Neue Fehlercodes: ERR_LIMIT_REACHED (Prompt-Kontingent), ERR_QUOTA_EXCEEDED (Kontingent für Aufgaben in Content Intelligence), ERR_NOT_FOUND (Ressource nicht gefunden).

  121. 2026-03

    Neuer Endpunkt GET /metrics/prompt_summary für paginierte Kennzahlen pro Prompt (responses, mentions, citations, visibility, citation_rate) in einer einzigen Anfrage

  122. 2026-02

    Neue Kennzahl ai_visibility_score (positionsgewichtete Sichtbarkeit). Neue MCP-Tools: list_answers, get_answer, list_detailed_sentiments, get_project_details, get_competitor_details. Neue API-Endpunkte: /answers, /sentiments, /dimensions/projects/:id, /dimensions/competitors/:id. Neue Kennzahlen responses (Anzahl der Prompt-Ausführungen) und citation_rate (Zitierungen / Antworten x 100). API-Anfragelimits von 100 auf 300 Anfragen pro Minute erhöht. Neuer Filter prompt für alle Endpunkte zu Kennzahlen und Dimensionen.

  123. 2026-01

    MCP-Endpunkt (Model Context Protocol) für KI-Integrationen mit Claude, ChatGPT und anderen KI-Assistenten hinzugefügt

  124. 2025-12

    Sentiment-Kennzahlen in /metrics/timeseries ergänzt (sentiment_very_positive/positive/neutral/negative/very_negative) und ihre Bedeutung dokumentiert

  125. 2025-09

    Kennzahlen an die Übersicht angeglichen (Summen pro Zeitraum mit Fortschreibung des letzten Werts, Sichtbarkeit als Verhältnis der Summen im Zeitraum, Fortschreibung in avg_position), Aufschlüsselung des Share of Voice, Filter query in den Top-Quellen, Hinweise zum Caching, Abschnitt zum Postman-Download und zur Postman-Umgebung

  126. 2025-08

    Erste öffentliche API-Dokumentation (v1)