Doku
Die Dokumentation durchsuchen

Analytics REST API

The Privatus Analytics REST API: add .json to any app URL and send a token. Conventions and a reference of every operation, generated from the code.

Als Markdown anzeigen

Every page and action in Privatus Analytics is also an API endpoint (only form pages such as new and edit have no JSON form). There's no separate /api/v1: add .json to a URL and send an API token.

sh
curl https://privatusanalytics.com/sites/pa_7Q2K9XH3AB/stats/aggregate.json?period=7d \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
json
{
  "data": {
    "period": { "from": "2026-09-23T00:00:00Z", "to": "2026-09-30T00:00:00Z" },
    "metrics": {
      "visitors": 1840, "visits": 2310, "pageviews": 5122,
      "views_per_visit": 2.22, "bounce_rate": 41.3,
      "visit_duration": 48000, "revenue": 129900
    }
  }
}

The reference below lists every operation with its method, path, permission, input schema and response schema. It's generated from the running code, as is the OpenAPI 3.1 document, so neither can drift from what the server does. The same operations are MCP tools.

Conventions#

Base URL https://privatusanalytics.com
Format JSON. Add .json to the path (or send Accept: application/json)
Auth Authorization: Bearer pat_… (Authentication)
Ids Public ids with a prefix: ws_… workspaces, pa_… sites, goal_… goals, seg_… segments, wh_… webhooks
Reads GET with query parameters
Writes POST, PATCH, DELETE with a JSON body of flat fields
Success { "data": … }, plus "meta" for lists
Errors { "error": { "code", "message", "details" } } (Errors)
Lists page and per_page (max 100) (Pagination)
Times ISO 8601 in UTC. Date parameters (from, to) are days in the site's timezone
Money Minor units (cents) in the site currency, e.g. revenue: 129900 = 1,299.00
Durations Milliseconds

Common tasks#

Task Operation
List workspaces GET /workspaces.json
List sites GET /workspaces/{workspace_id}/sites.json
Headline metrics GET /sites/{site_id}/stats/aggregate.json
Chart data GET /sites/{site_id}/stats/timeseries.json
Top pages, sources, countries… GET /sites/{site_id}/breakdown/{dimension}.json
Everything on the Overview GET /sites/{site_id}/overview.json
Live visitors GET /sites/{site_id}/live.json
Add a note (e.g. a deploy) POST /sites/{site_id}/notes.json

See Stats endpoints and Examples.

In this section#

Authentication · Errors · Pagination · Rate limits · Filters · Stats endpoints · Examples · Webhooks · Changelog and deprecation

Alle Operationen

Authentifizierung

Senden Sie Authorization: Bearer pat_…. Erstellen Sie Tokens unter Workspace-Einstellungen, API-Tokens. Anleitung zur Authentifizierung.

JSON überall

Hängen Sie .json an jeden Pfad an. Antworten haben die Form { "data": … } und Fehler die Form { "error": { "code", "message" } }. Fehler.

MCP

Senden Sie JSON-RPC per POST an https://privatusanalytics.com/mcp mit demselben Token. Jede der folgenden Operationen ist ein Tool. MCP-Anleitung.

openapi.json herunterladen · 527 Operationen

API-Tokens

POST /workspaces/:workspace_id/api_tokens.json Ein API-Token erstellen (das Token wird nur einmal zurückgegeben) api_tokens_create

Erstellt einen API-Token für das aufrufende Mitglied in einem Workspace und gibt das Secret genau einmal im Feld token zurück. Kopieren Sie es sofort, es kann nicht erneut gelesen werden, und ein verlorener Token muss widerrufen und neu erstellt werden. Ein Token kann nur einschränken, was sein Mitglied darf. permissions enthält standardmäßig alle eigenen Berechtigungen des Mitglieds, wenn es fehlt (eine ausdrücklich leere Liste wird abgelehnt, und eine Berechtigung anzufordern, die Sie nicht haben, ist ein Fehler). site_ids nimmt öffentliche Website-IDs (pa_...) entgegen und beschränkt den Token auf diese Websites. Ist die Liste leer, funktioniert der Token für jede Website, auf die sein Mitglied zugreifen kann (oder übernimmt die Website-Liste des Tokens, der diesen Aufruf macht). expires_at ist optional, im ISO-8601-Format, muss in der Zukunft und höchstens 3 Jahre entfernt liegen. Lassen Sie es weg für einen Token, der nie abläuft. allowed_ips beschränkt den Token auf diese IPs oder CIDR-Bereiche. Ein Token, der diesen Aufruf macht, benötigt tokens.manage. Ein Workspace, der Zwei-Faktor-Authentifizierung verlangt, lehnt Tokens für Mitglieder ohne eigenen zweiten Faktor ab. Gibt dieselben Felder wie api_tokens_list zurück, plus token.

Berechtigung: member · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/api_tokens.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /workspaces/:workspace_id/api_tokens/:id.json Ein API-Token widerrufen api_tokens_delete

Widerruft einen API-Token sofort und dauerhaft. Anfragen mit diesem Token schlagen ab dann fehl, und ein widerrufener Token kann nicht wiederhergestellt werden, erstellen Sie stattdessen einen neuen. Der Token-Eintrag bleibt mit dem Status revoked in der Liste (verwenden Sie api_tokens_list mit include_revoked, um ihn zu sehen), und das erneute Widerrufen eines bereits widerrufenen Tokens ändert nichts. Die id (eine uuid) stammt aus api_tokens_list. Eigene Tokens können Sie widerrufen, für den Token eines anderen benötigen Sie tokens.manage und Zugriff auf jede Website, die der Token abdeckt. Ein Token, der diesen Aufruf macht, benötigt tokens.manage. Gibt den widerrufenen Token ohne sein Secret zurück.

Berechtigung: member · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/workspaces/:workspace_id/api_tokens/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/api_tokens.json API-Tokens auflisten api_tokens_list

Listet die API-Tokens eines Workspace auf, neueste zuerst und paginiert. Ohne die Berechtigung tokens.manage sehen Sie nur Ihre eigenen Tokens, mit ihr die Tokens aller Mitglieder. Widerrufene und abgelaufene Tokens sind ausgeblendet, es sei denn, include_revoked ist true. Jeder Eintrag hat id (uuid, wird von api_tokens_delete verwendet), name, token_prefix (die ersten Zeichen, um einen Token wiederzuerkennen), owner (die E-Mail-Adresse des Mitglieds), permissions (Namen wie analytics.read), site_ids (öffentliche Website-IDs pa_..., ein leeres Array bedeutet jede Website, auf die der Besitzer zugreifen kann), allowed_ips, oauth_client (der Name der verbundenen App, wenn der Token über OAuth ausgestellt wurde, sonst null), status (active, expired oder revoked), expires_at, last_used_at, revoked_at und created_at. Das Secret selbst wird hier nie zurückgegeben, token ist in einer Liste immer null. Es wird nur einmal von api_tokens_create angezeigt.

Berechtigung: member

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/api_tokens.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Abonnements

DELETE /sites/:site_id/subscriptions/connections/:provider.json Einen Zahlungsanbieter trennen und seinen Schlüssel und die Abo-Daten löschen subscriptions_disconnect

Trennt einen Zahlungsanbieter (stripe, paddle, lemon_squeezy, chargebee oder polar) von einer Website und löscht den gespeicherten API-Schlüssel sowie jede daraus gelesene Abonnementzeile dauerhaft. Das kann nicht rückgängig gemacht werden, und MRR-, Churn- und Kohortenzahlen verlieren die Abonnements dieses Anbieters sofort. Schlägt fehl, wenn dieser Anbieter nicht verbunden ist. Gibt die entfernte Verbindung zurück. Erfordert sites.manage.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/subscriptions/connections/:provider.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/subscriptions/sync.json Abonnements jetzt von einem Zahlungsanbieter lesen subscriptions_sync

Stellt eine sofortige Synchronisierung der Abonnements von einem verbundenen Anbieter (stripe, paddle, lemon_squeezy, chargebee oder polar) in die Warteschlange, statt auf den regulären Zeitplan zu warten. Es antwortet sofort (HTTP 202) mit der Verbindung, und die Synchronisierung läuft im Hintergrund. Fragen Sie subscriptions_report ab oder prüfen Sie last_synced_at und last_error an der Verbindung. Berichte werden bis zu 15 Minuten zwischengespeichert. Schlägt fehl, wenn der Anbieter nicht verbunden ist. Erfordert sites.manage.

Berechtigung: sites.manage

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/subscriptions/sync.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/subscriptions/cohorts.json Kohortenraster: Abwanderung oder Bindung nach Monat der ersten Zahlung subscriptions_cohorts

Das Churn-Kohortenraster für die Abonnements der Website, eine Zeile pro Monat der ersten Zahlung. months ist 6, 12 (Standard) oder 24 Kohorten. plan behält nur die Abonnements eines Tarifs (siehe plans in subscriptions_report). metric ist subscriptions (Anzahl) oder mrr (Geld). view ist churn (der Anteil, der bis zu diesem Punkt beendet war, Standard) oder retention (der Anteil, der noch läuft). Gibt metric, view, months, plan (der Filter oder null), currency und cohorts zurück, jeweils mit month (YYYY-MM), size (Abonnements oder MRR in der kleinsten Einheit der Website-Währung) und cells, wobei jede Zelle offset (Monate seit dem Kohortenmonat, 0 ist der erste), retained (dieselbe Einheit wie size) und percent (0 bis 100, null bei einer leeren Kohorte) hat. Testphasen, die nie bezahlt wurden, gehören zu keiner Kohorte. Für MRR, ARR und Churn auf einen Blick verwenden Sie subscriptions_report. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/subscriptions/cohorts.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/subscriptions.json Abo-Kennzahlen: MRR, ARR, MRR-Bewegungen, Abwanderung, Umsatzbindung, Testphasen, Tarife und eine Prognose subscriptions_report

Abo-Kennzahlen der Website, gelesen aus dem verbundenen Stripe-, Paddle-, Lemon-Squeezy-, Chargebee- oder Polar-Konto. months ist 6, 12 (Standard) oder 24. plan behält nur die Abos eines Tarifs, benannt so, wie plans ihn auflistet. Geldfelder sind Ganzzahlen in der kleinsten Einheit der Website-Währung (die currency der Antwort), wobei andere Währungen zum heutigen Kurs umgerechnet werden. Das Ergebnis hat currency, connected (false, wenn kein Provider verbunden ist), plan (der Tarifilter oder null), connections (eine pro verbundenem Provider mit provider, account_name, sandbox, status, last_error, last_synced_at und created_at, nie ein Schlüssel), skipped_currencies (Währungen ohne Kurs, deren Geld nicht gezählt wird), totals, series, forecast und plans. totals hat mrr_minor, arr_minor, previous_mrr_minor (MRR vor 30 Tagen), active_subscriptions, arpa_minor (null ohne Abonnements), trialing, trial_conversion_rate (Prozent der Testphasen, die in den letzten 90 Tagen endeten und bezahlt wurden, null, wenn keine endete) und für die letzten 30 Tage new_subscriptions, new_mrr_minor, expansion_mrr_minor, contraction_mrr_minor, churned_subscriptions, churned_mrr_minor, net_new_mrr_minor, quick_ratio (neuer plus Expansions-MRR je Einheit verlorenem plus Kontraktions-MRR, null, wenn nichts verloren ging), subscription_churn_rate und mrr_churn_rate (Prozent, null ohne Basis). Außerdem gibt es net_revenue_retention und gross_revenue_retention (Prozent dessen, was die Abos, die vor 12 Monaten zahlten, damals zahlten und jetzt zahlen, mit und ohne Upgrades, null ohne Basis) und forecast_mrr_minor (MRR in 12 Monaten, null ohne Prognose). series hat eine Zeile pro Monat (month als YYYY-MM) mit mrr_minor, active_subscriptions, denselben Bewegungsfeldern und churn_rate. forecast hat eine Zeile pro Monat für die nächsten 12 Monate (month, mrr_minor), hochgerechnet aus den letzten drei vollen Monaten, und ist leer, wenn es keine drei vollen Monate gibt, die mit MRR begannen. plans listet bis zu 50 Tarife nach MRR mit plan (null für Abos, für die der Anbieter keinen Tarifnamen lieferte), mrr_minor, active_subscriptions, churned_subscriptions und subscription_churn_rate (letzte 30 Tage), immer für jeden Tarif. Ein Abonnement zählt ab seiner ersten Zahlung. Upgrades und Downgrades sind ab der ersten Synchronisierung bekannt, und davor verwenden vergangene Monate den Preis, den ein Abonnement hatte, als es zum ersten Mal gelesen wurde. Für die Bindung nach Monat der ersten Zahlung verwenden Sie subscriptions_cohorts. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/subscriptions.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Abrechnung

POST /workspaces/:workspace_id/billing/badge.json Den Badge-Bonus aktivieren oder deaktivieren (kostenloser Tarif) billing_badge

Meldet einen Free-Workspace für den Bonus durch das Privatus-Analytics-Badge an oder ab, der das monatliche Ereigniskontingent erhöht. Setzen Sie enabled auf true, um teilzunehmen. Eine Hintergrundprüfung sucht dann auf den Websites des Workspace nach dem Badge und verifiziert es, was einen Moment dauern kann. Lesen Sie danach billing_get und sehen Sie sich badge.verified_at an. Setzen Sie enabled auf false, um abzumelden, wodurch die Prüf- und Verifizierungsdaten gelöscht werden und der Bonus entfällt. Die Anmeldung für einen Pro- oder Business-Workspace wird abgelehnt, weil bezahlte Tarife keinen Bonus haben. Gibt das Abrechnungsobjekt des Workspace wie billing_get zurück. Erfordert billing.manage.

Berechtigung: billing.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/billing/badge.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/billing/cancel.json Zum Ende des Abrechnungszeitraums kündigen billing_cancel

Kündigt das bezahlte Abonnement zum Ende des aktuellen Zahlungszeitraums. Es wird nichts erstattet, und der Tarif bleibt bis current_period_ends_at aktiv, danach wechselt der Workspace zum Tarif Free. Mit billing_resume machen Sie die Kündigung vorher rückgängig. Schlägt fehl, wenn der Workspace kein Abonnement hat oder bereits eine Kündigung vorgemerkt ist. Der optionale reason (einer der Enum-Werte) und comment sind eine Austrittsumfrage. Ein comment wird, falls angegeben, als Feedback-Nachricht des Mitglieds per E-Mail an das Privatus-Analytics-Team gesendet und nicht gespeichert. Gibt das Abrechnungsobjekt mit cancel_at_period_end true zurück. Erfordert billing.manage.

Berechtigung: billing.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/billing/cancel.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/billing/change_plan.json Tarif, Stufe oder Intervall ändern (anteilig berechnet) billing_change_plan

Stellt das bestehende Abonnement auf einen anderen Tarif, eine andere Ereignisstufe oder ein anderes Abrechnungsintervall um. Dabei wird Geld abgebucht. Die Änderung wird sofort wirksam und von Paddle anteilig berechnet, daher wird sofort eine Belastung oder Gutschrift auf das hinterlegte Zahlungsmittel angewendet. Führen Sie zuerst billing_preview mit denselben Eingaben aus, um die genauen Beträge zu sehen. Schlägt fehl, wenn der Workspace kein Abonnement hat (dafür verwenden Sie billing_checkout), wenn das Ziel dem aktuellen Tarif, der Stufe und dem Intervall entspricht oder wenn für die Kombination aus Tarif und Ereignissen kein Preis existiert. Der Wert events muss eine der Stufen aus plans_list sein. Gibt das aktualisierte Abrechnungsobjekt zurück. Erfordert billing.manage.

Berechtigung: billing.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/billing/change_plan.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/billing/checkout.json Einen Paddle-Checkout für einen kostenpflichtigen Tarif starten billing_checkout

Startet einen Paddle-Checkout für einen Workspace, der noch kein Abonnement hat, und gibt eine gehostete Checkout-URL zurück. Es wird nichts abgebucht, bis eine Person den Checkout in einem Browser abschließt, geben Sie die url also an die Person weiter. Verwenden Sie stattdessen billing_change_plan, wenn der Workspace bereits ein Abonnement hat. Eingaben sind plan (pro oder business), events (eine Stufe mit Ereignissen pro Monat aus plans_list) und interval (month oder year, Standard month). Die Preise enthalten Mehrwert- oder Umsatzsteuer. Ein genehmigtes Rabattprogramm wird automatisch angewendet und in discount_id gemeldet. Gibt transaction_id, url (nullable), price_id, plan, events, interval, amount (ganze USD für das Intervall), client_token und environment (sandbox oder production, vom Paddle-Overlay verwendet), custom_data und discount_id (nullable) zurück. Schlägt fehl, wenn der Workspace bereits ein Abonnement hat. Erfordert billing.manage.

Berechtigung: billing.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/billing/checkout.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/billing/discount.json Einen Rabatt für gemeinnützige Organisationen, Bildung oder Open Source beantragen billing_discount

Beantragt ein Rabattprogramm für den Workspace. Dadurch wird ein Antrag zur Prüfung durch das Team eingereicht und eine E-Mail an das Privatus-Analytics-Team gesendet, ein Rabatt wird damit nicht von selbst gewährt. Die Programme sind nonprofit, education, open_source (50 Prozent Rabatt), open_source_free (kostenloses Pro bis 1 Mio. Ereignisse im Monat) und agency (20 Prozent Rabatt auf jeden Workspace, den Sie besitzen). Pro Workspace ist nur ein offener Antrag (pending, approved oder active) erlaubt, und nach einer Ablehnung oder einem Widerruf können Sie sich erneut bewerben. license wird nur für die beiden Open-Source-Programme gespeichert. Gibt den Antrag mit program, status, percent, comp_events (nullable), organization_name, website, proof_url, license, note, rejection_reason, created_at, reviewed_at, applied_at und revoked_at (nullable Zeitstempel) zurück. Den Fortschritt sehen Sie später im Feld discount von billing_get. Erfordert billing.manage.

Berechtigung: billing.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/billing/discount.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/billing/payment_method.json Einen Link zum Aktualisieren der Zahlungsmethode abrufen billing_payment_method

Gibt einen Paddle-Link zurück, über den eine Person das Zahlungsmittel des Abonnements aktualisieren kann. Der Aufruf selbst ändert nichts. Geben Sie die url an die Person weiter, damit sie sie in einem Browser öffnet. Das Ergebnis hat kind (payment_method) und url. Schlägt fehl, wenn der Workspace kein aktives Abonnement hat. Für Rechnungen, Adressen und alle anderen Abrechnungsdetails verwenden Sie billing_portal. Erfordert billing.manage.

Berechtigung: billing.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/billing/payment_method.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/billing/portal.json Einen Link zum Paddle-Kundenportal abrufen billing_portal

Gibt einen Link zum Paddle-Kundenportal zurück, in dem eine Person Rechnungen, Zahlungsmittel und Adressen sehen kann. Der Aufruf selbst ändert nichts. Geben Sie die url an die Person weiter, damit sie sie in einem Browser öffnet. Das Ergebnis hat kind (portal) und url. Schlägt fehl, wenn der Workspace noch keinen Paddle-Kunden hat (er hat nie einen Checkout durchlaufen) oder wenn der Kunde mit anderen Workspaces geteilt wird, auf die der Aufrufer nicht zugreifen kann, weil das Portal alle Daten des Kunden zeigt. Für nur die Karte verwenden Sie billing_payment_method. Erfordert billing.manage.

Berechtigung: billing.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/billing/portal.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/billing/preview.json Eine Tarifänderung mit anteiliger Berechnung in der Vorschau anzeigen billing_preview

Zeigt, was der Wechsel des Abonnements zu einem anderen Tarif, einer anderen Stufe oder einem anderen Intervall jetzt kosten würde, ohne etwas zu ändern. Führen Sie es immer vor billing_change_plan mit denselben Eingaben plan, events und interval aus. Schlägt fehl, wenn der Workspace kein Abonnement hat oder das Ziel dem aktuellen Preis entspricht. Gibt plan, events, interval, price_id, amount (ganze USD Listenpreis für das Intervall), currency, charge_minor (was jetzt abgebucht würde), credit_minor (Gutschrift für ungenutzte Zeit) und result_minor (Nettobetrag), alle in der kleinsten Währungseinheit, result_action (charge oder credit, nullable), next_billed_at (nullable) und warnings (Strings, zum Beispiel wenn die Nutzung des letzten Monats die neue Stufe übersteigt oder Tariflimits wie Websites oder Mitglieder, die der neue Tarif verletzen würde) zurück. Erfordert billing.manage.

Berechtigung: billing.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/billing/preview.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /workspaces/:workspace_id/billing/resume.json Eine geplante Kündigung zurücknehmen oder eine Pause beenden billing_resume

Macht eine vorgemerkte Kündigung rückgängig oder setzt ein pausiertes Abonnement fort, sodass der Tarif weiter verlängert wird. Verwenden Sie es nach billing_cancel und vor current_period_ends_at. Ein pausiertes Abonnement wird sofort fortgesetzt. Schlägt fehl, wenn keine Kündigung vorgemerkt und das Abonnement nicht pausiert ist. Gibt das aktualisierte Abrechnungsobjekt zurück. Erfordert billing.manage.

Berechtigung: billing.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/billing/resume.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/billing.json Tarif, Abonnement und Nutzung abrufen billing_get

Gibt den Tarif und den Abrechnungsstatus des Workspace zurück. Verwenden Sie es, bevor Sie etwas an der Abrechnung ändern, und um zu erfahren, ob das Abonnement aktiv ist oder gekündigt wird. Die Felder umfassen workspace_id, plan (free, pro, business oder enterprise), plan_events (die verkaufte Stufe mit Ereignissen pro Monat), allowance (tatsächlich erlaubte Ereignisse pro Monat, einschließlich eines Badge-Bonus), billing_interval (month oder year, nullable), price (ganze USD für das Intervall, nullable), subscription_status, current_period_ends_at, cancel_at_period_end (true, wenn eine Kündigung vorgemerkt ist), canceled_at, auto_upgrade, discount (der neueste Rabattantrag, nullable), discount_percent, billing_emails (Array), tax_id, badge (opted_in, verified_at, checked_at und die Höhe des Bonus) und usage (dasselbe Objekt, das billing_usage zurückgibt). Erfordert billing.manage. Rechnungen finden Sie in billing_invoices_list, und eine monatsweise Nutzungsansicht bietet billing_usage.

Berechtigung: billing.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/billing.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /workspaces/:workspace_id/billing.json Abrechnungs-E-Mails, Steuer-ID und automatisches Upgrade aktualisieren billing_update

Aktualisiert die Abrechnungseinstellungen des Workspace. Nur die Eingaben, die Sie senden, ändern sich. billing_emails ist ein Array mit bis zu 5 zusätzlichen Adressen für Rechnungen und Abrechnungshinweise und ersetzt die gesamte Liste. tax_id wird im Workspace gespeichert und nicht zu Rechnungen hinzugefügt, daher muss sie auch im Checkout eingegeben werden. auto_upgrade ist standardmäßig false. Bei true wechselt der Workspace beim Erreichen des monatlichen Ereignislimits zur nächsten Stufe und berechnet die Differenz, statt die Erfassung zu pausieren. Wenn Sie es einschalten, während die Erfassung am Limit bereits pausiert ist, wird sofort aufgestuft und abgebucht, und es wird eine Bestätigungs-E-Mail gesendet. Lehnt Paddle das Upgrade ab, wird nichts gespeichert. Gibt das Abrechnungsobjekt wie billing_get zurück. Erfordert billing.manage.

Berechtigung: billing.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X PATCH https://privatusanalytics.com/workspaces/:workspace_id/billing.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/billing/usage.json Nutzung, Prognose und Aufteilung pro Website für diesen Monat abrufen billing_usage

Gibt die Ereignisnutzung des Workspace für einen Monat zurück. Verwenden Sie es, um zu prüfen, wie nah der Workspace an seinem harten Monatslimit ist. Eingabe ist month (ein beliebiger Tag im Monat, standardmäßig der aktuelle Monat). Es zählen nur Pageviews und eigene Ereignisse. Die Felder sind month, events, bots (aggregierte Bot-Anzahl, nicht berechnet), allowance, percent (0 bis 100 und mehr, eine Nachkommastelle), forecast und forecast_percent (lineare Hochrechnung bis Monatsende, null für vergangene Monate), days_left, status (ok, warning bei 80 Prozent, over bei 100 Prozent, paused oder locked), sites (je Website site_id, domain, name, events und Anteil in Prozent, größte zuerst), history (frühere Monate als month und events), access_locked_at, collection_paused (true, wenn neue Ereignisse verworfen werden), pause_reason (limit oder staff, nullable), collection_paused_at und resumes_at (der 1. des nächsten Monats, wenn durch das Limit pausiert). Erfordert billing.manage.

Berechtigung: billing.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/billing/usage.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /workspaces/:workspace_id/billing/invoices.json Rechnungen auflisten billing_invoices_list

Listet die Abrechnungstransaktionen des Workspace auf, neueste zuerst. Jeder Eintrag hat id (verwenden Sie sie mit billing_invoices_get), invoice_number (nullable), status, amount_minor (Ganzzahl in der kleinsten Währungseinheit, 900 bedeutet also 9.00), currency (ISO-Code wie USD) und billed_at (nullable, ISO 8601). Paginiert mit page und per_page (maximal 100). Es listet nur Transaktionen auf. Das PDF erhalten Sie mit billing_invoices_get, und die Karte aktualisieren Sie mit billing_payment_method. Erfordert billing.manage.

Berechtigung: billing.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/billing/invoices.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /workspaces/:workspace_id/billing/invoices/:id.json Den PDF-Link einer Rechnung abrufen billing_invoices_get

Gibt einen Link zur PDF-Rechnung einer abgerechneten Transaktion zurück. Die Rechnungs-ID stammt aus billing_invoices_list (das Feld id, eine Paddle-Transaktions-ID). Das Ergebnis hat kind (invoice) und url, einen Link zum PDF von Paddle, rufen Sie ihn also bald nach dem Aufruf ab oder teilen Sie ihn. Schlägt fehl, wenn die ID nicht zu diesem Workspace gehört oder Paddle dafür keine Rechnung hat. Erfordert billing.manage.

Berechtigung: billing.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/billing/invoices/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Affiliate-Programm

GET /account/affiliate/commissions.json Ihre Affiliate-Provisionen auflisten affiliate_commissions_list

Provisionen, Rückforderungen wegen Erstattung oder Rückbuchung und Stornierungen, neueste zuerst. Beträge sind in Cent angegeben.

Berechtigung: member

Beispiel
curl https://privatusanalytics.com/account/affiliate/commissions.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /account/affiliate/signup-box.json Den Code Ihrer Affiliate-Anmeldebox und die Ergebnisse abrufen affiliate_signup_box_get

Der Einbettungscode für Ihre Anmeldebox (ein Skript und ein einfacher Iframe) für das gewählte Design, die Attribute, die das Formular vorausfüllen, die Ereignisse, die das Skript auf Ihrer Seite auslöst, und die Zahlen der Box: Anmeldungen, die noch bestätigt werden müssen, bestätigte Anmeldungen und zahlende Kunden. available ist false, bis Ihr Affiliate-Antrag genehmigt ist.

Berechtigung: member

Beispiel
curl https://privatusanalytics.com/account/affiliate/signup-box.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /account/affiliate.json Ihren Affiliate-Status, Empfehlungslink und Ihre Statistiken abrufen affiliate_get

Der Status Ihrer Affiliate-Bewerbung, Ihr Empfehlungslink, von Ihnen geworbene Registrierungen und zahlende Kunden sowie Salden pro Währung (zurückgehalten, auszahlbar, ausgezahlt). status ist none, wenn Sie sich nicht beworben haben.

Berechtigung: member

Beispiel
curl https://privatusanalytics.com/account/affiliate.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Alarme

POST /alerts/:id/acknowledge.json Den letzten Vorfall bestätigen alerts_acknowledge

Markiert den neuesten nicht bestätigten Vorfall eines Alarms als vom aufrufenden Benutzer gesehen. Der Vorfall wird dadurch nicht behoben und der Alarm nicht stummgeschaltet, der Alarm klärt sich von selbst, sobald die Bedingung entfällt. Hat der Alarm keinen unbestätigten Vorfall, schlägt der Aufruf mit einem Validierungsfehler fehl. Gibt den Alarm zurück. Mit alerts_history sehen Sie Vorfälle samt acknowledged_at und acknowledged_by. Erfordert nur Lesezugriff auf Analytics, daher können auch Betrachter Vorfälle bestätigen.

Berechtigung: analytics.read

Beispiel
curl -X POST https://privatusanalytics.com/alerts/:id/acknowledge.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/alerts.json Einen Alarm erstellen alerts_create

Erstellt eine Alarmregel, die eine Website überwacht (oder den ganzen Workspace bei kind usage) und die gewählten Kanäle benachrichtigt, wenn sie auslöst. Der Pfad nimmt workspace_id entgegen. name und kind sind Pflicht. kind bestimmt, was sonst noch nötig ist. threshold braucht site_id, metric (visitors, visits, pageviews, bounce_rate oder conversion), operator (gt, gte, lt oder lte) und threshold, und conversion braucht zusätzlich goal_id. anomaly braucht site_id und metric (visitors, visits oder pageviews), vergleicht das letzte Zeitfenster mit demselben Zeitfenster in jeder der vorherigen 4 Wochen und nutzt sensitivity (low, medium oder high). operator lt alarmiert nur bei Einbrüchen, gt nur bei Spitzen und leer bei beidem. goal braucht site_id, goal_id und threshold (Abschlüsse im Zeitfenster). no_data braucht site_id und threshold in Stunden ohne Ereignisse (Standard 24). usage braucht keine Website und threshold als Prozent des monatlichen Ereigniskontingents (Standard 80). uptime braucht site_id und optional uptime_check_id (Standard: alle Prüfungen der Website). ssl braucht site_id und threshold in Tagen vor Ablauf eines Zertifikats oder einer Domain (Standard 14). vitals braucht site_id, metric (lcp, inp, cls, fcp oder ttfb) und threshold in Millisekunden (ein Score bei cls). subscriptions braucht site_id, metric (mrr_drop: Der MRR ist in den letzten 30 Tagen um mehr als threshold Prozent gesunken, churn_rate oder mrr_churn_rate: Der Churn der letzten 30 Tage liegt über threshold Prozent) und threshold (Standard 10) und wird übersprungen, solange für die Website kein Zahlungsanbieter verbunden ist oder es nichts zu messen gibt. window_minutes (Standard 60, 5 bis 10080) bestimmt, wie weit jede Auswertung zurückblickt. channel_ids stammen aus notification_channels_list, und sensitivity ist standardmäßig medium. Alarme werden automatisch alle 5 Minuten ausgewertet. Die Schwellenwerte für bounce_rate und conversion sind Prozentwerte von 0 bis 100. testimonials braucht site_id und metric, das angibt, was überwacht wird: new (ein neues Testimonial trifft ein), low_rating (eine Bewertung von 3 oder weniger trifft ein), approved (ein Testimonial wird freigegeben), allowance (das Monatskontingent für neue Testimonials ist zu 80 % verbraucht, aufgebraucht oder hält ein Testimonial als wartend zurück), sync_found (eine Synchronisierung findet neue Bewertungen), import_failed (ein Import schlägt fehl oder eine Quelle schlägt dreimal hintereinander bei der Synchronisierung fehl), removal_requested (jemand bittet darum, sein Testimonial zu entfernen) oder request_bounced (eine Anfrage-E-Mail wird zurückgewiesen). Ein testimonials-Alarm wird nicht alle 5 Minuten ausgewertet: Er löst sofort aus, jedes Mal wenn das Ereignis eintritt, legt einen bereits gelösten Vorfall an, und sein Status bleibt ok. Mit metric allowance überwacht er den ganzen Workspace und hat keine Website. Gibt den erstellten Alarm mit dem Status ok zurück.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/alerts.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /alerts/:id.json Einen Alarm löschen alerts_delete

Löscht eine Alarmregel samt ihrem gesamten Vorfallsverlauf dauerhaft. Das kann nicht rückgängig gemacht werden, und Benachrichtigungen enden sofort. Um einen Alarm zu pausieren, ohne den Verlauf zu verlieren, verwenden Sie alerts_update mit enabled false oder alerts_mute. Die id (alr_...) stammt aus alerts_list. Gibt den gelöschten Alarm so zurück, wie er war. Erfordert Schreibberechtigung für Inhalte.

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/alerts/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /alerts/:id/history.json Vorfallverlauf eines Alarms alerts_history

Listet die Vorfälle eines Alarms auf, neueste zuerst und paginiert. Jeder Vorfall hat triggered_at, resolved_at (null, solange er offen ist), value (die gemessene Zahl beim Auslösen, in derselben Einheit wie der Schwellenwert des Alarms), message (eine lesbare Beschreibung), acknowledged_at und acknowledged_by (Anzeigename des Mitglieds oder null). Setzen Sie open auf true, um nur ungelöste Vorfälle zu sehen. Mit alerts_acknowledge markieren Sie den neuesten als gesehen, und alerts_get liefert den aktuellen Zustand der Regel.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/alerts/:id/history.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /workspaces/:workspace_id/alerts.json Alarme auflisten alerts_list

Listet die Alarmregeln eines Workspace auf (der Pfad nimmt workspace_id entgegen), nach Name sortiert und paginiert. Gibt ein data-Array mit Alarmen und die Paginierung in meta zurück. Jeder Alarm hat id (alr_...), site_id (pa_..., null bei Nutzungsalarmen, die den ganzen Workspace überwachen), name, kind, metric, operator, threshold, window_minutes, sensitivity, goal_id, channel_ids (nch_...-IDs), state (ok oder triggered), enabled, muted_until, last_triggered_at, last_evaluated_at und created_at. Schränken Sie die Liste mit site_id, state (ok oder triggered) oder kind ein. Mit site_alerts_list listen Sie die Alarme einer Website über einen Website-Pfad auf, alerts_get liefert einen einzelnen Alarm und alerts_history seine Vorfälle. Ein Aufrufer, der auf einige Websites beschränkt ist, sieht nie Nutzungsalarme.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/alerts.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /alerts/:id/mute.json Die Benachrichtigungen eines Alarms stummschalten (oder wieder aktivieren) alerts_mute

Schaltet die Benachrichtigungen eines Alarms für eine Anzahl von Minuten stumm, während er weiter auswertet und Vorfälle in seinem Verlauf aufzeichnet. minutes ist standardmäßig 60, das Maximum ist 43200 (30 Tage), und 0 hebt die Stummschaltung sofort auf. Die Antwort ist der Alarm mit muted_until am Ende der Stummschaltung (null, wenn nicht stummgeschaltet). Mit alerts_update und enabled false hört die Auswertung ganz auf, und mit alerts_acknowledge markieren Sie einen Vorfall als gesehen, ohne stummzuschalten.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/alerts/:id/mute.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /alerts/:id.json Einen Alarm abrufen alerts_get

Gibt eine Alarmregel anhand ihrer id zurück (alr_..., aus alerts_list oder site_alerts_list). Die Antwort ist das Alarmobjekt mit id, site_id (null bei Nutzungsalarmen), name, kind, metric, operator, threshold, window_minutes, sensitivity, goal_id, channel_ids, state (ok oder triggered), enabled, muted_until, last_triggered_at, last_evaluated_at und created_at. Vorfälle sind nicht enthalten, dafür verwenden Sie alerts_history. threshold ist eine Zahl, deren Einheit von kind abhängt (siehe alerts_create). Erfordert Lesezugriff auf Analytics.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/alerts/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /alerts/:id.json Einen Alarm aktualisieren alerts_update

Ändert eine bestehende Alarmregel (id aus alerts_list). Nur die Eingaben, die Sie senden, ändern sich, alles andere behält seinen Wert. Für das Ergebnis gelten dieselben Regeln je kind wie bei alerts_create, daher kann die Änderung von kind oder metric die passende site_id, goal_id, operator oder threshold erfordern. Senden Sie channel_ids, um die gesamte Liste der Benachrichtigungskanäle zu ersetzen, und enabled false, um die Auswertung zu stoppen, ohne zu löschen. Um Benachrichtigungen eine Weile stummzuschalten, aber weiter Vorfälle aufzuzeichnen, verwenden Sie stattdessen alerts_mute. Gibt den aktualisierten Alarm zurück.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/alerts/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/alerts.json Alarme einer Website auflisten site_alerts_list

Listet die Alarmregeln einer Website auf (der Pfad nimmt site_id entgegen), nach Name sortiert und paginiert. Es gibt dieselben Alarmobjekte zurück und akzeptiert dieselben Filter state und kind wie alerts_list, aber nur für diese Website, daher sind Nutzungsalarme (die keine Website haben) nicht enthalten. Wählen Sie dies, wenn Sie bereits eine Website-ID haben, und alerts_list, wenn Sie jeden Alarm im Workspace möchten. Jeder Alarm hat id (alr_...), site_id, name, kind, metric, operator, threshold, window_minutes, sensitivity, goal_id, channel_ids, state (ok oder triggered), enabled, muted_until, last_triggered_at, last_evaluated_at und created_at.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/alerts.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Analysen

GET /sites/:site_id/clicks.json Klickkarte: die am häufigsten angeklickten Elemente der Website oder einer einzelnen Seite, mit dem Anteil der Besuche, die jedes Element angeklickt haben clicks_list

Klicks pro Element aus dem Klick-Modul des Trackers. Ein Element ist ein kurzer CSS-Selektor (Tag, ID und bis zu zwei Klassen, höchstens vier Ebenen) oder [data-privatus-click="name"], wenn die Website es benannt hat. Übergeben Sie path (beginnt mit einem Schrägstrich, genau so, wie er gespeichert ist) für eine Seite: Dann sind elements {selector, clicks, visits, visit_share}, page_visits ist die Zahl der Besuche, die die Seite gesehen haben, und visit_share ist der Prozentwert (0 bis 100) davon, der das Element angeklickt hat. Ohne path sind elements {path, selector, clicks, visits} für die ganze Website. visits zählt Besuche, die mindestens einmal geklickt haben. Gibt period, path, page_visits und elements zurück, das am häufigsten angeklickte zuerst. Es werden nie Elementtexte, Koordinaten oder Mausbewegungen erfasst. Verwenden Sie pages_detail für den Rest einer Seite.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/clicks.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/overview.json Website-Übersicht: Kennzahlen, Diagrammreihen, Top-Panels, Live-Besucher und Notizen stats_overview

Ein Aufruf, der alles zurückgibt, was die Übersichtsseite einer Website zeigt: Nutzen Sie ihn, um eine allgemeine Frage wie "Wie läuft es auf einer Website?" zu beantworten, statt mehrere Tools aufzurufen. Gibt period, metrics (visitors, visits, pageviews, views_per_visit, bounce_rate, visit_duration, revenue), interval, series (ein Eintrag pro Zeitintervall), panels, notes und live_visitors zurück. Mit compare kommen comparison_period, comparison, change und comparison_series hinzu, wie bei stats_aggregate und stats_timeseries. Die Einheiten entsprechen denen dieser Tools: bounce_rate ist ein Prozentwert von 0 bis 100, visit_duration ist die mediane aktive Zeit in Millisekunden, revenue ist eine Ganzzahl in der kleinsten Währungseinheit (Cent). panels ist ein Objekt, das nach Dimensionsnamen geordnet ist und je die Top-10-Zeilen mit ihrem Anteil enthält, in derselben Zeilenform wie stats_breakdown für diese Dimension. Standardmäßig liefert es channel, referrer, page, entry_page, country, device, browser, os, utm_campaign, event und goal. Senden Sie panels, um andere Dimensionen zu wählen (jeder Dimensionsname außer prop-Schlüsseln). notes listet Anmerkungen im Zeitraum als {id, date, end_date, title, url, color}. live_visitors zählt die Besucher der letzten 5 Minuten. Für mehr als 10 Zeilen einer Dimension verwenden Sie stats_breakdown und für eine einzelne Zahl stats_aggregate. Nutzt die gemeinsamen Eingaben period, compare, filters und segment.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/overview.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/experiments/external.json Experimentbericht: Conversion-Rate pro Variante, Uplift gegenüber der Kontrolle und Signifikanz (Zwei-Proportionen-z-Test) experiments_report

Berichtet über einen A/B-Test anhand von Ereignisdaten. Besuche werden der Variante zugeordnet, die in einer Ereigniseigenschaft gefunden wird (der erste im Besuch gesehene Wert, zum Beispiel die Eigenschaft variant mit den Werten control und b), und eine Conversion ist ein Besuch, der ein Ziel abgeschlossen hat. Erforderliche Eingaben sind property (Schlüssel in Kleinbuchstaben, bis zu 64 Zeichen) und goal_id (ein aktives Ziel, aus goals_list). Gibt period, property, goal {id, name}, control, confidence (0.95) und variants zurück. Jede Variante hat visits, conversions, conversion_rate (Prozent, 0 bis 100), control (true für die Basisvariante), uplift (prozentuale Änderung der Conversion-Rate gegenüber der Kontrollvariante, null für die Kontrollvariante oder wenn deren Rate 0 ist), z, p_value und significant (true, wenn p_value unter 0.05 liegt, anhand eines Zwei-Proportionen-z-Tests). Die Kontrollvariante ist die Variante, die Sie in control übergeben, sonst die mit dem Namen control, sonst die Variante mit den meisten Besuchen. Höchstens 20 Varianten, die meistbesuchte zuerst. Stellen Sie zuerst sicher, dass die Website die Variante als Ereigniseigenschaft sendet. Nutzt die gemeinsamen Eingaben period und filters. Für eine einfache Ziel-Conversion-Rate verwenden Sie goals_get. Erfordert den Tarif Business oder Enterprise (sonst 402 plan_limit).

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/experiments/external.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/insights.json Bemerkenswerte Änderungen gegenüber dem Vorzeitraum in einfacher Sprache (größte Veränderungen, Änderungen der Zielkonversion) insights_get

Auffällige Änderungen einer Website in verständlichem Klartext, verglichen mit dem vorherigen Zeitraum gleicher Länge. Gibt period, comparison_period und insights zurück. Der Zeitraum umfasst ganze Tage bis gestern und wird mit period gewählt (7d, 14d, 28d oder 30d, Standard 7d). Jeder Insight hat dimension (total, channel, page, country oder goal), metric, value, previous, current, change und sentence. change ist bei Zählwerten ein Prozentwert und bei der Ziel-Conversion-Rate in Prozentpunkten, und sentence ist ein fertig lesbarer englischer Satz. Enthalten sind die Gesamtzahl der Besucher und Pageviews, die zwei größten Veränderungen je Dimension (Änderungen von 20 Prozent oder mehr bei mindestens 10 Besuchen oder Aufrufen) und Ziele, deren Conversion-Rate sich um einen halben Punkt oder mehr verschoben hat. Das Wichtigste zuerst, begrenzt durch limit (Standard 8, max. 20). Die Ergebnisse werden für den Tag gespeichert. Für exakte Zahlen verwenden Sie stats_aggregate und stats_breakdown, und nutzen Sie dieses Tool, um herauszufinden, was sich geändert hat.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/insights.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/journeys.json Journeys: die 3-Schritt-Top-Pfade nach einer Seite (oder einem beliebigen Einstieg) oder vor einer Seite oder einem Ziel journeys_explore

Untersucht die häufigsten dreistufigen Seitenpfade innerhalb von Besuchen. Im Vorwärtsmodus (Standard) zeigt es die Pfade nach einer in path angegebenen Startseite oder nach jedem Einstieg, wenn path leer ist. Im Rückwärtsmodus zeigt es die Pfade, die zu einer Endseite (path) oder zu einem Ziel (goal_id, das automatisch auf Rückwärts umschaltet) führen. reverse braucht path oder goal_id. path muss mit einem Schrägstrich beginnen. Gibt period, mode, path, goal, sampled, sample_rate (Prozent), total_visits und den Pfadgraphen mit nodes und links je Schritt zurück, begrenzt durch limit Seiten pro Schritt (2 bis 12, Standard 6). Ab 100.000 Besuchen werden die Daten gesampelt. Seitenfilter werden ignoriert, weil sie Pfade verkürzen würden. Pfade werden pro Besuch aufgebaut, da keine Besucher-ID gespeichert wird. Nutzt die gemeinsamen Eingaben period, filters und segment. Für die Nachbarn einer Seite verwenden Sie pages_detail und für die Conversion je Schritt funnels_get.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/journeys.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/pages/detail.json Seitendetail: Kennzahlen, vorherige und nächste Seiten, Quellen, Web Vitals, Ereignisse und Klickkarte für einen Pfad pages_detail

Eine Seite im Detail. Übergeben Sie path (muss mit einem Schrägstrich beginnen, zum Beispiel /pricing) genau so, wie er gespeichert ist (ohne Query-String und Host). Gibt period, path, url, metrics, previous_pages, next_pages, sources, vitals, events, clicks, goals und notes zurück. metrics enthält visitors, visits, pageviews, entrances, exits, entry_rate, exit_rate und bounce_rate (Prozentwerte, 0 bis 100), time_on_page (mediane Millisekunden) und scroll_depth (medianer Prozentwert), die beiden letzten sind ohne Interaktionsdaten null. previous_pages und next_pages sind die Seiten, die im selben Besuch davor und danach gesehen wurden, als {value, count, share}, mit (entrance) und (exit) als Sonderwerten. sources enthält die Top-Kanäle und Referrer der Besuche, die auf dieser Seite eingestiegen sind. vitals enthält p75-Werte je Web Vital mit Bewertungen. events sind eigene Ereignisse, die auf der Seite ausgelöst wurden, clicks sind die am häufigsten angeklickten Element-Selektoren, goals sind darauf abgeschlossene Ziele, und notes sind Anmerkungen, die sie erwähnen. Mit stats_breakdown und der Dimension page erstellen Sie ein Ranking der Seiten, und referrers_detail zeigt eine verweisende Website.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/pages/detail.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/referrers.json Referrer: die Websites, die auf diese Website verlinken, mit Besuchern, Engagement, Verkehrsart und Anzahl der verlinkenden Seiten referrers_list

Erstellt ein Ranking der externen Websites, die Besucher gesendet haben, samt dem, was jede gesendet hat. Direkte Besuche (ohne Referrer) sind ausgenommen. Gibt period, summary, channels, page, limit, has_more und rows zurück. summary enthält visitors, visits, pageviews, bounce_rate (Prozent), visit_duration (mediane aktive Millisekunden), revenue (kleinste Währungseinheit, Cent), sites (Anzahl der verweisenden Websites) und share (Prozent aller Besuche, die von Referrern kamen). channels zeigt die Arten von Traffic als {value, visitors, visits}. Jede Zeile hat value (der Referrer-Host), visitors, visits, pageviews, bounce_rate, visit_duration, revenue, channel (ihr üblicher Kanal), linking_pages (wie viele verschiedene Seiten dieser Website hierher verlinken) und share (Prozent der verwiesenen Besucher). Sortieren Sie mit sort (visitors, visits, pageviews oder revenue, Standard visitors), schränken Sie mit search ein (im Host enthaltener Text), und blättern Sie mit page und limit (max. 100), solange has_more true ist. Für eine einzelne Website verwenden Sie referrers_detail. Nutzt die gemeinsamen Eingaben period, compare, filters und segment.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/referrers.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/referrers/detail.json Referrer-Details: Kennzahlen und Verlauf einer verweisenden Website, ihre verlinkenden Seiten, Einstiegsseiten, Länder, Geräte, Kampagnen und Conversions referrers_detail

Eine verweisende Website im Detail. Übergeben Sie referrer als Host ohne www und ohne Pfad (zum Beispiel news.ycombinator.com), derselbe Wert wie in referrers_list. Gibt period, referrer, url, channel (ihr häufigster Kanal), metrics, share (Prozent aller Besuche), interval, series (der Traffic im Zeitverlauf), linking_pages, landing_pages, channels, countries, devices, campaigns, goals und, mit compare, comparison, change und comparison_series zurück. metrics und series verwenden dieselben Felder und Einheiten wie stats_aggregate und stats_timeseries. linking_pages sind die Seiten des Referrers, die Besucher gesendet haben, als Zeilen mit path, url, visitors und share (Query-Strings werden nie gespeichert). landing_pages sind die Seiten, auf denen diese Besucher eingestiegen sind. channels, countries, devices und campaigns sind Top-Werte mit Kennzahlen, und goals listet die von ihnen abgeschlossenen Ziele mit conversions und conversion_rate. Mit referrers_list erstellen Sie ein Ranking der verweisenden Websites und mit stats_breakdown und der Dimension referrer eine einfache Liste.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/referrers/detail.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/stats/aggregate.json Hauptkennzahlen für einen Zeitraum (mit Vergleich) stats_aggregate

Kennzahlen für einen Zeitraum, als ein Objekt. Gibt period {from, to} und metrics {visitors, visits, pageviews, views_per_visit, bounce_rate, visit_duration, revenue} zurück. Mit compare kommen außerdem comparison_period, comparison (dieselben Kennzahlen für den anderen Zeitraum) und change (prozentuale Änderung je Kennzahl, null, wenn der frühere Wert 0 war) hinzu. Einheiten: bounce_rate ist ein Prozentwert von 0 bis 100 (10.9 bedeutet 10,9 %). visit_duration ist die mediane aktive Zeit eines Besuchs in Millisekunden. revenue ist eine Ganzzahl in der kleinsten Währungseinheit (Cent) der Website-Währung. views_per_visit ist eine Dezimalzahl. Besucher werden pro Tag gezählt, weil keine dauerhafte Besucher-ID gespeichert wird, daher zählt jemand, der an einem anderen Tag wiederkommt, erneut. Verwenden Sie dies für Summen und die Änderung gegenüber dem Vorzeitraum. Für ein Diagramm über die Zeit nutzen Sie stats_timeseries, für die Top-Werte einer Dimension stats_breakdown und für alles in einem Aufruf stats_overview. Schränken Sie jedes davon mit filters ein (Dimensionsnamen und Operatoren siehe filters).

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/stats/aggregate.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/breakdown/:dimension.json Häufigste Werte einer Dimension (Seiten, Quellen, Länder…) stats_breakdown

Top-Werte einer Dimension mit ihren Kennzahlen, das Wichtigste zuerst, paginiert. Die Dimension ist der letzte Teil des Pfads und muss ein exakter Name aus ihrer Beschreibung sein (zum Beispiel country, page, channel, utm_campaign, prop:plan). Gibt period, dimension, label, page, limit, has_more und rows zurück. Fordern Sie die nächste Seite an, solange has_more true ist. Jede Zeile hat value und share (Prozent der Gesamtsumme des Zeitraums). Die übrigen Felder einer Zeile hängen von der Dimension ab. Besuchsdimensionen (channel, referrer, referrer_url, utm_*, ref, hostname, country, language, device, browser, browser_version, os, os_version, screen, entry_page, exit_page, interaction, bot_score) liefern visitors, visits, pageviews, views_per_visit, bounce_rate, visit_duration und revenue. page liefert pageviews, visits, time_on_page (Millisekunden) und scroll_depth (Prozent), ohne visitors. event und prop:<key> liefern completions, visits, revenue und conversion_rate. goal liefert goal_id, completions, conversions, conversion_rate und revenue. Einheiten: bounce_rate und conversion_rate sind Prozentwerte (0 bis 100), Dauern sind Millisekunden, revenue ist in der kleinsten Währungseinheit (Cent). Eine falsche Dimension liefert einen 422 mit den gültigen Namen. Mit search suchen Sie einen Wert in allen Zeilen, und mit filters schränken Sie die Daten vorab ein (zum Beispiel Seiten, die ein Land besucht hat). Für eine einzelne Seite oder einen einzelnen Referrer im Detail verwenden Sie pages_detail oder referrers_detail. Die Dimensionen interaction und bot_score erfordern den Tarif Business oder Enterprise: Als Breakdown antworten sie in anderen Tarifen mit 402 plan_limit, und ein Filter darauf wird weggelassen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/breakdown/:dimension.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/stats/timeseries.json Kennzahlen pro Zeitintervall für Diagramme stats_timeseries

Kennzahlen je Zeitintervall, für Diagramme und Trends. Gibt period, interval (das tatsächlich verwendete Intervall) und series zurück, eine Liste von {date, visitors, visits, pageviews, views_per_visit, bounce_rate, visit_duration, revenue}, ein Eintrag je Intervall, mit date als ISO-8601-Beginn des Intervalls. Mit compare kommt außerdem comparison_series für den anderen Zeitraum hinzu, Intervall für Intervall. Die Einheiten sind dieselben wie bei stats_aggregate: bounce_rate ist ein Prozentwert (0 bis 100), visit_duration ist die mediane aktive Zeit in Millisekunden, revenue ist in der kleinsten Währungseinheit (Cent). interval ist standardmäßig auto und wählt minute, hour, day, week oder month passend zum Zeitraum. Setzen Sie es, um eine Intervallgröße zu erzwingen. Für eine einzelne Summe verwenden Sie stats_aggregate und für die Aufteilung nach einer Dimension wie country oder page stats_breakdown.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/stats/timeseries.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Anzeigenmotive

POST /sites/:site_id/experiments/ads/:ad_placement_id/creatives.json Einem Werbeplatz ein Anzeigenmotiv hinzufügen ad_creatives_create

Fügt ein Bild im Seitenverhältnis des Werbeplatzes hinzu (mindestens in dessen Größe, die doppelte Größe sieht am schärfsten aus) sowie die Adresse, zu der ein Klick führt. Senden Sie das Bild als Multipart-Datei oder image_url, damit es heruntergeladen wird. Es wird im Hintergrund verarbeitet, fragen Sie daher ad_creatives_get ab, bis state ready ist. Zeitplan, Geräte und Pfade sind Pro und höher. Erfordert content.write.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/experiments/ads/:ad_placement_id/creatives.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/experiments/ads/:ad_placement_id/creatives/:id.json Ein Anzeigenmotiv und sein Bild löschen ad_creatives_delete

Löscht ein Anzeigenmotiv und sein Bild dauerhaft. Eines, das ein Experiment vergleicht, kann nicht gelöscht werden: Schalten Sie es stattdessen aus. Das MCP-Tool führt dies nicht aus und antwortet mit human_only und der Seite, auf der eine Person löscht. Erfordert content.write.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/experiments/ads/:ad_placement_id/creatives/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/experiments/ads/:ad_placement_id/creatives/:id.json Ein Anzeigenmotiv mit seinem Status abrufen ad_creatives_get

Ein Anzeigenmotiv ist processing, bis sein Bild erstellt ist, danach ready (oder failed, mit dem Grund in error). Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/experiments/ads/:ad_placement_id/creatives/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/experiments/ads/:ad_placement_id/creatives/:id.json Ein Anzeigenmotiv ändern ad_creatives_update

Ändert Link, Gewichtung, Zeitplan oder Zielgruppenauswahl, schaltet es aus (active false) oder ersetzt das Bild. Nur angegebene Eingaben ändern sich. Ein neues Bild ersetzt das alte, sobald es fertig ist. Erfordert content.write.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/experiments/ads/:ad_placement_id/creatives/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Assistent

POST /sites/:site_id/ask.json Eine Frage in einer neuen Unterhaltung stellen (zählt zum monatlichen Limit für KI-Fragen) assistant_ask

Startet eine neue Ask-Unterhaltung zu einer Website und beantwortet ihre erste Frage anhand der Analytics dieser Website. Verwenden Sie es für eine Frage in Alltagssprache zu einer Website. Mit assistant_ask_followup setzen Sie eine bestehende Unterhaltung fort, und die Stats-Tools sind richtig, wenn Sie die genaue Abfrage schon kennen. Die Antwort stammt von einem KI-Modell, das selbstständig schreibgeschützte Analytics-Abfragen ausführt, daher kann der Aufruf viele Sekunden dauern. Er zählt als eine KI-Frage auf das monatliche Kontingent des Workspace (5 bei Free, 20 bei Pro, 100 bei Business) und schlägt mit einem Limit-Fehler fehl, wenn das Kontingent aufgebraucht ist. Die Frage darf höchstens 2.000 Zeichen lang sein. Unterhaltungen sind privat für das Mitglied, das sie gestartet hat, und werden 30 Tage nach ihrer letzten Nachricht gelöscht. Gibt die Unterhaltung (id, site_id, title aus der Frage, created_at, updated_at, expires_at) mit einem messages-Array zurück. Jede Nachricht hat role (user oder assistant), content (der Antworttext), queries (die genauen Analytics-Abfragen, die der Assistent ausgeführt hat), chart (nullable Diagrammdefinition), goal_draft (nullable Zielvorschlag), Token-Zahlen und created_at. Schlägt die Antwort fehl, wird die Unterhaltung entfernt und keine Frage gezählt. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/ask.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/ask/:id.json Eine Ask-Unterhaltung und ihre Nachrichten löschen assistant_conversations_delete

Löscht eine Ask-Unterhaltung samt allen Nachrichten sofort und dauerhaft. Das kann nicht rückgängig gemacht werden. Die Unterhaltungs-ID stammt aus assistant_conversations_list. Nur das Mitglied, das eine Unterhaltung gestartet hat, kann sie sehen und löschen. Erfordert analytics.read und eine site_id. Gibt die Zusammenfassung der gelöschten Unterhaltung zurück (id, site_id, title, Zeitstempel). Bereits für den Monat gezählte KI-Fragen werden nicht erstattet.

Berechtigung: analytics.read

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/ask/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/ask.json Ihre Ask-Unterhaltungen für eine Website auflisten assistant_conversations_list

Listet die Ask-Unterhaltungen des angemeldeten Mitglieds zu einer Website auf, zuletzt aktualisierte zuerst. Unterhaltungen anderer Mitglieder werden nie angezeigt. Verwenden Sie es, um eine Unterhaltungs-ID für assistant_conversations_get, assistant_ask_followup oder assistant_conversations_delete zu finden. Jeder Eintrag hat id, site_id, title (die erste Frage, auf 80 Zeichen gekürzt), created_at, updated_at und expires_at, aber keine Nachrichten. Paginiert mit page und per_page (maximal 100). Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/ask.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/ask/:id.json Eine Ask-Unterhaltung: Fragen, Antworten, die zugrunde liegenden Abfragen und Diagramme assistant_conversations_get

Gibt eine Ask-Unterhaltung mit ihrem vollständigen Nachrichtenverlauf zurück. Die Unterhaltungs-ID stammt aus assistant_conversations_list oder aus dem Ergebnis von assistant_ask. Die Felder sind id, site_id, title, created_at, updated_at, expires_at (30 Tage nach der letzten Nachricht, danach wird die Unterhaltung gelöscht) und messages. Jede Nachricht hat role (user oder assistant), content, queries (die Analytics-Abfragen, die der Assistent ausgeführt hat), chart (nullable), goal_draft (nullable) sowie input_tokens und output_tokens (nullable Ganzzahlen). Nur das Mitglied, das die Unterhaltung gestartet hat, kann sie lesen. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/ask/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/ask/:ask_conversation_id/messages.json Eine Folgefrage in einer Unterhaltung stellen (zählt zum monatlichen Limit für KI-Fragen). Gibt die Antwort zurück. assistant_ask_followup

Stellt eine Folgefrage innerhalb einer bestehenden Ask-Unterhaltung, sodass der Assistent die früheren Fragen und Antworten als Kontext behält. Um stattdessen eine neue Unterhaltung zu starten, verwenden Sie assistant_ask. conversation_id stammt aus assistant_conversations_list. Der Aufruf kann viele Sekunden dauern, weil der Assistent schreibgeschützte Analytics-Abfragen ausführt. Jede Frage zählt auf das monatliche KI-Fragen-Kontingent des Workspace (5 bei Free, 20 bei Pro, 100 bei Business) und schlägt mit einem Limit-Fehler fehl, wenn es aufgebraucht ist. Die Frage darf höchstens 2.000 Zeichen lang sein. Gibt nur die neue Assistentennachricht zurück (nicht die ganze Unterhaltung) mit id, role, content (die Antwort), queries (die genauen ausgeführten Abfragen), chart (nullable), goal_draft (nullable), input_tokens, output_tokens und created_at. Erfordert analytics.read und funktioniert nur bei Ihren eigenen Unterhaltungen.

Berechtigung: analytics.read

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/ask/:ask_conversation_id/messages.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Audit-Protokoll

GET /workspaces/:workspace_id/audit_log.json Einträge des Audit-Protokolls auflisten (.csv anhängen zum Exportieren) audit_logs_get

Gibt das Audit-Protokoll des Workspace zurück, einen paginierten Verlauf, neueste zuerst, darüber, wer was geändert hat (Einstellungen, Mitglieder, Websites, Ziele, Tokens und so weiter). Erfordert die Berechtigung workspace.manage und einen Tarif mit Audit-Verlauf. Der Tarif Free hat keinen, und der Aufruf schlägt mit einem Plan-Limit-Fehler fehl, Pro bewahrt 30 Tage auf, Business 365 Tage, und Enterprise hat keine Begrenzung. Einträge, die älter als der Aufbewahrungszeitraum sind, werden nie zurückgegeben. Filtern Sie mit actor (die E-Mail-Adresse eines Mitglieds, exakter Treffer), item_type (die Art des Datensatzes wie Site, Goal oder Membership), event (create, update oder destroy) sowie from und to (YYYY-MM-DD, einschließlich, in UTC). Jeder Eintrag hat id, created_at, event, item_type, item_id, target (eine lesbare Bezeichnung wie Site: example.com), actor_email (null, wenn die Änderung vom System oder von einem gelöschten Benutzer stammt), actor_name, token_name (der verwendete API-Token, null bei einer Browser-Sitzung), changes (ein Objekt, das jedes geänderte Feld einem Paar [vorher, nachher] zuordnet, ohne Secrets) und ip (die Adresse, die das Mitglied oder der API-Client verwendet hat, null, wenn unbekannt). Ein CSV-Export desselben Protokolls ist nur in der App verfügbar.

Berechtigung: workspace.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/audit_log.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Belohnungen

POST /sites/:site_id/testimonials/settings/rewards/:id/copy.json Die Belohnung eines Formulars auf andere Formulare derselben Website kopieren testimonial_rewards_copy

Kopiert Titel, Text, Code und den Ein- oder Aus-Zustand der Belohnung dieses Formulars in jedes Formular in form_ids (1 bis 100 Formulare derselben Website, nicht im Papierkorb). Eine Belohnung, die das Zielformular schon hat, wird ersetzt. Der Server antwortet mit 422 und dem Code unknown_ids, wenn eine ID kein Formular der Website ist, und dann wird nichts kopiert.

Berechtigung: sites.manage

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/settings/rewards/:id/copy.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/settings/rewards.json Die Belohnung jedes Formulars einer Website auflisten testimonial_rewards_list

Eine Zeile pro Formular. Ein Formular ohne gesetzte Belohnung hat enabled false.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/settings/rewards.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/settings/rewards/:id.json Die Belohnung festlegen, die ein Formular im Dankeschön-Schritt zeigt testimonial_rewards_update

Die ID ist die ID des Formulars. Der Code ist Text, den Sie angeben. Privatus Analytics erstellt, prüft oder lässt ihn nicht ablaufen.

Berechtigung: sites.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/settings/rewards/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Benachrichtigungskanäle

DELETE /channels/:id.json Einen Benachrichtigungskanal löschen notification_channels_delete

Löscht einen Benachrichtigungskanal und entfernt ihn aus jedem Alarm, der ihn verwendet hat, sodass diese Alarme dort nicht mehr benachrichtigen. Das kann nicht rückgängig gemacht werden, und die Alarme selbst bleiben erhalten. Die id (nch_...) stammt aus notification_channels_list. Gibt den gelöschten Kanal zurück.

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/channels/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/channels.json Benachrichtigungskanäle auflisten notification_channels_list

Listet die Benachrichtigungskanäle eines Workspace auf (der Pfad nimmt workspace_id entgegen), nach Name sortiert und paginiert. Ein Kanal ist ein Ort, an den Alarme zugestellt werden. Jeder hat id (nch_...), kind (email, slack, teams, discord, webhook, pagerduty, opsgenie oder push), name, target (eine maskierte Zusammenfassung wie die E-Mail-Adressen oder das Ende einer Webhook-URL, Secrets werden nie zurückgegeben), last_used_at und created_at. Filtern Sie nach kind. Verwenden Sie die IDs als channel_ids in alerts_create und alerts_update. Aufrufer, die auf einige Websites beschränkt sind, sehen nur Kanäle, die von Alarmen auf ihren Websites verwendet werden.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/channels.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /channels/:id/send_test.json Eine Testnachricht über einen Kanal senden notification_channels_send_test

Sendet eine echte Testnachricht über den Kanal (eine E-Mail, einen Chat-Beitrag, einen Webhook-Aufruf und so weiter), verwenden Sie es also nur, wenn der Benutzer das möchte. Der Aufruf schlägt mit einem Fehler fehl, der die Ursache nennt, wenn die Zustellung nicht funktioniert, sonst gibt er den Kanal zurück. Testsendungen sind pro Workspace ratenbegrenzt, E-Mail-Kanäle zusätzlich pro externer Adresse. Verwenden Sie es nach notification_channels_create oder notification_channels_update, um zu bestätigen, dass eine URL oder ein Schlüssel stimmt.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/channels/:id/send_test.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /channels/:id.json Einen Benachrichtigungskanal abrufen notification_channels_get

Gibt einen Benachrichtigungskanal anhand der id zurück (nch_..., aus notification_channels_list). Die Antwort hat kind, name, target (eine maskierte Zusammenfassung, Secrets wie Webhook-URLs und Schlüssel werden nie zurückgegeben), last_used_at und created_at. Mit notification_channels_send_test prüfen Sie, ob er zustellt.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/channels/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /notifications/unsubscribe/:token.json Eine Adresse mit dem Token aus einer E-Mail von einem Alarmkanal oder einer Verfügbarkeitsprüfung abbestellen notification_unsubscribes_create

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/notifications/unsubscribe/:token.json \
  -H "Content-Type: application/json" -d '{…}'
POST /push_subscription.json Einen Browser für Push-Benachrichtigungen registrieren push_subscriptions_create

Registriert den aktuellen Browser für Web-Push-Alarme, anhand der drei Werte aus der PushSubscription des Browsers (endpoint, p256dh und auth). Ein Abonnement erhält Alarme aus jedem Workspace, dem das Mitglied angehört, für jede Website, weshalb ein API-Token dies nur nutzen darf, wenn er seinen gesamten Workspace lesen kann und das Mitglied keinen anderen Workspace hat. Ein erneuter Aufruf mit demselben endpoint aktualisiert die Schlüssel und überträgt das Abonnement auf den Aufrufer. Der endpoint muss eine öffentliche https-URL eines Push-Dienstes sein. Dies registriert nur den Browser, Alarme brauchen also weiterhin einen Benachrichtigungskanal der Art push (notification_channels_create). Gibt endpoint_host (den Hostnamen des Push-Dienstes, nicht den vollständigen endpoint) und created_at zurück. Sitzungen, die über einen Workspace-Identity-Provider geöffnet wurden, können es nicht nutzen.

Berechtigung: member

Beispiel
curl -X POST https://privatusanalytics.com/push_subscription.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /push_subscription.json Eine Browser-Push-Registrierung entfernen push_subscriptions_delete

Entfernt eine der Browser-Push-Registrierungen des angemeldeten Mitglieds, sodass dieser Browser keine Alarm-Benachrichtigungen mehr erhält. Übergeben Sie denselben endpoint, der mit push_subscriptions_create verwendet wurde. Schlägt mit not found fehl, wenn für das Mitglied kein solches Abonnement existiert. Gibt das entfernte Abonnement als endpoint_host und created_at zurück. Es löscht keinen Benachrichtigungskanal. Es gelten dieselben Token-Einschränkungen wie bei push_subscriptions_create.

Berechtigung: member

Beispiel
curl -X DELETE https://privatusanalytics.com/push_subscription.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Bot-Erkennung

GET /sites/:site_id/bot-detection.json Bericht zur erweiterten Bot-Erkennung: Zugriffe auf die Honeypot-Seiten der Website, nach Seite und nach dem, was den Bot verraten hat bot_detection_report

Berichtet über die Zugriffe auf die Honeypot-Seiten der Website. Eine Honeypot-Seite ist eine Seite, die nur über einen versteckten Link erreicht wird und als Seite für die erweiterte Bot-Erkennung eingerichtet ist, wie es die App zeigt. Diese Zugriffe sind Bots, daher sind sie nie Pageviews oder Besuche und erscheinen nicht in stats_overview oder stats_breakdown. Wählen Sie den Zeitraum mit period (7d, 30d (Standard), 90d oder 12mo). Zugriffe werden 12 Monate lang gespeichert. Das Ergebnis hat period, from (den Beginn des Zeitraums), has_data (false bis zum ersten Zugriff), totals (hits, verschiedene Seiten, automated (Zugriffe, bei denen der Tracker einen automatisierten Browser gesehen hat) und no_interaction (Zugriffe ohne Zeiger-, Tasten- oder Toucheingabe)), pages (bis zu 50 Zeilen mit path, hits und last_hit_at), reasons (Zugriffe je Ergebnis des Standard-Bot-Filters: known_bot, automation, datacenter, empty_user_agent, referrer_spam oder undetected für einen Zugriff, den der Filter als Person gezählt hätte) und recent (die neuesten 50 Zugriffe mit occurred_at, path, country, browser, device, bot_reason, automation und interacted). Zu einem Zugriff wird weder eine IP-Adresse noch ein User-Agent gespeichert, nur verschlüsselte Hashes davon, die niemanden identifizieren können, und diese werden nie zurückgegeben. Erfordert analytics.read und den Tarif Business oder Enterprise (sonst 402 plan_limit).

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/bot-detection.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Crawler

DELETE /sites/:site_id/crawlers/connection.json Cloudflare trennen und die importierten Crawler-Treffer löschen crawlers_cloudflare_disconnect

Trennt Cloudflare von einer Website. Dabei werden der gespeicherte API-Token und jeder aus Cloudflare importierte Crawler-Zugriff gelöscht, und das kann nicht rückgängig gemacht werden. Zugriffe aus übermittelten Server-Logs bleiben erhalten. Der Token besteht in Ihrem Cloudflare-Konto weiter, bis Sie ihn dort löschen. Schlägt fehl, wenn die Website keine Verbindung hat. Gibt die entfernte Verbindung zurück. Erfordert sites.manage.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/crawlers/connection.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/crawlers/sync.json Crawler-Treffer jetzt aus Cloudflare importieren crawlers_cloudflare_sync

Stellt einen sofortigen Cloudflare-Import für eine bereits verbundene Website in die Warteschlange, statt auf den regulären Zeitplan zu warten. Es antwortet sofort (HTTP 202) mit der Verbindung, und der Import läuft im Hintergrund. Fragen Sie crawlers_report ab und beobachten Sie cloudflare.last_synced_at, um zu sehen, wann er beendet war. Schlägt fehl, wenn die Website keine Cloudflare-Verbindung hat. Erfordert sites.manage.

Berechtigung: sites.manage

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/crawlers/sync.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/crawlers.json KI-Crawler-Bericht: Treffer pro Crawler im Zeitverlauf, Top-Pfade pro Crawler, nach Kategorie crawlers_report

Berichtet, welche KI-, Such- und SEO-Crawler die Website abrufen, wie oft und welche Pfade, aus übermittelten Server-Logs und dem Cloudflare-Import. Dies ist Crawler-Traffic, kein Besucher-Traffic, er erscheint also nicht in stats_breakdown. category ist ai (Standard), search, seo, other oder all, und crawler schränkt auf einen benannten Bot wie GPTBot oder ClaudeBot ein. Wählen Sie den Zeitraum mit period (Standard 30d) oder mit from und to. Das Ergebnis hat period (from und to als Datumsangaben), category, crawler, totals (Zugriffe, verschiedene Pfade, verschiedene Crawler), categories (Zugriffe je Kategorie, ohne Beachtung des Kategoriefilters), crawlers (bis zu 50 Zeilen mit crawler, category, hits, paths), series (Beschriftungen je Tag und tägliche Zugriffe der Top-8-Crawler), top_paths (die 10 am häufigsten abgerufenen Pfade für jeden der Top-8-Crawler), has_data (false, bis Zugriffe vorhanden sind) und cloudflare (die Verbindung mit zone, status und last_synced_at oder null). Ergebnisse werden bis zu 30 Minuten zwischengespeichert, außer direkt nach einer Cloudflare-Änderung. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/crawlers.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Dashboards

GET /workspaces/:workspace_id/dashboards/:id/cards/:index.json Daten für eine Karte eines eigenen Dashboards dashboards_card

Gibt die Live-Daten einer Karte eines eigenen Dashboards zurück. Dashboards sind Listen von Karten (die Kartenliste finden Sie in dashboards_get), und jede Karte wird einzeln geladen. Rufen Sie dies also einmal pro Karte mit ihrer Position in index auf, ab 0 gezählt. Gibt index, type, title, site_id, site_name, params, status und data zurück. status ist ok, not_available (die Karte hat nichts anzuzeigen, zum Beispiel eine Funnel-Karte bei einer Website ohne Funnels oder eine Uptime-Karte ohne Prüfungen) oder no_access (die Karte gehört zu einer Website, die Ihr Token oder Ihre Rolle nicht öffnen kann, dann sind title, params und data leer). Die Form von data hängt von type ab. metric liefert {metric, value, previous, change, period} im Vergleich zum vorherigen Zeitraum. chart liefert {metric, interval, period, series: [{date, value}]}. breakdown liefert {dimension, label, rows}. goal liefert {rows} mit Zielabschlüssen. live liefert {visitors}. funnel liefert {funnel_id, name, overall_conversion_rate, steps}. uptime liefert {checks: [{name, status, uptime}]}. vitals liefert {scorecard}. subscriptions liefert {currency, mrr_minor, previous_mrr_minor (vor 30 Tagen), change (Prozent, null ohne MRR vor 30 Tagen), active_subscriptions, subscription_churn_rate (letzte 30 Tage)} und ist not_available, solange für die Website kein Zahlungsanbieter verbunden ist. Die Karten-params sind standardmäßig period 30d, metric visitors, dimension page und 5 Zeilen (limit ist auf 10 begrenzt). Ein index außerhalb der Liste liefert 404. Sehen Sie zuerst mit dashboards_get nach, wie viele Karten es gibt.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/dashboards/:id/cards/:index.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /workspaces/:workspace_id/dashboards.json Ein eigenes Dashboard erstellen dashboards_create

Erstellt ein eigenes Dashboard in einem Workspace. Ein eigenes Dashboard ist eine benannte, geordnete Liste von bis zu 40 Karten, und die Karten können von verschiedenen Websites des Workspace stammen. Übergeben Sie name (bis zu 100 Zeichen) und cards, eine Liste von Objekten mit type (metric, chart, breakdown, goal, live, funnel, uptime, vitals oder subscriptions), site_id (pa_..., aus sites_list) und optional title (bis zu 80 Zeichen) und params. Die je type verwendeten params sind metric (period, metric), chart (period, metric, interval), breakdown (period, dimension, limit), goal (period, limit), funnel (period, funnel_id), uptime (limit) und vitals (period). live und subscriptions haben keine. Andere params werden verworfen. Der Zeitraum muss ein Preset wie 30d sein (nicht custom) und metric eines von visitors, visits, pageviews, views_per_visit, bounce_rate oder visit_duration. Jede Karte muss auf eine Website zeigen, auf die Ihr Token zugreifen kann, und ein auf einige Websites beschränkter Token muss mindestens eine Karte enthalten. Gibt das Dashboard mit id (dash_...), name, cards und Zeitstempeln zurück. Lesen Sie es mit dashboards_get und laden Sie die Zahlen jeder Karte mit dashboards_card. Erfordert die Berechtigung content.write. Der Tarif bestimmt, wie viele Dashboards ein Workspace hat: 1 bei Free, 3 bei Pro, unbegrenzt bei Business. Eines über der Anzahl wird mit einem Validierungsfehler abgelehnt.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/dashboards.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /workspaces/:workspace_id/dashboards/:id.json Ein eigenes Dashboard löschen dashboards_delete

Löscht ein eigenes Dashboard dauerhaft. Es wird nur das Dashboard-Layout entfernt, Analytics-Daten bleiben unberührt, und es gibt kein Rückgängigmachen. Sie benötigen Zugriff auf jede Website, die eine Karte im Dashboard hat, und das Dashboard braucht mindestens eine Karte einer Website, auf die Sie zugreifen können. Gibt das gelöschte Dashboard zurück. Um ein Dashboard stattdessen zu ändern, verwenden Sie dashboards_update. IDs (dash_...) stammen aus dashboards_list. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/workspaces/:workspace_id/dashboards/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/dashboards.json Eigene Dashboards auflisten dashboards_list

Listet die eigenen Dashboards eines Workspace auf, nach Name sortiert. Jeder Eintrag hat id (dash_...), name, cards und Zeitstempel, in derselben Form wie dashboards_get. Ein auf einige Websites beschränkter Token sieht nur Dashboards, die eine Karte einer seiner Websites enthalten, und Karten anderer Websites werden zu {type, status: no_access} geschwärzt. Paginiert mit page und per_page (max. 100). Mit dashboards_card laden Sie die Daten einer Karte und mit dashboards_create fügen Sie ein Dashboard hinzu. Für eine einzelne Website liefert stats_overview dieselbe Art von Zahlen ohne Dashboard.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/dashboards.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /workspaces/:workspace_id/dashboards/:id.json Ein eigenes Dashboard und seine Karten abrufen dashboards_get

Gibt ein eigenes Dashboard zurück: id (dash_...), name, cards sowie created_at und updated_at. Jede Karte ist {type, site_id, title, params} (type ist metric, chart, breakdown, goal, live, funnel, uptime, vitals oder subscriptions). Eine Karte auf einer Website, auf die Sie nicht zugreifen können, wird als {type, status: no_access} ohne weitere Felder zurückgegeben. Dies liefert nur das Layout, nicht die Zahlen. Laden Sie die Zahlen einer Karte mit dashboards_card, anhand der ab 0 gezählten Position der Karte. IDs stammen aus dashboards_list. Ein Dashboard über der Anzahl des Tarifs (1 bei Free, 3 bei Pro) bleibt erhalten und ist gesperrt: Es antwortet mit 402 plan_limit, bis der Workspace upgradet oder ein anderes löscht.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/dashboards/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /workspaces/:workspace_id/dashboards/:id.json Ein eigenes Dashboard umbenennen oder seine Karten ersetzen dashboards_update

Benennt ein eigenes Dashboard um und/oder ersetzt seine gesamte Kartenliste. Nur die Felder, die Sie senden, ändern sich, und name bleibt unverändert, wenn er leer ist. Das Senden von cards ersetzt jede Karte, senden Sie also die vollständige Liste in der gewünschten Reihenfolge, aus dashboards_get übernommen und bearbeitet. Kartenformat und params je type sind dieselben wie bei dashboards_create (max. 40 Karten). Eine Karte, die als {type, status: no_access} angezeigt wird, gehört zu einer Website, die Sie nicht öffnen können. Senden Sie sie unverändert zurück, um sie zu behalten, sie kann nicht bearbeitet werden, und die letzte Karte einer solchen Website kann nicht entfernt werden. Ein auf einige Websites beschränkter Token kann das Dashboard nicht leer lassen. Gibt das aktualisierte Dashboard zurück. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/workspaces/:workspace_id/dashboards/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Dokumentation

GET /docs/api.json Alle API-Operationen und MCP-Tools auflisten docs_api

Gibt den vollständigen Katalog aller API-Operationen zurück, die zugleich alle MCP-Tools sind. Verwenden Sie es, um zu erfahren, welches Tool oder welchen Endpoint es gibt und was genau er erwartet. Jeder Eintrag hat tool_name, summary, description (nullable), group, verb (HTTP-Methode), path (Vorlage mit Platzhaltern), permission (die Berechtigung, die ein Mitglied oder Token braucht, bei öffentlichen Tools nullable), input_schema (JSON Schema der Eingaben) und response_schema (JSON Schema der Antwort). Die Antwort ist groß. Für ein bereits bekanntes Tool nutzen Sie besser die Dokumentationsseiten (docs_search). docs_openapi liefert dieselben Informationen als OpenAPI-Dokument. Öffentlich, keine Authentifizierung nötig.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/docs/api.json
GET /docs.json Dokumentationsseiten auflisten docs_list

Listet jede Dokumentationsseite mit title, description, path (wie /docs/api/authentication), section und ohne Inhalt auf. Verwenden Sie es, um zu stöbern, was es gibt. Um eine Seite nach Thema zu finden, nutzen Sie docs_search, und zum Lesen einer Seite docs_get mit section und page. Paginiert mit page und per_page (maximal 100). Öffentlich, keine Authentifizierung nötig.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/docs.json
GET /openapi.json OpenAPI-3.1-Dokument für die gesamte API docs_openapi

Gibt das OpenAPI-3-Dokument zurück, das die gesamte öffentliche API beschreibt, als rohes JSON (nicht in ein Feld data eingepackt). Verwenden Sie es, wenn Sie eine maschinenlesbare Spezifikation für die Codegenerierung brauchen. Für eine durchsuchbare Liste der Operationen mit ihren Eingabe- und Antwortschemas ist docs_api besser lesbar. Es beschreibt dieselben Operationen, die als MCP-Tools bereitstehen. Öffentlich, keine Authentifizierung nötig.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/openapi.json
GET /docs/:section/:page.json Eine Dokumentationsseite lesen (Markdown und HTML) docs_get

section und page stammen aus dem Seitenpfad /docs/<section>/<page>. Verwenden Sie die Seite "index" für eine Übersicht des Abschnitts.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/docs/:section/:page.json

Domain Rating

GET /sites/:site_id/domain-rating.json Domain-Rating-Bericht: das aktuelle Rating, eingehende und ausgehende Links, die Veränderung seit dem vorherigen Release und der Verlauf nach Monat domain_rating_report

Gibt das Domain Rating der Website zurück, eine Schätzung von 0 bis 100, wie stark die Links auf ihre Domain sind, plus die Anzahl eingehender und ausgehender Links und deren Verlauf. Dies ist der eigene Score von Privatus Analytics, keine Google-Kennzahl. Die Ratings werden einmal im Monat pro Release aktualisiert, Änderungen zeigen sich also monatlich. months (1 bis 120, Standard 12) legt fest, wie viele monatliche Verlaufspunkte enthalten sind. Das Ergebnis hat domain, checked_at (wann die Website zuletzt geprüft wurde, null, wenn nie), release (der Monat der neuesten Daten als YYYY-MM), rating, inbound_links, outbound_links (jeweils null, wenn noch nicht bekannt), changes (dieselben drei Kennzahlen als Differenz zum vorherigen Release, null, wenn eine von beiden unbekannt ist) und history (eine Zeile pro Monat mit month, rating, inbound_links, outbound_links, älteste zuerst). Eine neue Website kann einige Minuten lang unbewertet sein. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/domain-rating.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

E-Mail-Berichte

DELETE /recipients/:id.json Einen Empfänger aus einem E-Mail-Bericht entfernen email_report_recipients_delete

Entfernt eine Adresse aus einem E-Mail-Bericht (id des Empfängers, aus email_report_recipients_list). Die Adresse erhält keine Berichte mehr, und ihre Zeile wird gelöscht. Hat sich die Adresse selbst abgemeldet, bleibt die Abmeldung vermerkt, sodass das Entfernen niemandem erlaubt, sie erneut einzuladen. Um viele Adressen auf einmal zu ändern, senden Sie stattdessen die vollständige Liste über email_reports_update. Gibt den entfernten Empfänger zurück.

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/recipients/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /reports/:report_id/recipients.json Die Empfänger eines E-Mail-Berichts mit ihrem Status auflisten email_report_recipients_list

Status: active (erhält Berichte), pending (eingeladen, noch nicht angenommen), declined oder unsubscribed. Adressen fügen Sie über die Empfängerliste des Berichts hinzu oder entfernen sie dort.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/reports/:report_id/recipients.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /recipients/:id/resend.json Eine ausstehende Berichtseinladung erneut senden email_report_recipients_resend

Sendet die Einladung mit neuen Links erneut. Einmal alle 7 Tage pro Adresse und Bericht erlaubt.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/recipients/:id/resend.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/reports.json Einen E-Mail-Bericht erstellen email_reports_create

Erstellt einen geplanten Analytics-E-Mail-Bericht für eine oder mehrere Websites (der Pfad nimmt workspace_id entgegen). Pflicht sind name und site_ids (pa_...-IDs). frequency ist daily, weekly (Standard, am Wochentag gesendet) oder monthly (am 1. des Monats), hour ist die Stunde des Tages von 0 bis 23 in der Zeitzone des Workspace (Standard 8), und weekday ist 0 für Sonntag bis 6 für Samstag (Standard 1, nur bei wöchentlichen Berichten verwendet). blocks wählt den Inhalt aus kpis, chart, pages, sources, goals, campaigns, vitals, uptime, testimonials und subscriptions (Standard kpis, chart, pages, sources, goals, testimonials, subscriptions). subscriptions zeigt den MRR und was ihn im Zeitraum bewegt hat, für eine Website mit verbundenem Zahlungsanbieter. recipients ist eine Liste von E-Mail-Adressen (bis zu 50). Mitglieder des Workspace sind sofort aktiv, jede andere Adresse ist pending und erhält eine Einladungs-E-Mail und bekommt Berichte erst nach deren Annahme. Adressen, die sich abgemeldet haben, werden abgelehnt. Wird recipients weggelassen, wird der aufrufende Benutzer hinzugefügt. Ein aktivierter Bericht braucht mindestens einen Empfänger. Der Tarif Free erlaubt 3 Berichte, bezahlte Tarife sind unbegrenzt. Gibt den Bericht mit next_run_at zurück. Mit email_reports_send_test sehen Sie eine Vorschau.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/reports.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /reports/:id/deliveries.json Zustellprotokoll eines E-Mail-Berichts email_reports_deliveries

Listet das Versandprotokoll eines E-Mail-Berichts auf, neueste zuerst und paginiert. Jeder Eintrag hat status (sent für einen geplanten Versand, test, failed oder skipped), recipients_count, error (der Grund eines Fehlers, sonst null) und sent_at. Filtern Sie mit status. Verwenden Sie es, um zu bestätigen, dass ein geplanter Bericht versendet wurde, oder um zu sehen, warum er fehlgeschlagen ist. Mit email_reports_send_test lösen Sie eine Test-E-Mail aus.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/reports/:id/deliveries.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
DELETE /reports/:id.json Einen E-Mail-Bericht löschen email_reports_delete

Löscht einen E-Mail-Bericht dauerhaft samt seinen Empfängern und seinem Versandprotokoll. Das kann nicht rückgängig gemacht werden, und es werden keine weiteren E-Mails gesendet. Um das Senden zu stoppen, den Bericht aber zu behalten, verwenden Sie email_reports_update mit enabled false. Die id (rep_...) stammt aus email_reports_list. Gibt den gelöschten Bericht zurück.

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/reports/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/reports.json E-Mail-Berichte auflisten email_reports_list

Listet die geplanten E-Mail-Berichte eines Workspace auf (der Pfad nimmt workspace_id entgegen), nach Name sortiert und paginiert. Jeder Bericht hat id (rep_...), name, site_ids, frequency, hour, weekday, recipients (jede Adresse im Bericht), recipient_details (je id, email, status, invited_at, expires_at, confirmed_at), blocks, attach_pdf, intro, enabled, last_sent_at, next_run_at und created_at. Filtern Sie nach frequency (daily, weekly oder monthly). Ein auf einige Websites beschränkter Aufrufer sieht nur Berichte, deren Websites alle seine eigenen sind. Nur Empfänger mit dem Status active erhalten tatsächlich Berichte. Für das Versandprotokoll verwenden Sie email_reports_deliveries.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/reports.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /reports/:id/send_test.json Einen E-Mail-Bericht jetzt als Test senden email_reports_send_test

Sendet den Bericht sofort als Test an eine Adresse, ohne seinen Zeitplan oder last_sent_at zu ändern. Sendet eine echte E-Mail, verwenden Sie es also nur, wenn der Benutzer das möchte. recipient ist standardmäßig der aufrufende Benutzer und darf nur der Aufrufer, ein anderes Mitglied des Workspace oder ein aktiver Empfänger des Berichts sein. Bei jeder anderen Adresse geht der Test stattdessen an den Aufrufer. Testsendungen sind pro Workspace und pro externer Adresse ratenbegrenzt, und ein abgelehnter Versand gibt einen Ratenlimit-Fehler zurück. Gibt die Zustellung mit status (test oder failed mit dem Grund in error), recipients_count und sent_at zurück. Das vollständige Protokoll liefert email_reports_deliveries.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/reports/:id/send_test.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /reports/:id.json Einen E-Mail-Bericht abrufen email_reports_get

Gibt einen E-Mail-Bericht anhand der id zurück (rep_..., aus email_reports_list). Die Antwort hat name, site_ids, frequency, hour, weekday, recipients, recipient_details mit jeder Adresse und ihrem Opt-in-Status, blocks, attach_pdf, intro, enabled, last_sent_at und next_run_at (UTC-Zeitstempel). recipients listet jede Adresse einschließlich ausstehender, nur Adressen mit dem Status active in recipient_details erhalten Berichte. Was gesendet wurde, zeigt email_reports_deliveries.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/reports/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /reports/:id.json Einen E-Mail-Bericht aktualisieren email_reports_update

Ändert einen E-Mail-Bericht (id aus email_reports_list). Nur die Eingaben, die Sie senden, ändern sich. Das Senden von recipients ersetzt die gesamte Liste. Adressen, die Sie weglassen, werden entfernt, neue folgen denselben Opt-in-Regeln wie bei email_reports_create (Mitglieder sind sofort aktiv, andere erhalten eine Einladungs-E-Mail), und Adressen, die bereits im Bericht stehen, behalten ihren Status. Die Änderung von frequency, hour, weekday oder enabled berechnet next_run_at neu. Setzen Sie enabled auf false, um zu pausieren. Mit email_report_recipients_list sehen Sie den Opt-in-Status, und mit email_report_recipients_resend oder email_report_recipients_delete verwalten Sie einzelne Adressen.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/reports/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /reports/invites/:token/accept.json Eine Berichtseinladung annehmen report_invites_accept

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/reports/invites/:token/accept.json \
  -H "Content-Type: application/json" -d '{…}'
POST /reports/invites/:token/decline.json Eine Berichtseinladung ablehnen report_invites_decline

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/reports/invites/:token/decline.json \
  -H "Content-Type: application/json" -d '{…}'
POST /reports/resubscribe/:token.json Nach einer Abmeldung wieder Berichte erhalten report_resubscribes_confirm

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/reports/resubscribe/:token.json \
  -H "Content-Type: application/json" -d '{…}'
POST /reports/unsubscribe/:token/resubscribe.json Einer Adresse einen Link senden, um wieder Berichte zu erhalten report_resubscribes_create

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/reports/unsubscribe/:token/resubscribe.json \
  -H "Content-Type: application/json" -d '{…}'
POST /reports/unsubscribe/:token.json Eine Adresse von einem E-Mail-Bericht abmelden report_unsubscribes_create

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/reports/unsubscribe/:token.json \
  -H "Content-Type: application/json" -d '{…}'

E-Mail-Einstellungen

POST /email/preferences/:token/unsubscribe.json Alle E-Mails an eine Adresse stoppen, die sich abschalten lassen, mit dem Token aus ihrem Link zu den E-Mail-Einstellungen email_preferences_unsubscribe_all

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/email/preferences/:token/unsubscribe.json \
  -H "Content-Type: application/json" -d '{…}'
POST /email/preferences/:token.json E-Mails an eine Adresse aus- oder einschalten, mit dem Token aus ihrem Link zu den E-Mail-Einstellungen email_preferences_update

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/email/preferences/:token.json \
  -H "Content-Type: application/json" -d '{…}'

Eigene Testimonial-Eigenschaften

POST /sites/:site_id/testimonials/settings/properties.json Eine eigene Eigenschaft zu einer Website hinzufügen testimonial_properties_create

Eine Website hat bis zu 20 aktive Eigenschaften. Der Schlüssel ist nach dem Erstellen fest, weil Formularlinks, Regeln und die API ihn verwenden. Lassen Sie ihn weg, wird er aus dem Label vorgeschlagen.

Berechtigung: sites.manage

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/settings/properties.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/settings/properties/:id.json Eine eigene Eigenschaft und ihre Werte endgültig löschen testimonial_properties_destroy

Das kann nicht rückgängig gemacht werden. Es entfernt die Eigenschaft und ihren Wert von jedem Testimonial. confirm ist der Schlüssel. Eine Eigenschaft, die von einer intelligenten Sammlung oder einer Auto-Tag-Regel verwendet wird, kann nicht gelöscht werden, solange diese sie verwenden. Archivieren ist der übliche Weg, eine auszumustern.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/settings/properties/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/settings/properties.json Die eigenen Eigenschaften einer Website in Anzeigereihenfolge auflisten testimonial_properties_list

Jede nennt ihren Schlüssel, Typ und ihre Auswahlmöglichkeiten, wie viele Testimonials einen Wert haben (filled), ob sich ihr Typ noch ändern kann und welche intelligenten Sammlungen und Auto-Tag-Regeln sie verwenden.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/settings/properties.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/settings/properties/:id.json Eine eigene Eigenschaft ändern, neu anordnen, archivieren oder zurückholen testimonial_properties_update

Nur die gesendeten Eingaben ändern etwas. Das Umbenennen einer Auswahlmöglichkeit benennt sie bei jedem Testimonial um, das sie hat. Eine Eigenschaft, die von einer intelligenten Sammlung oder einer Auto-Tag-Regel verwendet wird, kann nicht archiviert werden, solange diese sie verwenden.

Berechtigung: sites.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/settings/properties/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Empfänger von Testimonial-Anfragen

POST /sites/:site_id/testimonials/requests/:request_id/recipients.json Personen zu einer Anfrage hinzufügen testimonial_request_recipients_create

Bis zu 500 in einem Aufruf. Zu einem Entwurf hinzugefügt, warten sie auf testimonial_requests_send. Zu einer laufenden Anfrage hinzugefügt, erhalten sie sofort ihre erste E-Mail. Die Antwort sagt, wie viele in die Warteschlange kamen und wie viele übersprungen wurden, nach Grund. Das Hinzufügen zu einer laufenden Anfrage sendet E-Mails an Personen außerhalb des Workspaces, daher wird das Mitglied per E-Mail informiert.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/requests/:request_id/recipients.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/requests/:request_id/recipients.json Ausgewählte Personen aus einer Anfrage entfernen testimonial_request_recipients_delete

Nur Personen, an die nichts gesendet wurde (queued oder skipped). Nimmt bis zu 100 Adressen im Body. Über MCP ändert das Tool nichts und antwortet mit der Seite der App, auf der eine Person es tut.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/requests/:request_id/recipients.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/requests/:request_id/recipients/import.json Personen aus einer CSV-Datei zu einer Anfrage hinzufügen testimonial_request_recipients_import

Zwei Aufrufe. Senden Sie die Datei (oder ihren Text als csv), um die Spalten, ihre ersten Zeilen und einen upload_token zu erhalten. Senden Sie dann die Zuordnung von Spaltennummer zu Feld. Bis zu 5 MB und 10.000 Zeilen. Das Hinzufügen zu einer laufenden Anfrage sendet E-Mails an Personen außerhalb des Workspaces, daher wird das Mitglied per E-Mail informiert.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/requests/:request_id/recipients/import.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/requests/:request_id/recipients.json Die Personen einer Anfrage auflisten testimonial_request_recipients_list

Nach dem aktuellen Stand einer Person filtern: status opened bedeutet "geöffnet und weder geklickt noch geantwortet". Die E-Mail-Adresse ist null, außer der Aufrufer darf Inhalte bearbeiten.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/requests/:request_id/recipients.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/requests/:request_id/recipients/resume.json Ausgewählte Personen einer Anfrage fortsetzen testimonial_request_recipients_resume

Sie machen dort weiter, wo sie gestoppt wurden. Nimmt bis zu 100 Adressen im Body. Das sendet E-Mails an Personen außerhalb des Workspaces, daher wird das Mitglied per E-Mail informiert.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/requests/:request_id/recipients/resume.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/requests/:request_id/recipients/stop.json Ausgewählte Personen einer Anfrage stoppen testimonial_request_recipients_stop

Sie erhalten keine weitere E-Mail. Jede behält ihren Status und erhält zusätzlich "stopped". Nimmt bis zu 100 Adressen im Body.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/requests/:request_id/recipients/stop.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Ereignisse

GET /sites/:site_id/events/properties.json Ereigniseigenschaften-Schlüssel der letzten 30 Tage auflisten event_properties_list

Listet die Eigenschaftsschlüssel auf, die eigene Ereignisse in den letzten 30 Tagen getragen haben, mit Anzeigeeinstellungen. Gibt eine Liste von {key, events, display_name, hidden, export_safe} zurück. events gibt an, wie viele eigene Ereignisse den Schlüssel getragen haben (0 bei einem Schlüssel, der Einstellungen hat, aber zuletzt nicht gesehen wurde), display_name ist die Umbenennung (null, wenn keine), hidden besagt, dass der Schlüssel in Berichten ausgeblendet ist, und export_safe besagt, dass er als frei von personenbezogenen Daten markiert ist. Es werden höchstens 200 Schlüssel zurückgegeben, die am meisten genutzten zuerst. Übergeben Sie event, um nur Schlüssel zu sehen, die bei einem rohen Ereignisnamen gesehen wurden. Eigenschaftswerte werden hier nie zurückgegeben, verwenden Sie stats_breakdown mit der Dimension prop:<key> oder events_get für Werte. Einstellungen ändern Sie mit event_properties_update.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/events/properties.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/events/properties.json Einen Ereigniseigenschaften-Schlüssel umbenennen oder ausblenden event_properties_update

Benennt einen Ereigniseigenschaftsschlüssel für die ganze Website um, blendet ihn aus oder markiert ihn als exportsicher. Nur die Eingaben, die Sie senden, ändern sich. key muss der Schlüssel so sein, wie er gespeichert ist (Kleinbuchstaben, Ziffern und Unterstriche, bis zu 64 Zeichen, zum Beispiel plan). display_name ist eine Bezeichnung mit bis zu 64 Zeichen (senden Sie sie leer, um die Umbenennung zu entfernen). hidden entfernt den Schlüssel aus Berichten und aus dem Pivot der Ereignisdetails, während die Daten erhalten bleiben. export_safe erklärt, dass der Schlüssel nie personenbezogene Daten enthält, wodurch seine Werte in Roh-Exporten und Warehouse-Synchronisierungen enthalten sind, setzen Sie es also nur, wenn das stimmt. Umbenennungen und das Ausblenden gelten beim Lesen der Berichte und überschreiben keine gespeicherten Daten. Gibt {key, display_name, hidden, export_safe} zurück. Erfordert die Berechtigung sites.manage. Die Schlüssel listen Sie mit event_properties_list auf.

Berechtigung: sites.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/events/properties.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/events.json Ein Ereignis und seinen Verlauf löschen (läuft im Hintergrund, Bestätigung durch Eingabe des Namens) events_delete

Löscht ein eigenes Ereignis samt seinem gesamten Verlauf dauerhaft. Das kann nicht rückgängig gemacht werden. Der rohe Ereignisname muss als Sicherheitsprüfung zweimal gesendet werden, in name und noch einmal in confirm. Gibt {name, status: queued} mit HTTP 202 zurück, weil die Zeilen im Hintergrund in Stapeln entfernt werden, die Zahlen ändern sich also, bis es fertig ist. Das Ereignis wird außerdem sofort ausgeblendet, und das Löschen wird im Audit-Protokoll festgehalten. Pageviews sind nicht betroffen. Wenn Sie ein Ereignis nur nicht mehr anzeigen möchten, verwenden Sie events_update mit hidden true, wodurch die Daten erhalten bleiben. Erfordert die Berechtigung sites.manage. Namen stammen aus events_list (verwenden Sie das Feld raw_names, wenn das Ereignis umbenannt oder zusammengeführt wurde).

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/events.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/events.json Ereignisse mit Abschlüssen, Besuchen, Conversion-Rate und erstem/letztem Auftreten auflisten events_list

Der Ereignis-Explorer: jedes eigene Ereignis im Zeitraum. Gibt period, events und hidden zurück. Jedes Ereignis hat name (der Anzeigename nach Umbenennungen und Zusammenführungen), raw_names (die Namen, die der Tracker gesendet hat), completions, visits, conversion_rate (Prozent der Besuche, 0 bis 100), revenue (kleinste Währungseinheit, Cent), first_seen und last_seen (ISO-8601-Zeitstempel innerhalb des Zeitraums) und currency (die Umsatzwährung, null, wenn nicht gesetzt). hidden listet ausgeblendete Ereignisse als {name, display_name}. Mit search behalten Sie Ereignisse, deren Name einen Text enthält. Pageviews sind hier keine Ereignisse. Für ein Ereignis im Detail verwenden Sie events_get und für eine nach Rang sortierte, paginierte Liste stats_breakdown mit der Dimension event. Nutzt die gemeinsamen Eingaben period, compare, filters und segment.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/events.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/events/merge.json Mehrere Ereignisse unter einem Anzeigenamen zusammenführen events_merge

Führt mehrere rohe Ereignisnamen zu einem Anzeigenamen zusammen, zum Beispiel signup_click und signup_button zu Signup. Berichte zeigen dann ein einzelnes Ereignis mit den zusammengerechneten Zahlen. Es wirkt beim Lesen der Berichte, und die gespeicherten Ereignisse werden nicht geändert oder gelöscht. Übergeben Sie names (die rohen Namen, mindestens einen) und into (den Anzeigenamen). Gibt ein Einstellungsobjekt pro zusammengeführtem Namen zurück, jeweils {name, display_name, hidden, currency, updated_at}. Zum Rückgängigmachen rufen Sie events_update für einen Namen mit leerem display_name auf. Erfordert die Berechtigung sites.manage. Namen stammen aus events_list (raw_names).

Berechtigung: sites.manage

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/events/merge.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/events/detail.json Ein Ereignis: Diagramm, Eigenschaften-Pivot, Aggregate numerischer Eigenschaften, Seiten und Quellen events_get

Details zu einem eigenen Ereignis. Übergeben Sie name genau so, wie er in events_list angezeigt wird (der Anzeigename nach Umbenennungen und Zusammenführungen). Gibt period, name, raw_names (die dahinterstehenden gespeicherten Namen), interval, totals, setting, series, property_keys, pivot, numeric, pages, channels und referrers zurück. totals hat completions, visits (Besuche, die es ausgelöst haben), revenue (kleinste Währungseinheit, Cent) und conversion_rate (Prozent aller Besuche im Zeitraum). series sind die Abschlüsse je Zeitintervall. setting hat display_name, hidden und currency. property_keys listet die gesehenen Eigenschaftsschlüssel auf. Senden Sie properties (bis zu 3 Schlüssel), um pivot zu erhalten, Zeilen mit {values, completions, visits} für jede Wertekombination, Top 100. numeric liefert Summe, Durchschnitt und weitere Zahlen für Eigenschaften, die Zahlen enthalten. pages, channels und referrers sind die Top 10 der Orte, an denen das Ereignis ausgelöst wurde, als {value, completions, visits}. Für alle Ereignisse verwenden Sie events_list, für eine Eigenschaft über die ganze Website stats_breakdown mit der Dimension prop:<key> und zum Umbenennen events_update.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/events/detail.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/events/settings.json Ein Ereignis umbenennen, ausblenden oder einblenden oder seine Währung festlegen events_update

Ändert, wie ein eigenes Ereignis angezeigt wird: Benennen Sie es mit display_name um, blenden Sie es mit hidden aus oder ein, oder legen Sie die Umsatzwährung fest. name ist der rohe Ereignisname, wie ihn der Tracker gesendet hat (siehe raw_names in events_list). Nur die Eingaben, die Sie senden, ändern sich. Ein leerer display_name entfernt die Umbenennung. hidden entfernt das Ereignis aus Listen und Berichten, während seine Daten erhalten bleiben. currency ist ein dreistelliger ISO-4217-Code wie USD, in Großbuchstaben gespeichert. Das wirkt beim Lesen der Berichte, und es werden keine gespeicherten Ereignisse überschrieben. Gibt {name, display_name, hidden, currency, updated_at} zurück. Um mehrere Ereignisse zu kombinieren, verwenden Sie events_merge, und zum Löschen von Daten events_delete. Erfordert die Berechtigung sites.manage.

Berechtigung: sites.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/events/settings.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Erfassung

POST /embed/ads/e.json Erfassen, dass ein Anzeigenmotiv angezeigt, gesehen oder angeklickt wurde, aufgerufen vom Anzeigen-Loader ad_serving_event

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/embed/ads/e.json \
  -H "Content-Type: application/json" -d '{…}'
GET /embed/ads/:site.json Die Anzeigenslots einer Website und die Anzeigenmotive, die jeder zeigt, aufgerufen vom Anzeigen-Loader ad_serving_slots

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/embed/ads/:site.json
POST /api/overlay.json Die Klicks einer Seite für die Klick-Ansicht auf der Seite, aufgerufen von pa.overlay.js mit seinem Pass click_overlays_read

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/api/overlay.json \
  -H "Content-Type: application/json" -d '{…}'
POST /api/logs.json Server-Zugriffslogs für die Auswertung von KI-Crawlern senden (JSON {lines: [...]} oder Combined-Log-Text, mit dem Crawler-Log-Schlüssel der Website als Bearer-Token) crawler_logs_create

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/api/logs.json \
  -H "Content-Type: application/json" -d '{…}'
POST /api/event.json Einen Browser-Treffer erfassen (wird von /js/pa.js verwendet) ingest_event

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/api/event.json \
  -H "Content-Type: application/json" -d '{…}'
GET /api/experiment.json Ob ein Experiment diesen Besucher auf eine Variantenseite schickt, aufgerufen vom Head-Skript der Experimente ingest_experiment

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/api/experiment.json
GET /js/exp/:site.json Das Skript, das der optionale Experiment-Head-Tag für eine Website lädt ingest_experiment_script

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/js/exp/:site.json
POST /api/survey.json Erfassen, dass eine Umfragekarte angezeigt, geschlossen oder beantwortet wurde ingest_survey

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/api/survey.json \
  -H "Content-Type: application/json" -d '{…}'
GET /api/surveys.json Welche Umfrage auf einer Seite angezeigt wird, aufgerufen vom Ask-Modul des Trackers ingest_surveys

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/api/surveys.json

Experimente

POST /sites/:site_id/experiments.json Ein Experiment als Entwurf anlegen experiments_create

Legt einen A/B- oder Split-URL-Test für eine Website an. Er wird als Entwurf gespeichert und schickt keinen Besucher irgendwohin, bis eine Person ihn in der App startet. Erforderlich sind name, path (die Originalseite, zum Beispiel /pricing), goal_id (aus goals_list) und variants: eine Liste aus { name, path, weight }, wobei die erste Zeile die Originalseite ist (ihr Pfad wird ignoriert) und jede weitere Zeile eine Seite derselben Website. Lassen Sie alle Gewichte weg für eine gleichmäßige Aufteilung, oder senden Sie Gewichte, die zusammen 100 ergeben. Der Free-Tarif erlaubt ein Experiment gleichzeitig mit dem Original und einer Variante. Pro und höher bieten mehr Varianten, automatische Verteilung, Targeting, ein * im Pfad, zusätzliche Ziele, einen geplanten Start und exklusive Gruppen. Erfordert content.write. Gibt das Experiment zurück.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/experiments.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/experiments/:id.json Ein Experiment mit seinen Ergebnissen löschen experiments_delete

Löscht ein Experiment mit seinen Varianten und Ergebnissen dauerhaft. Das lässt sich nicht rückgängig machen. Verwenden Sie experiments_pause, um es zu stoppen und die Ergebnisse zu behalten. Das MCP-Tool führt es nicht aus und antwortet mit human_only und der Seite, auf der eine Person es löscht. Erfordert content.write.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/experiments/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/experiments/:id/duplicate.json Ein Experiment als neuen Entwurf kopieren experiments_duplicate

Erstellt einen Entwurf mit denselben Seiten, Anteilen, demselben Ziel und denselben Regeln wie ein bestehendes Experiment, aber ohne dessen Ergebnisse. Verwenden Sie das, um einen bereits gestarteten Test zu ändern. Zählt wie ein neues Experiment zum Limit des Tarifs. Erfordert content.write. Gibt das neue Experiment zurück.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/experiments/:id/duplicate.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/experiments/:id/end.json Ein Experiment endgültig beenden experiments_end

Beendet ein laufendes oder pausiertes Experiment. Es kann nicht erneut gestartet werden, seine Ergebnisse bleiben erhalten und es zählt nicht mehr zum Limit des Tarifs. Das MCP-Tool führt es nicht aus und antwortet mit human_only und der Seite, auf der eine Person es beendet. Die API führt es aus. Erfordert content.write.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/experiments/:id/end.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/experiments.json Experimente einer Website auflisten experiments_list

Listet die A/B- und Split-URL-Tests einer Website auf, die neuesten zuerst. Filtern Sie mit status (draft, scheduled, running, paused, ended oder all, Standard all). Paginiert mit page und per_page (Standard 25, bis zu 100). Jedes Experiment hat id (exp_...), name, status, path (die Originalseite), goal_id, variants (id, name, path, weight, control), die Regeln für sein Ende und locked (true, wenn der Tarif es nicht mehr abdeckt). Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/experiments.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/experiments/:id/pause.json Ein Experiment pausieren und seine Ergebnisse behalten experiments_pause

Pausiert ein laufendes oder geplantes Experiment. Jeder Besucher bekommt sofort wieder die Originalseite, und die bisherigen Ergebnisse bleiben erhalten. experiments_start setzt es fort. Erfordert content.write. Gibt das Experiment zurück.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/experiments/:id/pause.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/experiments/:id.json Ein Experiment mit seinen Ergebnissen abrufen experiments_get

Gibt ein Experiment anhand seiner id zurück (exp_..., aus experiments_list), mit seinen Ergebnissen: pro Variante die Besuche, Conversions und die Conversion-Rate für das Ziel sowie gegenüber dem Original den Uplift, die wahrscheinliche Spanne des Unterschieds, den p-Wert, ob er beim gewählten Konfidenzniveau signifikant ist, und die Wahrscheinlichkeit, das Original zu schlagen. results.progress zeigt, wie weit das Experiment davon entfernt ist, einen Gewinner nennen zu können, und results.mismatch.found true bedeutet, dass die Besuche nicht wie von den Gewichten vorgegeben verteilt sind, sodass dem Ergebnis nicht zu trauen ist. split schlüsselt die Ergebnisse nach Gerät, Kanal oder Land auf (Pro und höher), und humans_only behält Besuche, die der Bot-Score als wahrscheinlich menschlich einstuft (Business). Ein Besuch zählt für eine Variante, wenn er diese Variante gesehen hat, und eine Conversion zählt erst danach. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/experiments/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/experiments/:id/start.json Ein Experiment starten experiments_start

Startet ein Experiment im Entwurf oder pausiertes Experiment, sodass Besucher der Originalseite beginnen, auf die Varianten geschickt zu werden. Liegt starts_at in der Zukunft, wartet es auf diesen Zeitpunkt. Weil es echte Besucher umleitet, führt das MCP-Tool es nicht aus und antwortet mit human_only und der Seite, auf der eine Person es startet. Die API führt es aus. Erfordert content.write.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/experiments/:id/start.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
PATCH /sites/:site_id/experiments/:id.json Ein Experiment aktualisieren experiments_update

Ändert ein Experiment. Nur die gesendeten Eingaben ändern sich, und variants ersetzt die gesamte Liste. Sobald ein Experiment gestartet ist, können nur name und send_to_winner geändert werden, weil neue Seiten, Anteile oder Ziele mitten im Test das Ergebnis verfälschen würden: Verwenden Sie experiments_duplicate und bearbeiten Sie die Kopie. Erfordert content.write. Gibt das Experiment zurück.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/experiments/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Exporte

POST /workspaces/:workspace_id/exports.json Einen Export in die Warteschlange stellen (wird im Hintergrund erstellt) exports_create

Stellt einen Datenexport in die Warteschlange, der im Hintergrund erstellt wird, und gibt ihn sofort mit dem Status queued zurück. Wählen Sie es, wenn Sie eine Datei brauchen (CSV, JSON, XLSX, NDJSON oder ein ZIP mit Dashboard-Panels), und prüfen Sie mit exports_preview zuerst Spalten und Größe, ohne etwas zu erstellen. Für leichte Zahlen verwenden Sie stattdessen die Stats-Tools. Erforderliche Eingaben sind workspace_id (Pfad), site_id, from und to (YYYY-MM-DD, einschließlich, in der Export-Zeitzone). kind bestimmt, was exportiert wird und welche Optionen gelten. aggregated (Standard) liefert Besuchskennzahlen je Zeitintervall und nutzt grouping, dimensions (bis zu 6), metrics, filters und segment_id. pageviews, events und raw liefern eine Zeile pro Zugriff und nutzen fields, filters und segment_id, erfordern den Tarif Pro oder höher und sind auf 400 Tage begrenzt (raw auf 93 Tage). imported liefert importierte Tagesstatistiken und nutzt nur dimensions. dashboard liefert ein ZIP der Übersichts-Panels (nur Format zip). Erlaubtes file_format je kind ist csv, json oder xlsx für aggregated, pageviews, events und imported, csv oder ndjson für raw und zip für dashboard. Optionen, die für das gewählte kind nicht gelten, werden ignoriert. Ein Workspace kann höchstens 5 Exporte gleichzeitig in der Warteschlange oder in Bearbeitung haben. Die Antwort ist der Export mit id (exp_...), status, row_count und expires_at (null, bis er erstellt ist). Fragen Sie exports_get ab, bis status complete ist, und rufen Sie dann exports_download auf. Der anfragende Benutzer erhält eine E-Mail, wenn er fertig ist, ein Webhook export.ready wird gesendet, und die Aktion wird im Audit-Protokoll festgehalten. Ereigniseigenschaften in der Spalte props enthalten nur Eigenschaften, die als exportsicher markiert sind (siehe event_properties_list).

Berechtigung: analytics.export

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/exports.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /exports/:id.json Einen Export und seine Datei löschen exports_delete

Löscht einen Export und seine erzeugte Datei dauerhaft. Der Download-Link funktioniert sofort nicht mehr, und das kann nicht rückgängig gemacht werden, aber Sie können den Export erneut erstellen. Verwenden Sie es, um einen fertigen oder fehlgeschlagenen Export zu entfernen, den Sie nicht mehr brauchen, da Dateien außerdem 7 Tage nach ihrer Erstellung automatisch gelöscht werden. Die id stammt aus exports_list. Gibt das gelöschte Export-Objekt so zurück, wie es vor dem Löschen war.

Berechtigung: analytics.export · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/exports/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /exports/:id/download.json Einen signierten Link zur Datei abrufen (10 Minuten gültig) exports_download

Gibt einen kurzlebigen Download-Link für einen fertigen Export zurück. Wählen Sie es, nachdem exports_get den Status complete zeigt. Die Antwort hat url (ein signierter Link, der 10 Minuten gültig ist, rufen Sie ihn sofort ab), expires_at (wann der Link nicht mehr funktioniert, ISO 8601), filename und byte_size (Bytes). Es schlägt mit dem Not-found-Fehlercode expired fehl, wenn der Export älter als 7 Tage ist, und mit einem Validierungsfehler, wenn der Export noch in der Warteschlange oder in Bearbeitung ist oder fehlgeschlagen ist (die Fehlermeldung nennt den Grund). Rufen Sie es erneut auf, um einen neuen Link zu erhalten, solange der Export selbst nicht abgelaufen ist. Die id stammt aus exports_list.

Berechtigung: analytics.export

Beispiel
curl https://privatusanalytics.com/exports/:id/download.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /workspaces/:workspace_id/exports.json Exporte auflisten (die Job-Warteschlange) exports_list

Listet die Exporte eines Workspace für die Websites auf, auf die Sie zugreifen können, neueste zuerst. Verwenden Sie es, um eine Export-ID zu finden, zu prüfen, welche Exporte noch laufen, oder um zu sehen, was abgelaufen ist. Filtern Sie mit site_id, status (queued, running, complete, failed oder expired) und kind (aggregated, pageviews, events, imported, raw oder dashboard). Paginiert mit page und per_page (bis zu 100) und gibt data (eine Liste von Exporten, Felder siehe exports_get) plus Paginierungs-meta zurück. Benötigt die workspace_id aus workspaces_list.

Berechtigung: analytics.export

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/exports.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /workspaces/:workspace_id/exports/preview.json Einen Export in der Vorschau anzeigen: die ersten 20 Zeilen und die geschätzte Zeilenanzahl exports_preview

Trockenlauf eines Exports, der nichts erstellt. Er nimmt dieselben Eingaben wie exports_create und gibt kind, file_format, columns (die Spaltennamen in Reihenfolge), rows (bis zu 20 Beispielzeilen als Objekte, nach Spalte benannt) und estimated_rows (eine ungefähre Zeilenzahl der vollständigen Datei) zurück. Beim kind dashboard listen die Beispielzeilen jeden Dateinamen mit seiner Zeilenzahl auf. Verwenden Sie es, um Dimensionen, Felder, Filter und den Datumsbereich zu validieren und zu sehen, wie groß der Export würde, bevor Sie exports_create aufrufen. Es läuft synchron, halten Sie den Datumsbereich also vernünftig. Validierungsfehler sind dieselben wie bei exports_create, einschließlich der Anforderung des Tarifs Pro für zeilenbasierte kinds. Es wird nichts gespeichert und keine E-Mail gesendet.

Berechtigung: analytics.export

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/exports/preview.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /exports/:id.json Einen Export und seinen Status abrufen exports_get

Gibt einen Export samt Fortschritt zurück. Verwenden Sie es, um einen mit exports_create gestarteten Export abzufragen, bis status complete oder failed ist. Die Status sind queued, running, complete, failed und expired. Die Felder umfassen id (exp_...), site_id (pa_...), kind, format, status, params (die gespeicherte Definition des Exports), row_count (null, bis er complete ist), error (gesetzt bei failed), completed_at, expires_at (Dateien werden 7 Tage nach Abschluss aufbewahrt), download_url (nur gesetzt, solange die Datei heruntergeladen werden kann, verwenden Sie exports_download, um einen signierten Link zu erhalten) und created_at. Die id stammt aus exports_create oder exports_list.

Berechtigung: analytics.export

Beispiel
curl https://privatusanalytics.com/exports/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Formulare

POST /sites/:site_id/testimonials/forms.json Ein Formular erstellen testimonial_forms_create

Ein Aufruf enthält das ganze Formular: Schritte, Fragen, Sprunglogik, Einwilligungstext und Sprache. Alles, was weggelassen wird, beginnt mit einem sinnvollen Standard in der Sprache des Formulars, und der Slug stammt aus dem Namen. Der Link ist https://privatus.page/f/<slug>. Das Routing bei niedriger Bewertung und eigenes CSS brauchen den Business-Tarif (ohne ihn 402 plan_limit). Video- und Audioantworten werden der Person ab Pro angeboten.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/forms.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/forms/:id/permanent.json Ein Formular endgültig löschen testimonial_forms_delete

Löscht das Formular, seine Einsendungsdatensätze, seine Belohnung und sein privates Feedback. Die Testimonials, die es gesammelt hat, bleiben erhalten. Es kann nicht rückgängig gemacht werden, daher erledigt es eine Person auf der Seite. Die API nimmt confirm (den Namen oder die ID des Formulars).

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/forms/:id/permanent.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/forms/:id.json Ein Formular in den Papierkorb verschieben testimonial_forms_trash

Sein Link antwortet, dass das Formular geschlossen ist, bis es wiederhergestellt wird. Der Papierkorb wird nach 30 Tagen geleert. Über MCP ändert das Tool nichts und antwortet mit der Seite der App, auf der eine Person es tut.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/forms/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/forms/:id/duplicate.json Ein Formular kopieren, optional in eine andere Sprache testimonial_forms_duplicate

Kopiert jede Einstellung außer dem Slug, den Statistiken und der Belohnung.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/forms/:id/duplicate.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/forms.json Die Formulare einer Website auflisten testimonial_forms_list

Formulare im Papierkorb werden mit trashed true aufgelistet und sonst ausgelassen. Jedes Formular enthält seine Einstellungen, seine Belohnung und wie viele Einsendungen es hatte.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/forms.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/forms/:id/qr.json Den QR-Code eines Formulars als SVG oder PNG abrufen testimonial_forms_qr

Der Code enthält den Link des Formulars mit ?src=qr, sodass Scans als eigener Kanal gezählt werden. Ein geänderter Slug lässt einen gedruckten Code weiter funktionieren.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/forms/:id/qr.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/forms/:id/restore.json Ein Formular aus dem Papierkorb wiederherstellen. Sein Link funktioniert wieder testimonial_forms_restore

Holt ein Formular so aus dem Papierkorb, wie es war, mit seinen Fragen, Einsendungen und privatem Feedback. Sein Link (/f/<slug>) und seine Einbettungen nehmen wieder Antworten an. Der Server antwortet mit 422 und dem Code not_in_trash für ein Formular, das nicht im Papierkorb ist.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/forms/:id/restore.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/forms/:id/share.json Den Link, die QR-Code-Links und die Einbettungs-Snippets eines Formulars abrufen testimonial_forms_share

Gibt den Link, das Inline-Einbettungs-Snippet und das Popup-Einbettungs-Snippet zurück. Die Popup-Eingaben (trigger, label, position, accent) ändern das Popup-Snippet.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/forms/:id/share.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/forms/:id.json Ein Formular mit jedem Schritt, jeder Frage, Regel und Einstellung abrufen testimonial_forms_get

Gibt das ganze Formular so zurück, wie testimonial_forms_create und testimonial_forms_update es annehmen, mit seinem Slug, seinem Link, seiner Belohnung und der Anzahl seiner Einsendungen. Ein Formular im Papierkorb wird hier nicht gefunden: stellen Sie es zuerst wieder her.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/forms/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/forms/:id.json Ein Formular ändern. Nur die gesendeten Eingaben ändern sich testimonial_forms_update

Eine Änderung an einem Schritt, einer Frage oder dem Einwilligungstext erhöht die Version des Formulars, die jeder Einwilligungsnachweis speichert. Ein geänderter Slug lässt den alten Link weiterleiten. Senden Sie questions als die ganze Liste.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/forms/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Funnels

POST /sites/:site_id/funnels.json Einen Funnel erstellen funnels_create

Erstellt einen Funnel, eine Folge von Schritten, die Besuche durchlaufen, pro Besuch gemessen. Übergeben Sie name und steps, eine geordnete Liste von {type, value, match, name}. type ist page, event oder goal. value ist ein Pfad bei Seitenschritten (zum Beispiel /pricing), ein Name eines eigenen Ereignisses bei Ereignisschritten oder eine Ziel-ID (goal_..., aus goals_list) bei Zielschritten. match gilt nur für Seitenschritte und ist exact, prefix, glob (Platzhalter *) oder regex, standardmäßig glob, wenn der Wert ein * enthält, sonst exact. name ist eine optionale Bezeichnung. Schritte mit leerem value werden verworfen. order_mode ist strict (jeder Schritt muss nach dem vorherigen kommen, der Standard) oder any (Schritte in beliebiger Reihenfolge). window ist visit (der Standard) oder day, und beide messen innerhalb eines einzelnen Besuchs, weil keine Besucher-ID gespeichert wird. Es gelten Tariflimits. Free erlaubt 3 Funnels pro Website und 5 Schritte, Pro erlaubt 10 Schritte und Business 20, und ein Funnel braucht mindestens 2 Schritte. Gibt den Funnel mit id (fun_...) zurück. Ergebnisse lesen Sie mit funnels_get. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/funnels.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/funnels/:id.json Einen Funnel löschen funnels_delete

Löscht eine Funnel-Definition dauerhaft. Analytics-Daten bleiben unberührt, aber der Funnel und seine Einstellungen können nicht wiederhergestellt werden, und es gibt kein Rückgängigmachen. Gibt den gelöschten Funnel zurück. IDs (fun_...) stammen aus funnels_list. Um einen Funnel stattdessen zu ändern, verwenden Sie funnels_update. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/funnels/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/funnels.json Funnels mit Einstiegen, Abschlüssen und Rate auflisten funnels_list

Listet die Funnels einer Website mit ihren Kernergebnissen für den Zeitraum auf, nach Name sortiert. Jeder Funnel hat id (fun_...), name, steps, order_mode, window und stats {entered, completed, conversion_rate}, wobei entered die Besuche sind, die Schritt 1 erreicht haben, completed die Besuche, die den letzten Schritt erreicht haben, und conversion_rate ein Prozentwert (0 bis 100) ist. Paginiert mit page und per_page (max. 100, Standard 25). Nutzt die gemeinsamen Eingaben period und filters. Für Details je Schritt verwenden Sie funnels_get, und mit funnels_create fügen Sie einen hinzu.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/funnels.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/funnels/:id.json Funnel-Bericht: Schrittanzahlen, Conversion, Abbrüche, Zeit zwischen den Schritten und wohin die Besuche stattdessen gingen funnels_get

Der Conversion-Bericht eines Funnels für einen Zeitraum. Gibt period, funnel_id, name, order_mode, window, steps, overall_conversion_rate, breakdown und, mit compare, comparison zurück. Jeder Schritt hat index (ab 1), name, type, value, match, count (Besuche, die ihn erreicht haben), step_conversion_rate (Prozent des vorherigen Schritts), overall_conversion_rate (Prozent von Schritt 1), dropoff und dropoff_rate (Besuche, die nach diesem Schritt abgesprungen sind), median_seconds_from_previous (null bei Schritt 1) und next_pages (die Top-5-Seiten, die abgesprungene Besuche als Nächstes besucht haben, mit (exit) für jene, die gegangen sind). Raten sind Prozentwerte von 0 bis 100. Setzen Sie breakdown auf channel, device, country, utm_campaign, utm_source, browser oder os, um die Gesamt-Conversion je Wert zu erhalten (Top 20). comparison hat die Zahlen des anderen Zeitraums, overall_conversion_rate und change (Prozent, null, wenn die frühere Rate 0 war). Seitenfilter werden hier ignoriert, weil sie Besuche verkürzen würden, verwenden Sie stattdessen einen Seitenschritt. Nutzt die gemeinsamen Eingaben period, compare, filters und segment. IDs stammen aus funnels_list.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/funnels/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/funnels/:id.json Einen Funnel aktualisieren funnels_update

Ändert einen Funnel. Nur die Eingaben, die Sie senden, ändern sich. Das Senden von steps ersetzt die gesamte Schrittliste, senden Sie also jeden Schritt in der richtigen Reihenfolge (Format und Schrittlimits sind dieselben wie bei funnels_create, Free erlaubt 5 Schritte, Pro 10 und Business 20, und Zielschritte müssen Ziele dieser Website benennen). Sie können außerdem name, order_mode (strict oder any) und window (visit oder day) ändern. Ergebnisse werden beim Lesen aus der Definition berechnet, die Änderung eines Funnels gilt also sofort für den gesamten Verlauf, und früher angezeigte Zahlen weichen davon ab. Gibt den Funnel zurück. IDs stammen aus funnels_list. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/funnels/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Gespeicherte Testimonial-Ansichten

POST /sites/:site_id/testimonials/views.json Einen Filter, Suchtext, eine Sortierung und ein Layout des Posteingangs unter einem Namen speichern testimonial_saved_views_create

Eine persönliche Ansicht braucht nur analytics.read. Eine geteilte braucht content.write und wird andernfalls mit dem Code not_allowed abgelehnt. Eine angeheftete Ansicht steht mit ihrer Anzahl in der Seitenleiste. Öffnen Sie sie mit testimonials_list und view_id.

Berechtigung: analytics.read

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/views.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/views/:id.json Eine gespeicherte Ansicht löschen. Kein Testimonial wird berührt testimonial_saved_views_destroy

Eine gespeicherte Ansicht ist ein gespeicherter Filter, daher geht nur die Ansicht. Ein Widget oder eine Wall, die von der Ansicht gespeist wird, behält ihre Einstellungen und hat nichts anzuzeigen, bis ihr ein anderer Feed gegeben wird. Eine persönliche Ansicht wird von ihrem Besitzer gelöscht, eine geteilte braucht content.write. Andernfalls wird der Aufruf mit dem Code not_allowed abgelehnt. Über MCP ändert das Tool nichts und antwortet mit der Seite der App, auf der eine Person es tut.

Berechtigung: analytics.read · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/views/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/views.json Die gespeicherten Ansichten einer Website auflisten, die der Aufrufer öffnen kann testimonial_saved_views_list

Gibt die eigenen Ansichten des Aufrufers und jede geteilte zurück, angeheftete zuerst in ihrer Reihenfolge, dann nach Name. scope ist all (der Standard), mine oder shared. Übergeben Sie die ID einer Ansicht als view_id an testimonials_list, um die Testimonials zu lesen, die sie enthält.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/views.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/views/:id.json Eine gespeicherte Ansicht umbenennen, ändern, was sie speichert, sie anheften oder teilen testimonial_saved_views_update

Nur die gesendeten Eingaben ändern sich: name, die gespeicherte Suche (q), filters, sort, layout, columns, position, pinned und shared. Eine persönliche Ansicht wird von ihrem Besitzer geändert. Eine geteilte Ansicht zu ändern und jede Ansicht zu teilen oder das Teilen aufzuheben braucht content.write.

Berechtigung: analytics.read

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/views/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Hilfe und Feedback

POST /help.json Eine Frage oder Feedback an das Team von Privatus Analytics senden support_message_send

Die Nachricht wird zusammen mit den Angaben zu Ihrem Konto, Workspace und Tarif per E-Mail an das Team gesendet. Die Antwort und eine Empfangsbestätigung gehen an die E-Mail-Adresse Ihres Kontos. Bis zu 10 Nachrichten pro Tag.

Berechtigung: member

Beispiel
curl -X POST https://privatusanalytics.com/help.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Importe

DELETE /sites/:site_id/imports/google/connection.json Ihr Google-Analytics-Konto trennen und die gespeicherten Zugriffstoken löschen imports_google_disconnect

Entfernt die gespeicherte Google-Analytics-Verbindung des aufrufenden Mitglieds für den Workspace dieser Website, sodass GA4-Importe erst wieder aus Google lesen können, wenn sie in der App erneut verbunden wird. Bereits importierte Daten bleiben erhalten und werden nur durch Löschen ihres Imports mit imports_delete entfernt. Die Berechtigung wird auf der Google-Seite nicht widerrufen. Es schlägt mit einem Validierungsfehler fehl, wenn keine Verbindung besteht oder solange einer der GA4-Importe des Mitglieds in der Warteschlange oder in Bearbeitung ist. Gibt ein Objekt mit disconnected true zurück. Das Verbinden erfolgt in der App (der Google-Anmeldebildschirm), es gibt kein Tool dafür.

Berechtigung: sites.manage

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/imports/google/connection.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/imports/google/properties.json Google-Analytics-4-Properties zum Import auflisten imports_google_properties

Listet die Google-Analytics-4-Properties auf, die das verbundene Google-Konto des aufrufenden Mitglieds lesen kann. Rufen Sie es vor imports_create mit der Quelle ga4 auf, um die zu verwendende property_id zu erhalten. Gibt eine Liste von Objekten mit id (wie properties/123456789, übergeben Sie sie als property_id), name und account zurück. Es schlägt mit einem Validierungsfehler fehl, wenn das Mitglied Google für diesen Workspace nicht verbunden hat (das geschieht in der App, es gibt kein Tool dafür) oder wenn Google die Anfrage ablehnt. Es führt einen Live-Aufruf an Google aus und ändert nichts.

Berechtigung: sites.manage

Beispiel
curl https://privatusanalytics.com/sites/:site_id/imports/google/properties.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/imports.json Einen Import starten (GA4-Property oder CSV-Upload) imports_create

Startet einen Import historischer Daten aus einem anderen Analytics-Tool in eine Website, im Hintergrund verarbeitet, und gibt den Import mit dem Status queued zurück. Wählen Sie die Quelle ga4, um aus der Google-Analytics-4-API zu laden, wofür eine in der App hergestellte Google-Verbindung, property_id (aus imports_google_properties) und date_from nötig sind. date_to ist standardmäßig der Tag vor dem ersten getrackten Ereignis der Website oder gestern. Andere Quellen (universal_analytics, fathom, simple_analytics, plausible, matomo, umami, clicky) nehmen einen als Eingabe file hochgeladenen CSV-Export (Multipart-Formular-Upload, bis zu 50 MB), was sie über MCP schwer startbar macht und am besten in der App erledigt wird. dimension wird nur benötigt, um die Erkennung zu überschreiben, wonach die CSV-Zeilen aufgeschlüsselt sind, zum Beispiel bei Matomo-Label-Exporten. Importierte Zeilen zählen nie zum Ereigniskontingent und erscheinen nur in Statistiken, wenn Sie include_imported true übergeben. Ein Workspace kann höchstens 5 Importe gleichzeitig in der Warteschlange oder in Bearbeitung haben. Fragen Sie imports_get ab, bis status complete oder failed ist. Erfordert die Berechtigung sites.manage.

Berechtigung: sites.manage

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/imports.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/imports/:id.json Einen Import und alle importierten Daten löschen imports_delete

Löscht einen Import dauerhaft samt jeder Zeile, die er mitgebracht hat, und seiner hochgeladenen Datei. Statistiken, die die importierten Daten einbezogen haben, ändern sich sofort, wenn include_imported aktiv ist, und das kann nicht rückgängig gemacht werden, auch wenn Sie erneut importieren können. Die id stammt aus imports_list und benötigt die site_id. Gibt den gelöschten Import zurück. Erfordert die Berechtigung sites.manage. Vom Tracker erfasste Daten bleiben unberührt.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/imports/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/imports.json Importe einer Website auflisten imports_list

Listet die Importe einer Website auf, neueste zuerst. Verwenden Sie es, um eine Import-ID zu finden oder zu prüfen, ob einer noch läuft. Optional nach status filtern (queued, running, complete oder failed). Paginiert mit page und per_page (bis zu 100). Jeder Eintrag hat id, site_id, source, status, date_from, date_to, rows_imported, error, completed_at und created_at. Details siehe imports_get, und mit imports_create starten Sie einen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/imports.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/imports/:id.json Einen Import und seinen Status abrufen imports_get

Gibt einen Import einer Website zurück, um einen mit imports_create gestarteten Import abzufragen. Die Felder sind id (imp_...), site_id, source, status (queued, running, complete oder failed), date_from und date_to (YYYY-MM-DD, null, wenn unbekannt), rows_imported (Anzahl importierter Tageszeilen), error (gesetzt bei failed), completed_at und created_at. Die id stammt aus imports_create oder imports_list. Importierte Zeilen erscheinen nur in Statistiken, wenn der Statistikaufruf include_imported true setzt.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/imports/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Kampagnen

POST /sites/:site_id/campaigns/costs.json Die Ausgaben für eine Kampagne in einem Monat festlegen campaign_costs_create

Erfasst die Werbeausgaben für eine Kampagne in einem Monat, damit campaigns_list Kosten pro Akquisition und Return on Ad Spend anzeigen kann. Existiert bereits ein Eintrag für dieselbe Kampagne und denselben Monat, wird er ersetzt und nicht dupliziert, daher ist ein doppelter Aufruf ungefährlich. campaign ist der Wert von utm_campaign, wie er in Ihren getrackten Links erscheint, month ist YYYY-MM (ein vollständiges Datum wie 2026-09-15 wird akzeptiert und auf den Monatsersten gesetzt), und amount ist eine Zahl in der Hauptwährungseinheit (1250.50, nicht in der kleinsten Einheit). currency ist ein optionaler 3-stelliger ISO-Code und entspricht standardmäßig der Website-Währung. Die Antwort gibt den gespeicherten Eintrag mit amount_minor in der kleinsten Einheit zurück. Für viele Zeilen auf einmal verwenden Sie campaign_costs_import. Erfordert content.write. Erfordert den Tarif Business oder Enterprise (sonst 402 plan_limit).

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/campaigns/costs.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/campaigns/costs/:id.json Einen Kampagnenkosteneintrag löschen campaign_costs_delete

Löscht einen Ausgabeneintrag dauerhaft, gefunden über seine id aus campaign_costs_list. Das kann nicht rückgängig gemacht werden, und CPA und ROAS für diese Kampagne und diesen Monat enthalten die Ausgaben sofort nicht mehr. Andere Monate und Kampagnen bleiben unberührt. Gibt den gelöschten Eintrag zurück. Erfordert content.write. Erfordert den Tarif Business oder Enterprise (sonst 402 plan_limit).

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/campaigns/costs/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/campaigns/costs/import.json Kampagnenkosten aus CSV importieren (campaign,month,amount[,currency]) campaign_costs_import

Importiert Werbeausgaben per CSV in großen Mengen, der schnelle Weg, viele Kampagnen und Monate zu laden. Senden Sie den CSV-Text in csv (am besten für Tools und API-Aufrufe) oder laden Sie eine Datei in file hoch (nur multipart). Die erste Zeile muss eine Kopfzeile mit campaign, month und amount sein, mit einer optionalen Spalte currency, zum Beispiel campaign,month,amount,currency, dann spring_sale,2026-09,1250.50,USD. month ist YYYY-MM, amount ist in der Hauptwährungseinheit, und currency entspricht standardmäßig der Website-Währung. Zeilen werden nach Kampagne und Monat per Upsert verarbeitet, ein erneuter Import derselben Datei erzeugt also keine Duplikate. Die Limits sind 1 MB und 5.000 Zeilen. Eine fehlerhafte Zeile stoppt den Import nicht. Die Antwort enthält imported (Anzahl gespeicherter Zeilen), failed (Anzahl abgelehnter Zeilen) und errors (die ersten 50 Meldungen, jede mit ihrer Zeile, wobei Zeile 2 die erste Datenzeile ist). Eine fehlende Kopfspalte, eine zu große Datei oder fehlerhaftes CSV lässt die gesamte Anfrage fehlschlagen. Erfordert content.write. Erfordert den Tarif Business oder Enterprise (sonst 402 plan_limit).

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/campaigns/costs/import.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/campaigns/costs.json Kampagnenkosteneinträge auflisten campaign_costs_list

Listet die für eine Website erfassten Ausgabeneinträge auf, der neueste Monat zuerst, dann nach Kampagnenname. Jede Zeile ist eine Kampagne in einem Monat mit amount_minor (Ganzzahl in der kleinsten Währungseinheit, 125050 bedeutet also 1.250,50), currency (ISO 4217, Großbuchstaben), month als YYYY-MM und der Eintrags-id (eine UUID, verwenden Sie sie für campaign_costs_update und campaign_costs_delete). Übergeben Sie campaign, um nur eine Kampagne zu sehen (Treffer ohne Beachtung der Groß- und Kleinschreibung auf den Wert von utm_campaign). Paginiert mit page und per_page (max. 100). Kosten fließen in CPA und ROAS in campaigns_list ein, hier prüfen Sie also, welche Ausgaben eine Kampagne hat. Erfordert analytics.read. Erfordert den Tarif Business oder Enterprise (sonst 402 plan_limit).

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/campaigns/costs.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/campaigns/costs/:id.json Einen Kampagnenkosteneintrag ändern campaign_costs_update

Ändert einen bestehenden Ausgabeneintrag, gefunden über seine id aus campaign_costs_list. Nur die Eingaben, die Sie senden, ändern sich, senden Sie also nur amount, um eine Zahl zu korrigieren. amount ist in der Hauptwährungseinheit (1250.50) und wird in der kleinsten Einheit gespeichert, month ist YYYY-MM, currency ist ein 3-stelliger ISO-Code. Wird campaign oder month auf eine Kombination geändert, die ein anderer Eintrag bereits hat, schlägt das mit einem Validierungsfehler fehl, statt zusammenzuführen. Um die Ausgaben für eine Kampagne und einen Monat zu korrigieren, ohne die id zu kennen, rufen Sie campaign_costs_create auf, das den bestehenden Eintrag ersetzt. Erfordert content.write. Erfordert den Tarif Business oder Enterprise (sonst 402 plan_limit).

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/campaigns/costs/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/campaigns/builder.json Eine URL mit UTM-Tags erstellen und prüfen campaigns_builder

Erstellt eine UTM-getaggte URL für eine Landingpage und prüft die Werte. Es wird nichts gespeichert und keine Daten werden gelesen, daher ist wiederholtes Aufrufen unbedenklich. Übergeben Sie destination (eine vollständige https://-URL) plus utm_source, utm_medium, utm_campaign, utm_content und utm_term nach Bedarf, oder wählen Sie ein Preset (newsletter, social, paid_search und so weiter), das utm_source und utm_medium füllt, wenn Sie sie leer lassen. Gibt url (null bei einem Fehler), valid, destination, preset, die bereinigten utm_*-Werte, issues (eine Liste von {field, level, message}, wobei level error die URL blockiert und warning nur eine Korrektur wie Kleinschreibung vorschlägt) und presets (die verfügbaren Preset-Werte) zurück. Werte werden in Kleinbuchstaben und ohne Leerzeichen bereinigt. Mit campaigns_hygiene finden Sie unsaubere UTM-Werte, die bereits in Ihrem Traffic vorkommen, und mit campaigns_list berichten Sie über Kampagnen, die gelaufen sind. Um einen getaggten Link mit Kurz-URL und Klickzählung zu behalten, verwenden Sie stattdessen links_create.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/campaigns/builder.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/campaigns/hygiene.json UTM-Hygiene: nahezu doppelte Werte, Stilprobleme und unbekannte Quellen campaigns_hygiene

Findet unsaubere UTM-Werte im Traffic eines Zeitraums, damit Sie das Tagging korrigieren können. Gibt period, duplicates, style_issues und unknown_sources zurück. duplicates gruppiert Werte von utm_source, utm_medium oder utm_campaign, die sich nur in Groß- und Kleinschreibung, Leerzeichen oder Satzzeichen unterscheiden (Facebook, facebook und face-book), jeweils als {field, suggestion, variants: [{value, visits}]}, wobei die am häufigsten besuchte Schreibweise vorgeschlagen wird. style_issues listet Werte, die gegen die Konvention Kleinbuchstaben ohne Leerzeichen verstoßen, als {field, value, visits, suggestion} (bis zu 50). unknown_sources listet utm_source-Werte, die kein bekannter Kanal sind, als {value, visits} (bis zu 50). Es werden nur die Top 500 Werte je Feld geprüft. Die Zahlen sind Besuche. Vorschläge sind nur Empfehlungen, und es wird nichts geändert. Um Varianten zu einem Kanal zusammenzuführen, verwenden Sie channel_rules_create. Nutzt die gemeinsamen Eingaben period und filters. Für die Performance verwenden Sie campaigns_list und für saubere getaggte URLs campaigns_builder.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/campaigns/hygiene.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/campaigns.json Kampagnenübersicht mit Conversions, Umsatz, Kosten, CPA und ROAS campaigns_list

Kampagnen-Performance-Bericht auf Basis von utm_campaign, mit Kosten und Return on Ad Spend. Gibt period, currency (die Website-Währung), goal_id und goal_name (das Ziel, dessen Conversions gezählt werden), campaigns, totals und unconverted_costs zurück. Jede Kampagne hat visitors, visits, conversions, conversion_rate (Prozent von 0 bis 100, Conversions geteilt durch Besuche), revenue und sources (Zeilen je Quelle und Medium mit denselben Kennzahlen). Gibt es Kosten (aus campaign_costs_list), hat eine Kampagne außerdem cost, cpa (Kosten pro Conversion, null ohne Conversions) und roas (Umsatz geteilt durch Kosten, ein Verhältnis wie 2.5, null ohne Kosten). Geldbeträge (revenue, cost, cpa) sind Ganzzahlen in der kleinsten Währungseinheit (Cent) der Website-Währung. Kosten werden Kampagnennamen ohne Beachtung der Groß- und Kleinschreibung zugeordnet und anteilig nach den Tagen jedes Monats innerhalb des Zeitraums verteilt. Eine Kampagne mit Kosten, aber ohne Traffic wird trotzdem aufgeführt. Höchstens 100 Kampagnen, die meistbesuchte zuerst. Nur Besuche mit einem utm_campaign sind enthalten. goal_id ist standardmäßig das erste aktive Ziel, übergeben Sie es also ausdrücklich, um ein bestimmtes Ziel zu messen (IDs stammen aus goals_list). Mit campaigns_hygiene bereinigen Sie Namen, und stats_breakdown mit der Dimension utm_campaign liefert eine einfache Traffic-Aufteilung.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/campaigns.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Kanalregeln

POST /sites/:site_id/channel_rules.json Eine Kanalregel hinzufügen channel_rules_create

Fügt eine eigene Kanalregel am Ende der Liste hinzu, sie läuft also nach allen bestehenden Regeln, und die integrierte Taxonomie greift nur, wenn keine Regel passt. channel ist der zuzuweisende Name (bis zu 32 Zeichen, z. B. Partners). conditions ist eine nicht leere Liste von Objekten mit field (referrer_host, utm_source, utm_medium, utm_campaign, ref oder path), operator (is, contains, starts_with oder regex) und value. Alle Bedingungen müssen zutreffen, damit die Regel greift, und der Vergleich ignoriert die Groß- und Kleinschreibung. Eine Bedingung mit leerem value wird verworfen, und eine Regel ohne Bedingungen wird abgelehnt. Ein regulärer Ausdruck, der sich nicht kompilieren lässt, wird abgelehnt. Die Regel gilt innerhalb von Minuten für neue Besuche und ändert den bisherigen Verlauf nicht. Mit channel_rules_move ändern Sie die Reihenfolge, und mit channel_rules_preview testen Sie sie. Erfordert sites.manage.

Berechtigung: sites.manage

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/channel_rules.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/channel_rules/:id.json Eine Kanalregel löschen channel_rules_delete

Löscht eine eigene Kanalregel, gefunden über ihre id aus channel_rules_list. Besuche, die sie bereits klassifiziert hat, behalten ihren Kanal, und neue Besuche fallen auf die nächste passende Regel oder die integrierte Taxonomie zurück. Die übrigen Regeln behalten ihre Reihenfolge. Gibt die gelöschte Regel zurück. Erfordert sites.manage.

Berechtigung: sites.manage

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/channel_rules/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/channel_rules.json Kanalregeln in der Reihenfolge auflisten channel_rules_list

Listet die eigenen Kanalregeln einer Website in Auswertungsreihenfolge auf (position 1 zuerst). Die Regeln werden von oben nach unten auf jeden neuen Besuch angewendet, und die erste Regel, deren Bedingungen alle zutreffen, bestimmt den Kanal. Ein Besuch, der zu keiner Regel passt, erhält den integrierten Kanal (direct, organic_search, paid_search, email und so weiter). Jede Regel hat id (eine UUID), channel (der Name, den sie zuweist), position (ab 1), conditions (eine Liste von Objekten mit field, operator und value, die alle zutreffen müssen) und created_at. Regeln wirken sich nur auf Besuche aus, die nach dem Bestehen der Regel erfasst wurden, und überschreiben nie alte Daten. Mit channel_rules_preview testen Sie einen Beispielbesuch. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/channel_rules.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/channel_rules/:id/move.json Eine Kanalregel nach oben oder unten verschieben channel_rules_move

Verschiebt eine Kanalregel innerhalb der Auswertungsreihenfolge, denn die erste passende Regel gewinnt, und die Reihenfolge entscheidet, welchen Kanal ein Besuch erhält. direction ist up oder down (eine Position) oder top oder bottom (an die Enden). Eine Regel, die schon am Rand steht, bleibt ohne Fehler an ihrem Platz. Die Positionen werden von 1 bis n neu nummeriert, und die aktualisierte Regel wird mit ihrer neuen Position zurückgegeben. Sehen Sie sich zuerst mit channel_rules_list die aktuelle Reihenfolge an. Erfordert sites.manage.

Berechtigung: sites.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/channel_rules/:id/move.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/channel_rules/preview.json Den Kanal für einen Beispiel-Referrer und UTM-Tags in der Vorschau anzeigen channel_rules_preview

Trockenlauf, der Ihnen sagt, welchen Kanal ein Beispielbesuch mit den aktuellen Regeln der Website erhalten würde. Es wird nichts gespeichert. Senden Sie beliebige der Angaben referrer (eine URL oder ein reiner Hostname, die Präfixe www und m werden ignoriert), utm_source, utm_medium, utm_campaign, ref, path (Landing-Pfad wie /pricing) und paid_click (true, wenn die URL eine Click-ID wie gclid enthielt). Das Ergebnis hat channel (der Name des gewinnenden Kanals), custom_rule (true, wenn eine eigene Regel entschieden hat, false, wenn die integrierte Taxonomie entschieden hat) und referrer_host (der bereinigte Hostname, der für den Vergleich verwendet wurde). Ein Referrer auf den eigenen Domains der Website zählt als intern. Verwenden Sie dies nach channel_rules_create oder channel_rules_move, um die Wirkung zu bestätigen. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/channel_rules/preview.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
PATCH /sites/:site_id/channel_rules/:id.json Eine Kanalregel ändern channel_rules_update

Ändert eine eigene Kanalregel, gefunden über ihre id aus channel_rules_list. Senden Sie channel, um den zugewiesenen Kanal umzubenennen, und conditions, um die gesamte Bedingungsliste zu ersetzen (die Liste wird ersetzt, nicht zusammengeführt, senden Sie also jede Bedingung, die Sie behalten möchten). Weggelassene Eingaben bleiben unverändert. Bedingungsfelder, Operatoren und die Gültigkeit regulärer Ausdrücke werden wie bei channel_rules_create geprüft. Die Änderung gilt nur für neue Besuche. Um die Reihenfolge zu ändern, verwenden Sie channel_rules_move. Erfordert sites.manage.

Berechtigung: sites.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/channel_rules/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Konto

GET /account.json Ihr Profil und Ihre Einstellungen abrufen account_get

Gibt das eigene Profil und die Einstellungen des angemeldeten Mitglieds zurück. Verwenden Sie es, um Einstellungen zu lesen, bevor Sie sie mit account_update ändern. Es geht um die Person, nicht um einen Workspace. Tarif und Rechnungen des Workspace finden Sie unter billing_get. Die Felder sind email, unconfirmed_email (gesetzt, solange eine E-Mail-Änderung auf Bestätigung wartet, sonst null), name (nullable), theme (system, light oder dark), default_landing (sites oder last_site), locale (Sprachcode für die angemeldete App), timezone (IANA-Name, nullable), shortcuts_enabled, reduce_motion, product_emails, site_audit_emails, marketing_emails, newsletter (alle Booleans, bei denen true bedeutet, dass abonniert ist), two_factor (Boolean), passkeys (Anzahl der registrierten Passkeys) und created_at (ISO 8601). Eine Sitzung, die nur über den Identity Provider eines Workspace geöffnet wurde, sieht nur email und die Anzeigeeinstellungen.

Berechtigung: member

Beispiel
curl https://privatusanalytics.com/account.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /account.json Ihr Profil und Ihre Einstellungen aktualisieren account_update

Aktualisiert das eigene Profil, die Anzeigeeinstellungen und die E-Mail-Abonnements des angemeldeten Mitglieds. Nur die Eingaben, die Sie senden, ändern sich, alles andere bleibt unverändert. Eine Änderung von email wird nicht sofort wirksam. An die neue Adresse wird eine Bestätigungs-E-Mail gesendet (mit Ratenbegrenzung), und unconfirmed_email zeigt die ausstehende Adresse an, bis sie bestätigt ist. API-Tokens können die E-Mail-Adresse nicht ändern und marketing_emails nach einer Abmeldung nicht wieder einschalten, beides erfordert einen angemeldeten Browser. Das Ausschalten von marketing_emails ist erlaubt. Sitzungen, die über einen Workspace-Identity-Provider geöffnet wurden, dürfen nur die Anzeigeeinstellungen ändern (theme, default_landing, locale, timezone, shortcuts_enabled, reduce_motion). Gibt das aktualisierte Konto in derselben Form wie account_get zurück. Das Konto wird dadurch nicht gelöscht, und Workspace-Einstellungen lassen sich damit nicht ändern.

Berechtigung: member

Beispiel
curl -X PATCH https://privatusanalytics.com/account.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Live

GET /sites/:site_id/live.json Live-Besucher, Aktivitätsstrom und was gerade beliebt ist (letzte 30 Minuten) live_get

Was gerade auf der Website passiert. Gibt live_visitors (Besucher der letzten 5 Minuten), window_minutes (30), sparkline (Besuche pro Minute der letzten 30 Minuten, älteste zuerst, jeweils {minute, visits}), feed (die neueste Aktivität), top_pages, top_referrers, top_countries (jeweils bis zu 8 Zeilen mit {value, visits}) und top_events (bis zu 8 mit {value, completions}) für die letzten 30 Minuten zurück. Feed-Einträge haben occurred_at, kind, name, path, channel, referrer_host, country, device und browser. Sie sind anonym, ohne IP, Stadt oder Besucherspur. feed zeigt standardmäßig alle Zugriffe oder nur Pageviews oder Ereignisse, mit limit Einträgen (Standard 50, bis zur Puffergröße von 100). Die Zahlen werden nicht zwischengespeichert und nehmen keinen Zeitraum entgegen. Übergeben Sie filters (gleiches Format wie bei stats_aggregate), um jede Zahl und den Feed auf die passenden Zugriffe einzugrenzen. Für eine kompakte Ansicht mehrerer Websites verwenden Sie live_wallboard und für einen vollständigen Zeitraum stats_overview.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/live.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/live/wallboard.json Wallboard-Karten (live und heute) für eine oder mehrere Websites live_wallboard

Kompakte Karten mit großen Zahlen für eine oder mehrere Websites, gedacht für einen Bildschirm im Büro. Gibt rotate_seconds, generated_at und sites zurück. Jede Website-Karte hat id (pa_...), name, domain, live_visitors (letzte 5 Minuten), sparkline (pro Minute, letzte 30 Minuten), visitors_today, pageviews_today, bounce_rate_today (Prozent, 0 bis 100), top_pages, top_countries und top_referrers (je 5 Zeilen). Heute bezieht sich auf die eigene Zeitzone der Website, und die Zahlen werden aus Live-Daten gelesen. site_ids listet die einzuschließenden Websites auf (bis zu 12, nur Websites, die Ihr Token öffnen kann), sonst wird die Website im Pfad verwendet. rotate_seconds wird auf 5 bis 300 begrenzt und teilt einem Bildschirm nur mit, wie lange jede Karte angezeigt wird. Für einen teilbaren öffentlichen Bildschirm verwenden Sie wallboard_links_create. Für die vollständige Live-Ansicht einer Website verwenden Sie live_get.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/live/wallboard.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /wallboard/:token.json Wallboard für ein Wallboard-Token (keine Anmeldung nötig) live_public_wallboard

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/wallboard/:token.json

Löschanfragen

POST /sites/:site_id/testimonials/removal_requests/:id/dismiss.json Eine Löschanfrage abweisen testimonial_removal_requests_dismiss

Schließt die Anfrage mit einer Notiz und lässt das Testimonial dort, wo es angezeigt wird. Nichts wird gelöscht, und an die Person, die gefragt hat, wird keine E-Mail gesendet. Die Notiz ist erforderlich. Eine bereits entschiedene Anfrage antwortet mit 422.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/removal_requests/:id/dismiss.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/removal_requests.json Die Löschanfragen einer Website auflisten testimonial_removal_requests_list

Offene Anfragen, sofern kein anderer Status verlangt wird. Die E-Mail, die die Person eingegeben hat, wird nur an einen Aufrufer zurückgegeben, der Inhalte ändern darf.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/removal_requests.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/removal_requests/:id/resolve.json Über eine Löschanfrage entscheiden testimonial_removal_requests_resolve

trash verschiebt das Testimonial in den Papierkorb, was es sofort von jedem Widget, jeder Wall und jeder öffentlichen Seite nimmt und 30 Tage lang rückgängig gemacht werden kann. dismiss lässt es angezeigt und braucht eine Notiz.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/removal_requests/:id/resolve.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/removal_requests/:id.json Eine Löschanfrage abrufen testimonial_removal_requests_get

Eine Anfrage mit dem Testimonial, um das es geht, der Notiz, die die Person hinterlassen hat, ob die eingegebene E-Mail mit der E-Mail beim Testimonial übereinstimmt, wie oft sie gefragt hat, und der Entscheidung, sobald es eine gibt. Die E-Mail selbst wird nur an einen Aufrufer mit content.write zurückgegeben.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/removal_requests/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Mitglieder

POST /workspaces/:workspace_id/invitations.json Personen per E-Mail einladen invitations_create

Lädt eine oder mehrere Personen per E-Mail in einen Workspace ein und sendet jeder eine Einladungs-E-Mail mit einem Link, der 14 Tage gültig ist. emails ist eine Liste von bis zu 50 Adressen (ein durch Komma, Leerzeichen oder Semikolon getrennter String funktioniert im App-Formular ebenfalls), und Adressen, die bereits Mitglieder sind, werden übersprungen, es ist aber ein Fehler, wenn alle bereits Mitglieder sind. Das Einladen einer Adresse mit einer bereits ausstehenden Einladung ersetzt diese Einladung und sendet eine neue E-Mail. role ist eine der Rollen aus members_list (Standard viewer, owner kann nicht eingeladen werden). Verwenden Sie die Rolle custom zusammen mit custom_role_id (die id aus roles_list, Tarif Business). Standardmäßig umfasst der Zugriff alle Websites einschließlich künftiger. Um den Zugriff zu beschränken, setzen Sie all_sites auf false und listen Sie site_ids als öffentliche Website-IDs (pa_...) auf. Ausstehende Einladungen zählen zum Mitgliederlimit des Tarifs (Free erlaubt 3 Mitglieder), und der Aufruf schlägt fehl, wenn das Limit überschritten würde. Einladungs-E-Mails sind ratenbegrenzt. Sie können keine Rolle mit mehr Berechtigungen oder Websites vergeben, als Sie selbst haben. Erfordert members.manage. Gibt die erstellten Einladungen zurück (Felder siehe invitations_list).

Berechtigung: members.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/invitations.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /workspaces/:workspace_id/invitations/:id.json Eine ausstehende Einladung widerrufen invitations_delete

Widerruft eine ausstehende Einladung, sodass ihr Link nicht mehr funktioniert, und gibt den belegten Platz frei. Das Löschen kann nicht rückgängig gemacht werden, laden Sie die Person erneut mit invitations_create ein. Die id (eine uuid) stammt aus invitations_list. Ein auf einige Websites beschränkter Aufrufer kann nur Einladungen widerrufen, die nicht mehr als seine eigenen Websites gewähren. Erfordert members.manage. Gibt die widerrufene Einladung zurück.

Berechtigung: members.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/workspaces/:workspace_id/invitations/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/invitations.json Ausstehende Einladungen auflisten invitations_list

Listet die ausstehenden Team-Einladungen eines Workspace auf, neueste zuerst und paginiert. Angenommene und widerrufene Einladungen werden nicht aufgeführt (für Personen, die beigetreten sind, verwenden Sie members_list), und abgelaufene bleiben, bis sie ersetzt oder widerrufen werden. Erfordert members.manage. Ein auf einige Websites beschränkter Aufrufer sieht nur Einladungen in seiner Reichweite. Jeder Eintrag hat id (uuid, wird von invitations_delete verwendet), email, role, custom_role (der Name der eigenen Rolle, wenn role custom ist, sonst null), all_sites, site_ids (öffentliche Website-IDs pa_..., leer, wenn all_sites true ist), invited_by (die E-Mail-Adresse der einladenden Person), expires_at und created_at.

Berechtigung: members.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/invitations.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
DELETE /workspaces/:workspace_id/members/:id.json Ein Mitglied entfernen (oder den Workspace verlassen) members_delete

Entfernt ein Mitglied aus einem Workspace oder lässt den Aufrufer ihn verlassen, wenn die id seine eigene Mitgliedschaft ist. Das geschieht sofort und kann nicht rückgängig gemacht werden, die Person verliert den Zugriff, ihre API-Tokens für diesen Workspace werden widerrufen, und eine SCIM-Verknüpfung wird entfernt. Ihre Notizen und früheren Audit-Einträge bleiben erhalten. Der Eigentümer kann weder entfernt werden noch den Workspace verlassen, übertragen Sie zuerst das Eigentum mit ownership_transfers_create. Für das Entfernen einer anderen Person ist members.manage nötig, und Sie können niemanden mit mehr Berechtigungen oder Websites entfernen, als Sie selbst haben. Das Verlassen erfordert keine Berechtigung, aber ein Token mit eingeschränkten Berechtigungen oder Websites kann dafür nicht verwendet werden. Die Person kann später mit invitations_create erneut eingeladen werden. Die id (die Mitgliedschafts-uuid) stammt aus members_list. Gibt das entfernte Mitglied zurück.

Berechtigung: member · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/workspaces/:workspace_id/members/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/members.json Workspace-Mitglieder auflisten members_list

Listet die Mitglieder eines Workspace in der Reihenfolge ihres Beitritts auf, paginiert. Verwenden Sie query, um nach Name oder E-Mail-Adresse zu suchen (Teilübereinstimmung, ohne Beachtung der Groß- und Kleinschreibung), und role, um nach Rolle zu filtern. Ausstehende Einladungen sind nicht enthalten (verwenden Sie invitations_list). Jedes Mitglied hat id (die Mitgliedschafts-uuid, verwendet von members_update, members_delete und ownership_transfers_create), email, name (nullable), role, custom_role (Name, null, außer wenn role custom ist), custom_role_id, all_sites, include_future_sites, site_ids (öffentliche Website-IDs pa_..., leer, wenn all_sites true ist), two_factor (ob das Mitglied eine Authenticator-App oder einen Passkey hat), last_active_at (nullable) und created_at. Aufrufer, die auf einige Websites beschränkt sind, sehen nur Mitglieder in ihrer Reichweite.

Berechtigung: member

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/members.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /workspaces/:workspace_id/members/:id.json Die Rolle oder den Website-Zugriff eines Mitglieds ändern members_update

Ändert die Rolle und/oder den Website-Zugriff eines Mitglieds in einem Workspace. Nur die Eingaben, die Sie senden, ändern sich. Um die Rolle zu ändern, senden Sie role (admin, editor, analyst, viewer oder billing, und custom mit custom_role_id aus roles_list im Tarif Business). Die Rolle des Eigentümers kann hier nicht geändert werden, verwenden Sie stattdessen ownership_transfers_create, und Sie können weder Ihre eigene Mitgliedschaft noch jemanden bearbeiten, der Ihnen übergeordnet ist. Um Websites zu beschränken, senden Sie all_sites false zusammen mit site_ids (öffentliche Website-IDs pa_...), und fügen Sie include_future_sites true hinzu, um auch später erstellte Websites zu gewähren. Senden Sie all_sites true, um Zugriff auf jede Website zu geben. Eine site_ids-Liste ohne all_sites false ist ein Fehler bei einem Mitglied, das derzeit jede Website hat. Sie können nicht mehr Berechtigungen oder Websites vergeben, als Sie haben. Erfordert members.manage. Die id stammt aus members_list. Gibt das aktualisierte Mitglied zurück.

Berechtigung: members.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X PATCH https://privatusanalytics.com/workspaces/:workspace_id/members/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/ownership_transfer.json Die Workspace-Inhaberschaft an ein anderes Mitglied übertragen (nur Inhaber, Sie werden Admin) ownership_transfers_create

Überträgt das Eigentum an einem Workspace auf ein anderes Mitglied und stuft den Aufrufer zum Admin herab, was sich kaum rückgängig machen lässt, weil nur der neue Eigentümer es zurückübertragen kann. Nur der aktuelle Eigentümer kann es aufrufen, und ein Token darf nicht auf bestimmte Websites oder Berechtigungen beschränkt sein. membership_id ist die Mitgliedschafts-uuid des neuen Eigentümers aus members_list (keine Benutzer-ID oder E-Mail-Adresse), und die Person muss bereits Mitglied sein, laden Sie sie zuerst ein, falls nicht. Der neue Eigentümer erhält die Rolle owner mit Zugriff auf alle Websites, und die Rolle owner kann nicht über members_update vergeben werden. Ein Free-Workspace kann nicht an jemanden übergeben werden, der bereits einen anderen Free-Workspace besitzt. Die Abrechnung bleibt beim Workspace. Ein Token, der dies aufruft, benötigt members.manage. Gibt den Mitgliedsdatensatz des neuen Eigentümers zurück.

Berechtigung: member · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/ownership_transfer.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Mobile App

GET /workspaces/:workspace_id/app.json Angaben abrufen, die die mobile App zum Öffnen eines Workspaces braucht mobile_bootstraps_get

Gibt für einen Workspace (der Pfad nimmt workspace_id) die Rolle und Berechtigungen des Aufrufers dort zurück, features (welche gesperrten Berichte der Tarif enthält: traffic_quality, bot_detection, external_experiments, campaign_costs, status_pages, traffic_rules, experiment_advanced (die erweiterten Einstellungen eines Experiments) und survey_ai_themes (Themen für die Freitextantworten einer Umfrage) als true oder false, und retention_months als Anzahl der Monate oder null für unbegrenzt), sites_count (die Websites, die der Aufrufer öffnen kann) und min_app_version (die älteste Version der mobilen App, die die API noch bedient). Die mobile App liest sie einmal beim Öffnen eines Workspaces, damit sie einen Bericht, den der Tarif nicht enthält, als nicht enthalten anzeigen kann, statt ihn anzufordern. Erfordert analytics.read.

Berechtigung: analytics.read · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/app.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
DELETE /account/device.json Push-Benachrichtigungen an die mobile App beenden mobile_devices_delete

Entfernt die Push-Registrierung des aufrufenden Logins der mobilen App, sodass das Gerät keine Pushes mehr erhält. Der Login selbst bleibt bestehen, und die App kann sich erneut registrieren. Auch das Abmelden (POST /oauth/revoke mit dem Refresh-Token) entfernt sie. Nur ein Token der mobilen App kann es aufrufen.

Berechtigung: member · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/account/device.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /account/device.json Push-Registrierung der mobilen App abrufen mobile_devices_get

Gibt das Gerät des aufrufenden Logins der mobilen App zurück: registered (false, bis die App ein Push-Token registriert hat), platform, locale, timezone, app_version, kinds (alle verfügbaren Push-Arten), muted_kinds und muted_site_ids (was die Person abgeschaltet hat). Nur ein Token der mobilen App kann es aufrufen.

Berechtigung: member · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/account/device.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /account/device.json Mobile App für Push-Benachrichtigungen registrieren mobile_devices_update

Registriert das Gerät des aufrufenden Logins der mobilen App für Push-Benachrichtigungen oder ändert, was es erhält. Nur die gesendeten Eingaben ändern sich. Der erste Aufruf braucht platform und push_token. Ein Gerät erhält einen Push für uptime (eine Prüfung ist ausgefallen oder wieder erreichbar), alert (ein Alarm wurde ausgelöst oder behoben), site_audit (ein Website-Audit ist abgeschlossen), experiment (ein Experiment hat ein Ergebnis oder ist beendet) und usage (das Monatskontingent ist fast oder ganz aufgebraucht), für jede Website, die sein Mitglied öffnen kann, in jedem Tarif. muted_kinds und muted_site_ids schalten Arten und Websites ab, und jedes ersetzt seine gesamte Liste. Wird ein Push-Token registriert, das ein anderer Login der App hält, wechselt es zu diesem. Nur ein Token der mobilen App kann es aufrufen. Es ist einer der beiden Schreibzugriffe, die ein solches Token ausführen darf.

Berechtigung: member · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X PATCH https://privatusanalytics.com/account/device.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Notizen

POST /sites/:site_id/notes.json Eine Notiz zu einer Website hinzufügen (verwenden Sie die Quelle "deploy" für Release-Webhooks) notes_create

Fügt den Diagrammen einer Website eine Anmerkung hinzu, zum Beispiel einen Launch, eine Kampagne oder ein Release. Verwenden Sie stattdessen workspace_notes_create für eine Notiz, die auf jeder Website erscheint. date ist standardmäßig heute in der Zeitzone der Website, und end_date markiert einen Zeitraum (YYYY-MM-DD). title wird im Diagramm angezeigt, body ist reiner Text, und url kann auf einen PR oder ein Changelog verweisen. color ist eines von neutral, brand, blue, amber, red oder violet, Standard neutral. source ist standardmäßig manual. Deploy-Integrationen senden source deploy, dann ist title standardmäßig ein aus version (einer Release-Version oder einem Commit) gebauter Text, und color ist standardmäßig blue. Erfordert content.write. Gibt die erstellte Notiz zurück (Felder siehe notes_list).

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/notes.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/notes/:id.json Eine Notiz löschen notes_delete

Löscht eine Website-Notiz dauerhaft, sie verschwindet aus den Diagrammen und kann nicht wiederhergestellt werden. Die Notiz muss zu dieser Website gehören, Workspace-weite Notizen werden mit workspace_notes_delete gelöscht. Die id (note_...) stammt aus notes_list. Erfordert content.write. Gibt die gelöschte Notiz zurück.

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/notes/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/notes.json Notizen einer Website auflisten (einschließlich Notizen für den gesamten Workspace) notes_list

Listet die Anmerkungen (Notizen) auf, die in den Diagrammen einer Website angezeigt werden, neuestes Datum zuerst und paginiert. Es gibt die eigenen Notizen der Website plus Workspace-weite Notizen zurück, die für jede Website gelten. Filtern Sie mit from und to (YYYY-MM-DD, eine Notiz passt, wenn ihr Datum im Bereich liegt), source (manual, deploy, system, import oder incident) und query (eine Suche in title, body und url ohne Beachtung der Groß- und Kleinschreibung). Für die Workspace-Ansicht über alle Websites verwenden Sie workspace_notes_list. Jede Notiz hat id (note_...), site_id (die öffentliche Website-ID pa_..., null bei einer Workspace-weiten Notiz), date, end_date (null bei einem einzelnen Tag), title, body (nullable, reiner Text), url (nullable), color (neutral, brand, blue, amber, red oder violet), source und created_at. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/notes.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/notes/:id.json Eine Notiz abrufen notes_get

Gibt eine Notiz anhand ihrer id (note_..., aus notes_list) für eine Website zurück, einschließlich Workspace-weiter Notizen, die für die Website gelten. Eine Notiz ist eine datierte Anmerkung, die in Diagrammen angezeigt wird, zum Beispiel ein Launch, eine Kampagne oder ein Deploy. Die Felder sind id, site_id (null, wenn Workspace-weit), date und end_date (YYYY-MM-DD, end_date null bei einem einzelnen Tag), title, body (nullable), url (nullable), color (neutral, brand, blue, amber, red oder violet), source (manual, deploy, system, import oder incident) und created_at. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/notes/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/notes/:id.json Eine Notiz bearbeiten notes_update

Bearbeitet eine Website-Notiz und ändert nur die Felder, die Sie senden (date, end_date, title, body, url, color). source kann nicht geändert werden. Das Senden einer leeren url entfernt den Link, und ein date von null wird ignoriert. Die Notiz muss zu dieser Website gehören, Workspace-weite Notizen werden mit workspace_notes_update bearbeitet. Die id (note_...) stammt aus notes_list. Erfordert content.write. Gibt die aktualisierte Notiz zurück.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/notes/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/notes.json Eine Notiz für den gesamten Workspace hinzufügen (auf jeder Website angezeigt) workspace_notes_create

Fügt eine Workspace-weite Anmerkung hinzu, die in den Diagrammen jeder Website im Workspace erscheint, zum Beispiel ein unternehmensweiter Launch oder ein Ausfall. Sie wird ohne Website erstellt (site_id ist null). Für eine Notiz auf einer einzelnen Website verwenden Sie notes_create. date ist standardmäßig heute in der Zeitzone des Workspace, end_date markiert einen Zeitraum (YYYY-MM-DD), und color ist eines von neutral, brand, blue, amber, red oder violet. Erfordert content.write, und ein auf einige Websites beschränkter Aufrufer kann keine Workspace-weiten Notizen erstellen. Gibt die erstellte Notiz zurück.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/notes.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /workspaces/:workspace_id/notes/:id.json Eine Workspace-Notiz löschen workspace_notes_delete

Löscht eine Workspace-weite Notiz dauerhaft, sodass sie aus den Diagrammen jeder Website verschwindet, und sie kann nicht wiederhergestellt werden. Hier können nur Notizen ohne Website gelöscht werden, für eine Website-Notiz verwenden Sie notes_delete. Die id (note_...) stammt aus workspace_notes_list. Erfordert content.write, und ein auf einige Websites beschränkter Aufrufer kann keine Workspace-weiten Notizen löschen. Gibt die gelöschte Notiz zurück.

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/workspaces/:workspace_id/notes/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/notes.json Notizen eines Workspaces auflisten workspace_notes_list

Listet die Anmerkungen eines gesamten Workspace auf, neuestes Datum zuerst und paginiert. Es gibt Workspace-weite Notizen zurück (die auf jeder Website erscheinen) plus die Notizen jeder Website, auf die der Aufrufer zugreifen kann, prüfen Sie also site_id bei jedem Eintrag (null bedeutet Workspace-weit). Für eine Website verwenden Sie notes_list. Filtern Sie mit from und to (YYYY-MM-DD), source (manual, deploy, system, import oder incident) und query (durchsucht title, body und url). Die Felder sind id (note_...), site_id, date, end_date, title, body, url, color (neutral, brand, blue, amber, red oder violet), source und created_at. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/notes.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /workspaces/:workspace_id/notes/:id.json Eine Workspace-Notiz bearbeiten workspace_notes_update

Bearbeitet eine Workspace-weite Notiz und ändert nur die Felder, die Sie senden (date, end_date, title, body, url, color). Hier können nur Notizen ohne Website bearbeitet werden, für eine Website-Notiz verwenden Sie notes_update. Die id (note_...) stammt aus workspace_notes_list. Erfordert content.write, und ein auf einige Websites beschränkter Aufrufer kann keine Workspace-weiten Notizen bearbeiten. Gibt die aktualisierte Notiz zurück.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/workspaces/:workspace_id/notes/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Performance

GET /sites/:site_id/performance.json Web Vitals: p75-Scorecard, Tagestrend und Aufschlüsselungen nach Seite, Gerät, Browser und Land performance_report

Web-Vitals-Bericht von echten Besuchern. Gibt period, metric, sample_rate, scorecard, trend und breakdowns zurück. scorecard hat eine Zeile für jeden von LCP, INP, CLS, FCP und TTFB mit p75 (dem 75. Perzentil, in Millisekunden außer bei CLS, das ein einheitenloser Score ist), samples, rating (good, needs_improvement oder poor, null ohne Daten), good, needs_improvement und poor (Prozent der Stichproben), previous_p75, change (Prozent gegenüber dem früheren Zeitraum, null, wenn unbekannt) und thresholds [Grenze für good, Grenze für poor]. trend ist das tägliche p75 der gewählten Metrik als {date, p75, samples}. breakdowns hat page, device, browser und country, jeweils mit bis zu limit Zeilen (Standard 10, max. 100) der gewählten Metrik als {value, p75, samples, rating, slow_share, poor}, die schlechtesten und meistbesuchten zuerst. Wählen Sie metric mit genau einem von LCP, INP, CLS, FCP oder TTFB in Großbuchstaben (Standard LCP). sample_rate ist der Anteil der Besuche, die Vitals melden, die Zahlen sind also Stichproben und nicht alle Besuche. Nutzt die gemeinsamen Eingaben period, compare, filters und segment. Für die Vitals einer einzelnen Seite verwenden Sie pages_detail.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/performance.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Privates Feedback

GET /sites/:site_id/testimonials/forms/:form_id/feedback.json Das private Feedback eines Formulars auflisten, neuestes zuerst testimonial_feedback_list

Privates Feedback ist eine Antwort mit einer Bewertung von 1 bis 3 bei einem Formular mit aktiviertem Routing bei niedriger Bewertung (ab Business). Es ist nie ein Testimonial, nie öffentlich und wird nie gezählt.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/forms/:form_id/feedback.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/forms/:form_id/feedback/:id/mark_read.json Eine private Feedback-Antwort als gelesen oder wieder als ungelesen markieren testimonial_feedback_mark_read

Setzt read_at bei einer privaten Feedback-Antwort oder löscht es mit read false. Eine bereits gelesene Antwort zu markieren behält den Zeitpunkt, zu dem sie zuerst gelesen wurde. An die Person, die sie geschrieben hat, wird nichts gesendet.

Berechtigung: analytics.read

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/forms/:form_id/feedback/:id/mark_read.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/forms/:form_id/feedback/:id.json Eine private Feedback-Antwort abrufen testimonial_feedback_get

Gibt die Bewertung, den Text, den Namen, den die Person angegeben hat, und wann sie gelesen wurde zurück. Privates Feedback ist eine Antwort mit niedriger Bewertung bei einem Formular mit aktiviertem Routing bei niedriger Bewertung. Es ist nie ein Testimonial und nie öffentlich.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/forms/:form_id/feedback/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Rollen

POST /workspaces/:workspace_id/roles.json Eine eigene Rolle erstellen roles_create

Erstellt eine eigene Rolle, einen benannten Satz von Berechtigungen, den Sie Mitgliedern über invitations_create oder members_update mit role custom und der id der Rolle als custom_role_id geben können. Erfordert den Tarif Business und members.manage. permissions muss mindestens einen Namen aus den erlaubten Werten auflisten (analytics.read, analytics.export, content.write, sites.manage, uptime.manage, members.manage, tokens.manage, billing.manage, workspace.manage), und Sie können keine Berechtigung aufnehmen, die Sie selbst nicht haben. Gibt die Rolle zurück (Felder siehe roles_list).

Berechtigung: members.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/roles.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /workspaces/:workspace_id/roles/:id.json Eine eigene Rolle löschen (darf nicht verwendet werden) roles_delete

Löscht eine eigene Rolle. Das kann nicht rückgängig gemacht werden, und es schlägt fehl, solange noch ein Mitglied oder eine ausstehende Einladung die Rolle verwendet. Verschieben Sie diese Personen also zuerst mit members_update auf eine andere Rolle (finden Sie sie mit members_list). Die integrierten Rollen können nicht gelöscht werden. Die id (uuid) stammt aus roles_list. Erfordert members.manage. Gibt die gelöschte Rolle zurück.

Berechtigung: members.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/workspaces/:workspace_id/roles/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/roles.json Eigene Rollen auflisten roles_list

Listet die eigenen Rollen eines Workspace auf, nach Name sortiert. Eigene Rollen sind eine Funktion des Tarifs Business, die Berechtigungen unter einem eigenen Namen bündelt, und die integrierten Rollen (owner, admin, editor, analyst, viewer, billing) werden hier nicht aufgeführt. Jede Rolle hat id (uuid, verwendet als custom_role_id in invitations_create und members_update), name, permissions (Namen wie analytics.read, content.write, members.manage), members (die Anzahl der Mitglieder, die sie haben) und created_at. Aufrufer, die auf einige Websites beschränkt sind, sehen nur Rollen in ihrer Reichweite.

Berechtigung: member

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/roles.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /workspaces/:workspace_id/roles/:id.json Eine eigene Rolle aktualisieren roles_update

Benennt eine eigene Rolle um und/oder ersetzt ihre gesamte Berechtigungsliste. Nur die Eingaben, die Sie senden, ändern sich, und permissions ersetzt die bestehende Liste, statt etwas hinzuzufügen. Die Änderung gilt sofort für jedes Mitglied und jede ausstehende Einladung mit dieser Rolle. Sie können nur eine Rolle bearbeiten, deren Berechtigungen Sie vollständig haben, und ein auf einige Websites beschränkter Aufrufer braucht Reichweite über jede Website ihrer Inhaber. Erfordert members.manage. Die id (uuid) stammt aus roles_list. Gibt die aktualisierte Rolle zurück.

Berechtigung: members.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X PATCH https://privatusanalytics.com/workspaces/:workspace_id/roles/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

SCIM

POST /scim/v2/Users.json Einen Benutzer bereitstellen scim_users_create

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/scim/v2/Users.json \
  -H "Content-Type: application/json" -d '{…}'
DELETE /scim/v2/Users/:id.json Die Bereitstellung eines Benutzers aufheben scim_users_delete

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/scim/v2/Users/:id.json \
  -H "Content-Type: application/json" -d '{…}'
GET /scim/v2/Users.json Bereitgestellte Benutzer auflisten scim_users_list

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/scim/v2/Users.json
GET /scim/v2/Users/:id.json Einen bereitgestellten Benutzer abrufen scim_users_get

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/scim/v2/Users/:id.json
PATCH /scim/v2/Users/:id.json Einen Benutzer aktualisieren (PATCH active, name) scim_users_update

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X PATCH https://privatusanalytics.com/scim/v2/Users/:id.json \
  -H "Content-Type: application/json" -d '{…}'

SSO

POST /workspaces/:workspace_id/sso/activate.json Eine getestete SSO-Konfiguration aktivieren sso_activate

Schaltet SSO für den Workspace ein. Die Konfiguration muss bereits den Status tested haben, was nach einer erfolgreichen Test-Anmeldung eintritt (gestartet über die SSO-Einstellungsseite des Workspace in der App, sie erfordert eine Browser-Anmeldung und kann von hier aus nicht ausgeführt werden), oder bereits active sein. Nur Tarif Business. Nach der Aktivierung können sich Mitglieder per SSO anmelden, und das Setzen von enforced über sso_update verlangt dann SSO für jede Anmeldung. Es schlägt fehl, wenn die Konfiguration ungetestet ist oder der Tarif kein SSO hat. Erfordert workspace.manage. Gibt die Konfiguration mit dem Status active zurück (siehe sso_get).

Berechtigung: workspace.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/sso/activate.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/sso/deactivate.json SSO ausschalten (zurück in den Entwurf) sso_deactivate

Schaltet SSO aus, indem die Konfiguration auf draft zurückgesetzt und enforced geleert wird, sodass Mitglieder zu den anderen Anmeldemethoden des Workspace zurückkehren. Die Details des Providers bleiben erhalten. Eine erneute Aktivierung erfordert eine neue Test-Anmeldung und sso_activate. Stellen Sie zuerst sicher, dass Mitglieder eine andere Möglichkeit zur Anmeldung haben. Das funktioniert in jedem Tarif. Erfordert workspace.manage. Gibt die Konfiguration mit dem Status draft zurück (siehe sso_get).

Berechtigung: workspace.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/sso/deactivate.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/sso/scim_token.json Ein neues SCIM-Token erzeugen (nur einmal angezeigt) sso_scim_token

Berechtigung: workspace.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/sso/scim_token.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/sso.json SSO-Einstellungen abrufen sso_get

Gibt die Single-Sign-on-Konfiguration (SSO) des Workspace zurück oder einen leeren Entwurf, wenn keine existiert. Die Felder sind protocol (saml oder oidc), status (draft, testing, tested oder active), enforced (Mitglieder müssen sich über SSO anmelden), domains (E-Mail-Domains, die dieses SSO verwenden), idp_sso_url und idp_entity_id für SAML, oidc_issuer und oidc_client_id für OIDC, default_role und jit_provisioning (Mitglieder bei der ersten SSO-Anmeldung anlegen) sowie scim_enabled. Secrets werden nie zurückgegeben, nur die Booleans idp_cert_present und oidc_client_secret_present. SSO ist eine Funktion des Tarifs Business. Erfordert workspace.manage.

Berechtigung: workspace.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/sso.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /workspaces/:workspace_id/sso.json SSO-Einstellungen erstellen oder aktualisieren sso_update

Erstellt oder bearbeitet die SSO-Einstellungen des Workspace. Nur Tarif Business. Nur die Eingaben, die Sie senden, ändern sich. Für SAML senden Sie protocol saml mit idp_sso_url, idp_entity_id und idp_cert (PEM-Text). Für OIDC senden Sie protocol oidc mit oidc_issuer, oidc_client_id und oidc_client_secret, das nur schreibbar ist, wobei ein leerer Wert das bestehende Secret behält. domains listet die E-Mail-Domains auf, die dieses SSO verwenden. default_role ist die Rolle, die Mitglieder erhalten, die durch Provisionierung bei der ersten Anmeldung oder durch SCIM angelegt werden (nicht owner oder custom), und Sie können nur eine Rolle setzen, die Sie selbst vergeben könnten. Die Änderung eines beliebigen Details des Identity Providers setzt eine aktive oder getestete Konfiguration auf draft zurück und schaltet enforced aus, sie muss also erneut getestet werden, bevor sso_activate funktioniert. enforced true wird nur akzeptiert, solange status active ist. Erfordert workspace.manage. Gibt die Konfiguration zurück (siehe sso_get).

Berechtigung: workspace.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X PATCH https://privatusanalytics.com/workspaces/:workspace_id/sso.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Segmente

POST /sites/:site_id/segments.json Filter als Segment speichern segments_create

Speichert eine Menge von Filtern als benanntes Segment, das über segment_id in jedem Stats-Tool wiederverwendet werden kann. Übergeben Sie name und filters (alle Bedingungen müssen zutreffen, und eine Gruppe {any: [...]} trifft zu, wenn eine von mehreren zutrifft, Dimensionsnamen und Operatoren siehe die Eingabe filters). Die Filter werden geprüft, ein unbekannte Dimension oder ein fehlerhafter Wert liefert also einen 422 mit einer Meldung pro Zeile. Prüfen Sie mit segments_preview zuerst, was ein Filtersatz trifft. shared ist standardmäßig true und macht das Segment für alle mit Zugriff auf die Website sichtbar, bei false bleibt es privat für Sie. Gibt das Segment mit id (seg_...), site_id, name, description, filters, summary (eine Beschreibung in Alltagssprache), shared, mine und Zeitstempeln zurück. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/segments.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/segments/:id.json Ein Segment löschen segments_delete

Löscht ein gespeichertes Segment dauerhaft. Dashboards und Links, die es verwenden, fallen auf den gesamten Traffic zurück. Analytics-Daten bleiben unberührt, und es gibt kein Rückgängigmachen. Gibt das gelöschte Segment zurück. IDs (seg_...) stammen aus segments_list. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/segments/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/segments.json Segmente auflisten, die Sie auf einer Website verwenden können segments_list

Listet die gespeicherten Segmente einer Website auf, nach Name sortiert: die geteilten plus Ihre eigenen privaten. Jedes Segment hat id (seg_...), site_id, name, description, filters, summary, shared, mine und Zeitstempel. Übergeben Sie eine id als segment_id an ein beliebiges Stats-Tool (stats_aggregate, stats_breakdown, funnels_get und andere), um die Filter des Segments anzuwenden. Paginiert über die üblichen Seitenparameter. Mit segments_create fügen Sie eines hinzu.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/segments.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/segments/preview.json Filter in einfacher Sprache beschreiben und die Besucher zählen, auf die sie in den letzten 30 Tagen zutrafen segments_preview

Prüft einen Filtersatz, ohne etwas zu speichern. Gibt summary (die Filter in Alltagssprache), visitors (wie viele Besucher in den letzten 30 Tagen getroffen wurden, null, wenn die Filter ungültig sind), period (immer 30d) und filters (die bereinigte, kanonische Form, die gespeichert würde) zurück. Filter verwenden dasselbe Format wie segments_create, einschließlich {any: [...]}-Gruppen und optional ausgeschriebener Namen für Länder, Kanäle und Ziele, die in Codes und IDs umgewandelt werden. Ungültige Filter liefern einen 422, der die Zeile nennt. Verwenden Sie es, um Filter vor segments_create auszuprobieren, und stats_aggregate mit filters für Zahlen über einen anderen Zeitraum.

Berechtigung: analytics.read

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/segments/preview.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/segments/:id.json Ein Segment abrufen segments_get

Gibt ein gespeichertes Segment zurück: id (seg_...), site_id, name, description, filters (die gespeicherten Bedingungen), summary (eine Beschreibung in Alltagssprache wie Besucher aus den USA auf Mobilgeräten), shared (für alle mit Website-Zugriff sichtbar), mine (true, wenn Sie es erstellt haben) und Zeitstempel. Sie können geteilte Segmente und Ihre eigenen privaten lesen. IDs stammen aus segments_list. Um zu zählen, wie viele Besucher ein Filtersatz trifft, verwenden Sie segments_preview.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/segments/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/segments/:id.json Ein Segment umbenennen oder seine Filter oder Freigabe ändern segments_update

Benennt ein Segment um, ersetzt seine Filter oder ändert, wer es sehen kann. Nur die Eingaben, die Sie senden, ändern sich. Das Senden von filters ersetzt alle bestehenden Filter, im selben Format und mit denselben Prüfungen wie bei segments_create. shared false macht es privat für seinen Ersteller. description kann durch Senden eines leeren Werts geleert werden. Alles, was das Segment verwendet, etwa Stats-Aufrufe mit seiner segment_id, ändert sich sofort. Gibt das Segment zurück. IDs stammen aus segments_list. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/segments/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Sponsorenbericht

GET /sponsor/:token.json Ein Sponsorenbericht, über das Token seines Links ad_reports_get

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/sponsor/:token.json

Sponsorenberichte

Statusseiten

GET /status/:slug/confirm/:token.json Ein Abonnement über den per E-Mail gesendeten Link bestätigen public_status_pages_confirm

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/status/:slug/confirm/:token.json
GET /status/:slug.json Öffentliche Statusseite: aktueller Status, 90-Tage-Verfügbarkeitsbalken, Vorfälle und Beiträge public_status_pages_get

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/status/:slug.json
POST /status/:slug/subscribers.json Eine E-Mail-Adresse abonnieren (Double-Opt-in) public_status_pages_subscribe

Browser-Clients senden ein Cloudflare-Turnstile-Token als `cf-turnstile-response`. Anfragen mit einem API-Token benötigen keines.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/status/:slug/subscribers.json \
  -H "Content-Type: application/json" -d '{…}'
POST /status/:slug/unsubscribe/:token.json Mit dem per E-Mail gesendeten Token abbestellen public_status_pages_unsubscribe

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/status/:slug/unsubscribe/:token.json \
  -H "Content-Type: application/json" -d '{…}'
POST /status_pages/:status_page_id/posts.json Ein Vorfall-Update veröffentlichen (benachrichtigt Abonnenten per E-Mail) status_page_posts_create

Veröffentlicht ein Vorfall-Update auf einer Statusseite und sendet standardmäßig eine E-Mail an ihre bestätigten Abonnenten. Wählen Sie es, um einen Vorfall anzukündigen oder zu aktualisieren, und verwenden Sie status_page_posts_update, um einen bestehenden Vorfall weiterzuführen (zum Beispiel auf resolved), statt einen neuen Beitrag zu erstellen. Pflicht ist title (max. 200 Zeichen). status ist einer von investigating (Standard), identified, monitoring oder resolved. body ist reiner Text (max. 10.000 Zeichen), posted_at ist eine ISO-8601-Zeit, standardmäßig jetzt, und notify (Standard true) steuert die E-Mail. E-Mails werden nur für eine veröffentlichte Seite gesendet und sind pro Seite ratenbegrenzt, über dem Limit wird der Beitrag weiterhin veröffentlicht, aber niemand per E-Mail benachrichtigt. Die status_page_id stammt aus status_pages_list. Erfordert die Berechtigung uptime.manage. Gibt den Beitrag mit id (spp_...), title, body, status, posted_at und updated_at zurück.

Berechtigung: uptime.manage

Beispiel
curl -X POST https://privatusanalytics.com/status_pages/:status_page_id/posts.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /status_pages/:status_page_id/posts/:id.json Einen Statusseiten-Beitrag löschen status_page_posts_delete

Löscht einen Vorfall-Beitrag einer Statusseite dauerhaft. Er verschwindet sofort von der öffentlichen Seite, und das kann nicht rückgängig gemacht werden. Es wird keine E-Mail gesendet. Die id stammt aus status_page_posts_list. Erfordert die Berechtigung uptime.manage. Gibt den gelöschten Beitrag zurück.

Berechtigung: uptime.manage

Beispiel
curl -X DELETE https://privatusanalytics.com/status_pages/:status_page_id/posts/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /status_pages/:status_page_id/posts.json Beiträge einer Statusseite auflisten status_page_posts_list

Listet die Vorfall-Beiträge einer Statusseite auf, neueste zuerst nach posted_at. Verwenden Sie es, um eine Beitrags-ID zu finden oder den Vorfallsverlauf zu sehen. Optional nach status filtern (investigating, identified, monitoring oder resolved). Paginiert mit page und per_page (bis zu 100). Jeder Beitrag hat id (spp_...), title, body (null, wenn leer), status, posted_at und updated_at. Die status_page_id stammt aus status_pages_list.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/status_pages/:status_page_id/posts.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /status_pages/:status_page_id/posts/:id.json Einen Statusseiten-Beitrag bearbeiten status_page_posts_update

Bearbeitet einen Vorfall-Beitrag. Nur die Eingaben, die Sie senden, ändern sich, senden Sie also nur status, um einen Vorfall zu beheben. Abonnenten werden nur dann per E-Mail benachrichtigt, wenn sich der Status tatsächlich ändert und notify nicht false ist (Standard true). Das alleinige Bearbeiten von title oder body sendet keine E-Mail. E-Mails gehen an bestätigte Abonnenten einer veröffentlichten Seite und sind pro Seite ratenbegrenzt. Gültige Werte für status sind investigating, identified, monitoring und resolved. Die id stammt aus status_page_posts_list. Erfordert die Berechtigung uptime.manage. Gibt den aktualisierten Beitrag zurück.

Berechtigung: uptime.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/status_pages/:status_page_id/posts/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /status_pages/:status_page_id/subscribers/:id.json Einen Abonnenten entfernen status_page_subscribers_delete

Entfernt einen E-Mail-Abonnenten von einer Statusseite, sodass er keine Vorfall- und Verfügbarkeits-E-Mails mehr erhält. Das kann nicht rückgängig gemacht werden, aber die Person kann sich auf der öffentlichen Seite erneut anmelden. Die id ist die Abonnenten-ID aus status_page_subscribers_list (eine einfache UUID, keine ID mit Präfix). Erfordert die Berechtigung uptime.manage. Gibt den entfernten Abonnenten zurück.

Berechtigung: uptime.manage

Beispiel
curl -X DELETE https://privatusanalytics.com/status_pages/:status_page_id/subscribers/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /status_pages/:status_page_id/subscribers.json Abonnenten einer Statusseite auflisten status_page_subscribers_list

Listet die E-Mail-Abonnenten einer Statusseite auf, nach E-Mail-Adresse sortiert. Verwenden Sie confirmed true, um nur Personen zu sehen, die ihre Adresse bestätigt haben (nur sie erhalten E-Mails), oder confirmed false für ausstehende. Paginiert mit page und per_page (bis zu 100). Jeder Eintrag hat id (eine UUID, verwendet von status_page_subscribers_delete), email, confirmed_at (null, solange ausstehend) und created_at. Die status_page_id stammt aus status_pages_list. Erfordert die Berechtigung uptime.manage und gibt personenbezogene Daten zurück (E-Mail-Adressen). Erfordert den Tarif Business oder Enterprise (sonst 402 plan_limit).

Berechtigung: uptime.manage

Beispiel
curl https://privatusanalytics.com/status_pages/:status_page_id/subscribers.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /workspaces/:workspace_id/status_pages.json Eine Statusseite erstellen status_pages_create

Erstellt eine öffentliche Statusseite für einen Workspace, die ausgewählte Verfügbarkeitsprüfungen, Vorfall-Beiträge und eine E-Mail-Anmeldung zeigt. Pflicht ist name (max. 100 Zeichen). slug (Kleinbuchstaben, Ziffern und Bindestriche, über alle Workspaces hinweg eindeutig) wird standardmäßig aus dem Namen abgeleitet, und die Seite wird unter /status/<slug> ausgeliefert. check_ids listet die anzuzeigenden Verfügbarkeitsprüfungen auf (upc_...-IDs aus uptime_checks_list), und es werden nur Prüfungen akzeptiert, die mit public true erstellt wurden. published ist standardmäßig true, die Seite ist also sofort für alle sichtbar. Optionales Branding sind description (max. 2.000 Zeichen), logo_url (muss https sein), brand_color (Hex wie #06755b) und custom_domain (ein Hostname, den Sie per CNAME auf die App zeigen lassen, eindeutig). Mit status_page_posts_create veröffentlichen Sie anschließend Vorfälle. Erfordert die Berechtigung uptime.manage. Gibt die Seite mit id (sp_...), slug, check_ids und subscribers (Anzahl bestätigter Abonnenten) zurück. Der Tarif legt fest, wie viele Seiten ein Workspace hat: keine bei Free (402 plan_limit), 1 bei Pro und 10 bei Business. Eine custom_domain und E-Mail-Abonnenten erfordern den Tarif Business oder Enterprise. Seiten über der Anzahl des Tarifs bleiben erhalten und sind offline.

Berechtigung: uptime.manage

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/status_pages.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /status_pages/:id.json Eine Statusseite löschen status_pages_delete

Löscht eine Statusseite dauerhaft samt allen ihren Vorfall-Beiträgen und Abonnenten. Die öffentliche Seite und ihre eigene Domain funktionieren sofort nicht mehr, und das kann nicht rückgängig gemacht werden. Die Verfügbarkeitsprüfungen selbst werden nicht gelöscht. Die id stammt aus status_pages_list. Erfordert die Berechtigung uptime.manage. Gibt die gelöschte Seite zurück.

Berechtigung: uptime.manage

Beispiel
curl -X DELETE https://privatusanalytics.com/status_pages/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/status_pages.json Statusseiten auflisten status_pages_list

Listet die Statusseiten eines Workspace auf, nach Name sortiert. Verwenden Sie query, um einen Teil eines Namens oder Slugs zu treffen. Ist der Aufrufer auf einige Websites beschränkt, werden nur Seiten zurückgegeben, deren Prüfungen alle innerhalb dieser Websites liegen. Paginiert mit page und per_page (bis zu 100). Jeder Eintrag hat die in status_pages_get beschriebenen Felder. Benötigt die workspace_id aus workspaces_list.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/status_pages.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /status_pages/:id.json Eine Statusseite abrufen status_pages_get

Gibt eine Statusseite mit ihren Einstellungen zurück. Die Felder sind id (sp_...), workspace_id, name, slug, custom_domain (null, wenn keine), description, logo_url, brand_color, published, check_ids (auf der Seite gezeigte IDs von Verfügbarkeitsprüfungen), subscribers (Anzahl bestätigter E-Mail-Abonnenten) und created_at. Für ihre Vorfälle verwenden Sie status_page_posts_list und für die Personen status_page_subscribers_list. Die id stammt aus status_pages_list.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/status_pages/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /status_pages/:id.json Eine Statusseite ändern status_pages_update

Ändert eine Statusseite. Nur die Eingaben, die Sie senden, ändern sich, senden Sie also nur published false, um die Seite offline zu nehmen, oder check_ids, um die angezeigten Prüfungen zu ersetzen (die gesamte Liste wird ersetzt, nicht zusammengeführt). Die Eingaben und ihre Limits sind dieselben wie bei status_pages_create. Senden Sie custom_domain als leeren String, um die eigene Domain zu entfernen. Es können nur Prüfungen mit public true angezeigt werden, und ein auf einige Websites beschränkter Aufrufer kann nur Prüfungen dieser Websites auf eine Seite setzen. Die id stammt aus status_pages_list. Erfordert die Berechtigung uptime.manage. Gibt die aktualisierte Seite zurück.

Berechtigung: uptime.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/status_pages/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Suche

GET /sites/:site_id/search.json Suchbericht: Klicks, Impressionen, CTR, Position, Top-Suchanfragen/-Seiten, Landingpages und Chancen search_report

Such-Performance aus der Google Search Console und Bing Webmaster Tools, verknüpft mit den eigenen Landingpage-Kennzahlen der Website. Wählen Sie provider: all (Standard) führt alle verbundenen Suchmaschinen zusammen, wobei die Position nach Impressionen gewichtet wird und Länder und Geräte nur von Google stammen, oder google bzw. bing allein, dazu den üblichen period oder from und to. limit (1 bis 100, Standard 25) begrenzt die Zeilen in jeder Tabelle. Das Ergebnis hat period, provider, connection (property, status, last_synced_at der gewählten Suchmaschine, oder null, wenn sie nicht verbunden ist oder provider all ist), connections (jede verbundene Suchmaschine mit provider, property, status und last_synced_at), latest_date (neuester Tag mit Daten), delayed (true, wenn der Bereich über latest_date hinausreicht), totals und series (pro Tag), jeweils mit clicks, impressions, ctr (ein Prozentwert, kein Bruch, 2 Nachkommastellen) und position (durchschnittlicher Rang, 1 ist am besten, null, wenn unbekannt), breakdowns für query, page, country und device (Zeilen aus value plus denselben vier Kennzahlen), landing_pages (Top-Seiten mit visits, bounce_rate und conversion_rate als Prozentwerten und conversions) und opportunities (low_ctr_queries mit mindestens 100 Impressionen und einer CTR unter 2 Prozent sowie striking_distance-Seiten mit einer durchschnittlichen Position von 8 bis 20). Länderwerte entsprechen den Angaben des Providers. Für Besucherdaten verwenden Sie stats_breakdown und für das, was vor dem Klick passiert, dieses Tool. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/search.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
DELETE /sites/:site_id/search/connections/:provider.json Search Console oder Bing trennen und die Daten löschen search_disconnect

Trennt einen Such-Provider (google oder bing) von einer Website und löscht seine importierten Suchdaten für diesen Provider dauerhaft. Das kann nicht rückgängig gemacht werden. Die Google-Autorisierung wird ebenfalls entfernt, sobald keine Website sie mehr nutzt. Schlägt fehl, wenn dieser Provider nicht verbunden ist. Gibt die entfernte Verbindung zurück. Erfordert sites.manage.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/search/connections/:provider.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/search/sync.json Suchdaten jetzt importieren search_sync

Stellt einen sofortigen Import von Suchdaten für einen verbundenen Provider (google, der Standard, oder bing) in die Warteschlange, statt auf den regulären Zeitplan zu warten. Es antwortet sofort (HTTP 202) mit der Verbindung, und der Import läuft im Hintergrund. Fragen Sie search_report ab und beobachten Sie connection.last_synced_at. Suchmaschinen melden mit einigen Tagen Verzögerung, die neuesten Tage bleiben also auch nach einer Synchronisierung leer. Schlägt fehl, wenn der Provider nicht verbunden ist. Erfordert sites.manage.

Berechtigung: sites.manage

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/search/sync.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Tarife

GET /plans.json Tarife, Preise und Limits auflisten plans_list

Listet die öffentlichen Tarife (free, pro, business und enterprise) mit ihren Limits und Preisstufen auf, damit Sie gültige Werte für billing_checkout, billing_preview und billing_change_plan wählen können. Jeder Tarif hat name, events (enthaltene Ereignisse pro Monat, null bei gestaffelten oder individuellen Tarifen), badge_bonus (zusätzliche monatliche Ereignisse durch das Badge, nur Free, sonst null), limits (ein Objekt mit Tariflimits wie Websites, Mitgliederplätze, Aufbewahrung des Verlaufs in Monaten, Ziele pro Website, KI-Fragen und API-Anfragen pro Stunde), tiers (jeweils mit Ereignissen pro Monat und dem Monats- und Jahrespreis in ganzen USD, einschließlich Mehrwert- oder Umsatzsteuer) und contact_sales (true bei individuellen Tarifen). Das Objekt meta ergänzt currency, einen Hinweis zur jährlichen Abrechnung, counted (was als abrechenbares Ereignis zählt) und not_counted. Für den Tarif eines bestimmten Workspace verwenden Sie billing_get. Öffentlich, keine Authentifizierung nötig.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/plans.json

Teilen

GET /badge/:site_id.json Besucherzähler-Badge (SVG) für eine öffentliche Website badges_get

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/badge/:site_id.json
GET /share/:token/breakdown/:dimension.json Häufigste Werte einer freigegebenen Dimension shares_breakdown

Top-Werte einer Dimension hinter einem Freigabelink, das geteilte Gegenstück zu stats_breakdown. Der Pfad nimmt token (den letzten Teil der Freigabe-URL) und dimension entgegen, die zu einem Abschnitt gehören muss, den der Link teilt, zum Beispiel teilt sources die Dimensionen channel, referrer und referrer_url, pages teilt page, entry_page, exit_page und hostname, campaigns teilt die utm_-Dimensionen, locations teilt country und language, technology teilt device, browser, os und screen, conversions teilt goal und events teilt event. Eine Dimension außerhalb der Abschnitte des Links wird mit einem Validierungsfehler abgelehnt. limit ist 1 bis 100 Zeilen (Standard 10). Zeilen haben dieselben Felder und Einheiten wie stats_breakdown für diese Dimension. Der gesperrte Zeitraum und die gesperrten Filter des Links haben Vorrang vor period, from, to und filters, und Filter des Aufrufers werden ignoriert, wenn der Link sie nicht erlaubt. Ein Passwort-Link braucht den Header X-Share-Password.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/share/:token/breakdown/:dimension.json
GET /share/:token.json Übersicht des freigegebenen Dashboards für ein Freigabe-Token shares_overview

Liest das Dashboard hinter einem Freigabelink für Personen, die kein Konto haben. Das Pfad-Token ist der letzte Teil einer Freigabe-URL (/share/<token>) und die einzige Zugangsberechtigung, ein Passwort-Link braucht zusätzlich den Header X-Share-Password, und ein sso-Link braucht ein angemeldetes Mitglied. Es akzeptiert auch eine Website-ID (pa_...), wenn für die Website das öffentliche Dashboard eingeschaltet ist. Gibt dieselben Daten wie stats_overview zurück, begrenzt auf das, was der Link teilt. Das sind period, metrics (visitors, visits, pageviews, views_per_visit, bounce_rate als Prozentwert, visit_duration in Millisekunden, revenue in der kleinsten Währungseinheit), die Diagrammreihe für interval, Vergleichsdaten, wenn compare gesetzt ist, und panels mit Top-Werten nur für die geteilten Abschnitte. Es ergänzt site (id, name, domain, timezone), sections und locked_period. live_visitors erscheint nur, wenn der Link live teilt. Ein gesperrter Zeitraum und gesperrte Filter des Links überschreiben period, from, to und filters. Mit shares_breakdown erhalten Sie mehr Zeilen einer Dimension. Für Ihre eigenen Websites verwenden Sie stats_overview.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/share/:token.json

Testimonial-Analytics

GET /sites/:site_id/testimonials/analytics/breakdown.json Eine Testimonial-Kennzahl nach Formular, Anfrage, Widget, Wall, Testimonial, Kanal, Seite, Land oder Quelle aufteilen testimonial_stats_breakdown

Gibt Zeilen zurück, größte zuerst, jeweils mit key, label, value und share (ein Prozentsatz der Summe) oder numerator und denominator bei einer Rate. Eine Zeile eines Datensatzes (Formular, Anfrage, Widget, Wall, Testimonial) enthält seine ID. Jede Dimension nimmt nur einige Kennzahlen: form und channel nehmen die Formular-Kennzahlen, request die Anfrage-Kennzahlen, widget und wall ihre eigenen views, clicks, click rate und video_plays, testimonial nimmt testimonial_views und video_plays, page und country nehmen die Aufruf- und Klick-Kennzahlen, und source nimmt new_testimonials. Eine Kombination, die nicht passt, antwortet mit 422 und nennt die Kennzahlen, die passen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/analytics/breakdown.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/analytics/export.json Eine Datei zu einem Abschnitt der Testimonial-Analytics in die Warteschlange stellen testimonial_stats_export

Erstellt einen Export der Art testimonial_stats für den angegebenen Zeitraum und gibt ihn in der Warteschlange zurück. Fragen Sie exports_get ab, bis status complete ist, dann exports_download. section wählt die Zeilen: days (eine Zeile pro Tag, Woche oder Monat mit jeder Kennzahl), forms, channels, requests, widgets, walls, pages, testimonials, sources oder countries. Die Datei wird 7 Tage aufbewahrt. Antwortet mit 422 in_progress, wenn schon zu viele Exporte in der Warteschlange sind.

Berechtigung: analytics.export

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/analytics/export.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/analytics.json Die Testimonial-Analytics einer Website in einem Aufruf lesen testimonial_stats_overview

Gibt alles zurück, was der Analytics-Tab unter Testimonials für einen Zeitraum zeigt: cards (form_views, submissions, completion_rate, answer_rate, widget_views, wall_views, jeweils mit previous und change, wenn compare gesetzt ist), chart (eine Kennzahl über die Zeit), eine Zeile pro Formular, Anfrage, Widget und Wall, channels (wie Formulare geöffnet wurden), pages (wo Widgets und Walls gesehen wurden), top_testimonials, new_testimonials (nach Quelle und nach aktuellem Status) und countries. Raten sind Prozentwerte von 0 bis 100 und sind null, wenn nichts zum Teilen da ist. blank ist true, solange die Website nie etwas gezählt hat, und recorded listet die Kennzahlen, die je gezählt wurden. Das sind Tagessummen der Testimonial-Funktion, keine Web-Analytics: verwenden Sie stats_overview für Besucher und Seitenaufrufe.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/analytics.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/analytics/timeseries.json Eine Testimonial-Kennzahl pro Tag, Woche oder Monat lesen testimonial_stats_timeseries

Gibt Punkte mit date, to, value und, wenn compare gesetzt ist, previous und previous_date zurück, dazu total, previous_total und change. Eine Rate (completion_rate, answer_rate, widget_click_rate, wall_click_rate) wird aus den Summen jedes Zeitabschnitts berechnet und ist null für einen Abschnitt, in dem nichts zum Teilen da ist. new_testimonials wird aus den Testimonials selbst nach dem Tag gezählt, an dem jedes hinzugefügt wurde.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/analytics/timeseries.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Testimonial-Anfragen

POST /requests/resubscribe/:token.json Bestätigen, wieder Testimonial-Anfragen zu erhalten testimonial_request_resubscribes_confirm

Der POST hinter der Schaltfläche der Bestätigungsseite. Er hebt die Abmeldung auf, sodass die Adresse wieder gefragt werden kann.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/requests/resubscribe/:token.json \
  -H "Content-Type: application/json" -d '{…}'
POST /requests/resubscribe.json Die E-Mail anfordern, mit der eine Adresse wieder Anfragen erhalten kann testimonial_request_resubscribes_create

Sendet eine Bestätigungs-E-Mail an die Adresse selbst, wenn sie sich abgemeldet hatte. Die Antwort ist dieselbe, ob sie es hatte oder nicht.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/requests/resubscribe.json \
  -H "Content-Type: application/json" -d '{…}'
POST /requests/unsubscribe/:token.json Eine Adresse von Testimonial-Anfragen abmelden testimonial_request_unsubscribes_create

Der POST hinter der Schaltfläche der Abmeldeseite und das, was die eigene Abmelde-Schaltfläche einer Mail-App aufruft. Das Token stammt aus dem Link in der E-Mail.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/requests/unsubscribe/:token.json \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/requests.json Eine Anfrage als Entwurf starten testimonial_requests_create

Erstellt einen Entwurf mit seiner E-Mail und seinen Empfängern. Nichts wird gesendet, bis testimonial_requests_send aufgerufen wird. Alles, was weggelassen wird, beginnt mit einem Standard: die E-Mail, eine Erinnerung nach 5 Tagen, der Name der Website als Absender und Sie als Antwortadresse. Jeder Empfänger wird als queued gespeichert oder als skipped mit dem Grund.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/requests.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/requests/:id.json Einen Entwurf löschen testimonial_requests_delete

Nur eine Anfrage, die nie gesendet wurde, kann gelöscht werden. Eine gesendete Anfrage bleibt als Nachweis der gesendeten E-Mails erhalten. Über MCP ändert das Tool nichts und antwortet mit der Seite der App, auf der eine Person es tut.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/requests/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/requests/:id/duplicate.json Eine Anfrage in einen neuen Entwurf kopieren testimonial_requests_duplicate

Die Kopie hat dasselbe Formular und dieselbe E-Mail und noch keine Empfänger.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/requests/:id/duplicate.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/requests.json Die Anfragen einer Website auflisten testimonial_requests_list

Neueste zuerst, jede mit ihrer E-Mail und ihren Funnel-Zählern. Nach Status, Formular oder Zeitraum filtern.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/requests.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/requests/:id/preview.json Eine E-Mail einer Anfrage so ansehen, wie ihr erster Empfänger sie erhält testimonial_requests_preview

Der Absender, der Betreff und der Text mit ausgefüllten Merge-Feldern. Es wird nichts gesendet. step 0 ist die erste E-Mail, 1 bis 3 die Erinnerungen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/requests/:id/preview.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/requests/:id/resume.json Eine gestoppte Anfrage fortsetzen testimonial_requests_resume

Macht dort weiter, wo gestoppt wurde. Eine Erinnerung, die während des Stopps fällig wurde, wird ab jetzt neu terminiert, sodass nichts gebündelt hinausgeht. Das sendet E-Mails an Personen außerhalb des Workspaces, daher wird das Mitglied per E-Mail informiert, dass ein Assistent sie fortgesetzt hat.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/requests/:id/resume.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/requests/:id/send.json Eine Anfrage jetzt oder zu einem bestimmten Zeitpunkt senden testimonial_requests_send

Braucht confirm_relationship: true. Die Empfänger in der Warteschlange werden noch einmal geprüft, dann gehen die ersten E-Mails hinaus (oder warten auf send_at). Erinnerungen gehen an die Personen, die nicht geantwortet haben. Anfrage-E-Mails werden über den eigenen E-Mail-Anbieter der Website gesendet (Einstellungen > E-Mail-Versand, ab Business), sodass eine Website ohne funktionierende Verbindung 422 no_email_connection oder email_connection_paused erhält und ein anderer Tarif 402 plan_limit. Jede E-Mail zählt zum monatlichen Limit der Website für Anfrage-E-Mails (10.000, sofern wir kein anderes festlegen). Am Limit wird nichts verworfen: die Personen bleiben in der Warteschlange, und der Versand wird am 1. fortgesetzt. Das sendet E-Mails an Personen außerhalb des Workspaces, daher wird das Mitglied per E-Mail informiert, dass ein Assistent es gesendet hat.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/requests/:id/send.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/requests/:id/send_test.json Eine E-Mail einer Anfrage an Ihre eigene Adresse senden testimonial_requests_send_test

Geht nur an die eigene Adresse des Aufrufers, wie die echten über den eigenen E-Mail-Anbieter der Website (422 no_email_connection ohne einen). Sie hat keinen persönlichen Link und keinen Öffnungszähler und zählt nicht zum monatlichen Limit der Website.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/requests/:id/send_test.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/requests/:id.json Eine Anfrage mit ihrer E-Mail, den Erinnerungen und den Funnel-Zählern abrufen testimonial_requests_get

Gibt die E-Mail, die Erinnerungen, den Status und die Funnel-Zähler (sent, opened, clicked, submitted, bounced, unsubscribed) einer Anfrage zurück.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/requests/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/requests/:id/stop.json Eine Anfrage stoppen testimonial_requests_stop

Bricht sofort jede noch nicht gesendete E-Mail ab. Bereits Gesendetes ist nicht betroffen, und testimonial_requests_resume macht dort weiter, wo gestoppt wurde.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/requests/:id/stop.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
PATCH /sites/:site_id/testimonials/requests/:id.json Namen, Formular oder E-Mail einer Anfrage ändern testimonial_requests_update

Jederzeit erlaubt. Eine Änderung gilt für jede E-Mail, die noch nicht gesendet wurde. Das Ändern der Verzögerung einer Erinnerung setzt die Zeit der wartenden Erinnerungen neu.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/requests/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Anfragen für eigene Domains

POST /sites/:site_id/testimonials/settings/custom_domain.json Eine eigene Domain für eine Wall oder Formulare anfragen testimonial_custom_domain_requests_create

Eigene Domains für Testimonials richtet das Team von Privatus Analytics von Hand ein. Dies speichert die Anfrage und benachrichtigt das Team, das den hinzuzufügenden DNS-Eintrag per E-Mail sendet. Der Hostname funktioniert nicht, bis der Status der Anfrage active ist. Ab Business: andere Tarife erhalten 402 plan_limit.

Berechtigung: sites.manage

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/settings/custom_domain.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/settings/custom_domain.json Eine Anfrage für eine eigene Domain anhand ihres Hostnamens zurückziehen testimonial_custom_domain_requests_delete

Nur eine Anfrage, mit der das Team noch nicht begonnen hat (status requested), kann zurückgezogen werden. Eine, die in Bearbeitung ist, antwortet mit wrong_state. Über MCP ändert das Tool nichts und antwortet mit der Seite der App, auf der eine Person es tut.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/settings/custom_domain.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/settings/custom_domain.json Die Anfragen für eigene Domains einer Website auflisten testimonial_custom_domain_requests_list

Jede Anfrage für einen Hostnamen auf einer Wall oder bei Formularen, neueste zuerst, mit ihrem Status. Der Hostname funktioniert erst, wenn der Status active ist. Funktioniert in jedem Tarif, sodass frühere Anfragen weiter gelesen werden können.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/settings/custom_domain.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Testimonial-Bilder

POST /sites/:site_id/testimonials/images/bulk.json Bilder für jedes freigegebene Testimonial einer Sammlung erstellen testimonial_images_bulk_create

Bis zu 200 Testimonials pro Lauf, jeweils ein Bild pro Größe. Ein Text, der für das Bild zu lang ist, wird aus seiner Hervorhebung gezeichnet oder sonst aus seinen Anfangssätzen (excerpted sagt, wie viele). Die Antwort listet die gestarteten Bilder auf, die ausgelassenen Testimonials mit dem Grund und export_id: eine ZIP-Datei der PNGs erscheint auf der Exportseite, wenn sie gezeichnet sind.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/images/bulk.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/images.json Bilder eines freigegebenen Testimonials erstellen, eines pro Größe testimonial_images_create

Nur ein freigegebenes Testimonial kann gezeichnet werden, weil das PNG eine öffentliche Adresse erhält: jedes andere wird mit not_approved abgelehnt. Jedes Bild beginnt als rendering und wird im Hintergrund gezeichnet. Die Antwort ist die Liste der gestarteten Bilder. Fragen Sie testimonial_images_get nach file_url ab. Ein 422 mit text_too_long bedeutet, dass die Worte nicht passen: verwenden Sie text_mode highlight oder excerpt oder eine höhere Größe.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/images.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/images/:id.json Ein Bild und seine Datei löschen testimonial_images_delete

Das PNG wird vom Medien-Host gelöscht, und seine Adresse funktioniert nicht mehr. Ein Bild hat keinen Papierkorb. Es kann mit testimonial_images_create aus seinem Testimonial neu erstellt werden. Über MCP ändert das Tool nichts und antwortet mit der Seite der App, auf der eine Person es tut.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/images/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/images.json Die Bilder einer Website auflisten testimonial_images_list

Aus freigegebenen Testimonials erstellte Bilder, neueste zuerst, 25 pro Seite. Nach Status, Vorlage, Größe oder testimonial_id filtern. Jedes enthält file_url, sobald es fertig ist.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/images.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/images/:id.json Ein Bild mit seinem Status und der Adresse seines PNG abrufen testimonial_images_get

status ist rendering, ready oder failed. file_url ist gesetzt, sobald es fertig ist. Fragen Sie dies nach testimonial_images_create ab, bis der status nicht mehr rendering ist.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/images/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/images/:id.json Ändern, wie ein Bild gezeichnet wird, und es erneut rendern testimonial_images_update

Senden Sie nur, was sich ändert. Ohne Eingaben rendert es dasselbe Bild erneut aus dem Testimonial, wie es jetzt ist, was auch der Weg ist, eines zu wiederholen, das fehlgeschlagen ist. Ein neues Rendering hat eine neue file_url, und die alte Datei wird gelöscht.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/images/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Brand-Kit

DELETE /sites/:site_id/testimonials/settings/brand_kit.json Das Brand-Kit der Testimonials einer Website auf die Standards von Privatus Analytics zurücksetzen testimonial_brand_kit_reset

Löscht jede Farbe, Schrift, den Radius, den Bewertungsstil, die Logos und das eigene CSS in einem Schritt, und jedes Formular, Widget und jede Wall ändert sich mit. Es kann nicht rückgängig gemacht werden, daher wird ein Assistent auf die Brand-Kit-Seite geschickt, statt es auszuführen.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/settings/brand_kit.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/settings/brand_kit.json Das Brand-Kit der Testimonials einer Website abrufen, mit jeder Farbe für Hell und Dunkel aufgelöst testimonial_brand_kit_get

Gibt die Farben, Schriften, den Eckenradius, den Bewertungsstil, die Logos, den Badge-Schalter und das eigene CSS zurück, mit denen jedes Formular, Widget und jede Wall der Website gezeichnet wird. Eine Einstellung, die nie geändert wurde, kommt mit dem Standard von Privatus Analytics zurück.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/settings/brand_kit.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/settings/brand_kit.json Das Brand-Kit der Testimonials einer Website ändern testimonial_brand_kit_update

Nur die gesendeten Eingaben werden geändert. Senden Sie einen leeren String, um eine Einstellung auf den Standard von Privatus Analytics zurückzusetzen. Eigenes CSS wird beim Speichern geprüft, und alles, was nicht erlaubt ist, wird mit der Zeile abgelehnt, in der es steht. Eigenes CSS braucht den Business-Tarif, und das Ausblenden des Badges braucht den Business-Tarif. Ohne ihn antwortet der Server mit 402 plan_limit.

Berechtigung: sites.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/settings/brand_kit.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Duplikate

POST /sites/:site_id/testimonials/duplicates/dismiss.json Sagen, dass eine Gruppe keine Duplikate sind. Sie kehrt nie in die Warteschlange zurück testimonial_duplicates_dismiss

testimonial_ids müssen jede Kopie einer offenen Gruppe der Duplikat-Warteschlange sein, die nicht im Papierkorb ist, wie testimonial_duplicates_list sie zurückgibt. Nichts wird zusammengeführt oder an den Testimonials geändert, und sie werden nie wieder zusammen gruppiert. Um eine Gruppe von drei zu teilen, führen Sie zuerst die zwei zusammen, die gleich sind. Der Server antwortet mit 422, wenn die IDs nicht genau eine offene Gruppe sind.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/duplicates/dismiss.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/duplicates.json Die Gruppen von Testimonials auflisten, die vermutlich doppelt vorhanden sind testimonial_duplicates_list

Exakte Treffer kommen zuerst. Jede Gruppe enthält ihre Kopien vollständig und keeper_id, die Kopie, die behalten würde. meta.exact_groups ist, wie viele Gruppen testimonial_duplicates_merge_exact zusammenführen würde.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/duplicates.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/:id/merge.json Kopien eines Testimonials in das im Pfad zusammenführen testimonials_merge

Das behaltene Testimonial behält seinen Status und seinen Verifiziert-Zustand und seine Worte, außer body_from nennt eine andere Kopie. Es erhält die Tags, manuellen Sammlungen, Platzierungen und eigenen Eigenschaften, die ihm fehlen. Die Kopien gehen als zusammengeführt markiert in den Papierkorb, und das Wiederherstellen einer macht die Zusammenführung für diese Kopie rückgängig. Eine Kopie, die in diesem Monat eingegangen ist, zählt nicht mehr als neues Testimonial. Die Antwort enthält meta.undo_id.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/:id/merge.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/duplicates/merge_exact.json Jeden exakten Treffer der Warteschlange auf einmal zusammenführen testimonial_duplicates_merge_exact

Senden Sie zuerst dry_run für die Zähler, dann confirm_count mit der Summe, die es ergeben hat. Pro Aufruf werden bis zu 100 Gruppen zusammengeführt. Die Antwort enthält meta.undo_id, und ein Rückgängigmachen nimmt den gesamten Lauf zurück.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/duplicates/merge_exact.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Erwähnungen

GET /sites/:site_id/testimonials/mentions.json Die Wörter und Phrasen auflisten, die in den Testimonials einer Website wiederkehren testimonial_mentions_list

Jeder Begriff kommt mit der Anzahl der Testimonials, die ihn enthalten, seinem Anteil, der durchschnittlichen Bewertung dieser und den letzten 90 Tagen gegenüber den 90 davor. Sortieren Sie nach rating_asc, um zu lesen, worüber sich Menschen beschweren, oder nach rising für das, was neu ist. meta.refreshed_at sagt, wann die Begriffe zuletzt neu aufgebaut wurden. Übergeben Sie einen Begriff als mention an testimonials_list, um die Testimonials zu lesen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/mentions.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/mentions/tag.json Jedes Testimonial taggen, das ein Wort oder eine Phrase erwähnt testimonial_mentions_tag

Eine Massenaktion auf das gesamte Ergebnis, mit Rückgängig-Option. Der Begriff ist jedes Wort oder jede Zwei-Wort-Phrase, mit Wortstamm-Erkennung so abgeglichen, wie Erwähnungen gezählt werden. Ein erstmals benannter Tag wird erstellt. Antwortet mit einer Undo-ID, die testimonials_bulk_undo 7 Tage lang akzeptiert. Mehr als 100 laufen im Hintergrund.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/mentions/tag.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
PATCH /sites/:site_id/testimonials/mentions.json Einen Begriff ausblenden, der nur Rauschen ist, oder ihn wieder einblenden testimonial_mentions_update

Ein ausgeblendeter Begriff verlässt die Erwähnungen-Liste und die Erwähnungen-Facette des Posteingangs und bleibt ausgeblendet, wenn die Begriffe neu aufgebaut werden.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/mentions.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Importläufe

GET /sites/:site_id/testimonials/imports/sources/:import_source_id/runs.json Die Läufe einer Quelle auflisten, neueste zuerst testimonial_import_runs_list

Jeder Lauf hat seine Nummer, was ihn gestartet hat, seinen Status, die gelesenen Seiten und wie viele Testimonials er gefunden hat, wie viele neu, Duplikate, fehlgeschlagen und behalten waren, mit den Zeiten von Start und Ende.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/imports/sources/:import_source_id/runs.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Testimonial-Importquellen

POST /sites/:site_id/testimonials/imports/sources.json Eine Importquelle aus einem Link hinzufügen und ihren ersten Lauf starten testimonial_import_sources_create

Die Plattform wird am Link erkannt. Was der Lauf findet, wartet im Prüfschritt (testimonial_import_sources_review), und nichts wird gespeichert, bis testimonial_import_sources_keep aufgerufen wird. Nichts Importiertes zählt zu den monatlichen Testimonials. Der Free-Tarif ruft 1 Import pro Monat von einer Bewertungsseite oder einer Seite ab. Darüber hinaus lautet die Antwort 402 plan_limit.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/imports/sources.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/imports/sources/:id.json Eine Quelle löschen. Die Testimonials, die sie gebracht hat, bleiben testimonial_import_sources_delete

Löscht die Quelle mit ihrem Laufverlauf, dem, was in ihrem Prüfschritt wartet, und ihrer hochgeladenen Datei. Bereits aus ihr behaltene Testimonials bleiben in der Website. Eine Person tut dies auf der Seite der Quelle, daher führt das Tool nichts aus und gibt diese Seite zurück.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/imports/sources/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/imports/sources/:id/discard.json Gefundene Elemente verwerfen testimonial_import_sources_discard

Geben Sie item_ids (IDs aus testimonial_import_sources_review) oder all true für alles an, was noch wartet, nie beides. Ein verworfenes Element verlässt den Prüfschritt, und was über die Person gelesen wurde, wird gelöscht. Kein Testimonial wird gelöscht. Andernfalls antwortet der Server mit 422 und dem Code selection oder unknown_ids.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/imports/sources/:id/discard.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/imports/find.json Testimonials auf der eigenen Website der Website finden testimonial_import_sources_find

Liest die Domain der Website und die Seiten, auf die sie verweist und die aussehen, als enthielten sie Testimonials, einmal pro Website. Es ist kostenlos: es gehört nicht zu den abgerufenen Importen des Free-Tarifs. Was es findet, wartet im Prüfschritt der Quelle, die es zurückgibt.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/imports/find.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/imports.json Die Importquellen einer Website auflisten testimonial_import_sources_list

meta enthält fetched_imports (used, limit und resets_on für den Monat, limit null bedeutet unbegrenzt) und sync (die Frequenz, die der Tarif erlaubt).

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/imports.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/imports/sources/:id/keep.json Gefundene Elemente als Testimonials behalten testimonial_import_sources_keep

Geben Sie item_ids (bis zu 100) oder all an. Jedes behaltene Element wird über dieselbe Route wie jedes andere Testimonial gespeichert, sodass Duplikate nie doppelt gespeichert werden. Nichts Behaltenes zählt zu den monatlichen Testimonials. meta sagt, wie viele behalten wurden.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/imports/sources/:id/keep.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/imports/platforms.json Die Plattformen auflisten, die ein Import lesen kann testimonial_import_platforms_list

Das Register getesteter Quellen. Eine Plattform wird erst aufgelistet, wenn ihr Import an einer echten Seite erprobt ist. Jeder Eintrag sagt, welchen Link Sie einfügen sollen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/imports/platforms.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/imports/sources/:id/review.json Auflisten, was eine Quelle gefunden hat und noch nicht entschieden ist testimonial_import_sources_review

meta enthält die Zähler nach Badge (new, already_here, likely_duplicate).

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/imports/sources/:id/review.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/imports/sources/:id/run.json Eine Quelle jetzt erneut lesen testimonial_import_sources_run

Ein Lauf von Hand ist ein abgerufener Import und zählt im Free-Tarif als einer des Monats (402 plan_limit darüber hinaus). Abgelehnt, solange ein Lauf aktiv ist (422 in_progress) und nach 3 Läufen der Quelle in 24 Stunden in jedem Tarif (422 too_many_runs). Bei einer fehlerhaften Quelle setzt er den Fehlerzähler zurück.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/imports/sources/:id/run.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/imports/sources/:id.json Eine Importquelle mit ihrem Status und ihren Zählern abrufen testimonial_import_sources_get

Gibt die Plattform, den Namen, die gelesene Adresse, wie oft sie erneut gelesen wird, den Status, wie viele Elemente im Prüfschritt warten, wie viele behalten wurden, die Fehler in Folge und wann sie zuletzt lief und als Nächstes läuft zurück.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/imports/sources/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/imports/sources/:id.json Link, Name, Synchronisierung und Auto-Freigabe einer Quelle ändern oder sie pausieren testimonial_import_sources_update

Eine Synchronisierung über dem Tarif (jede im Free-Tarif, wöchentlich im Pro-Tarif) wird mit 402 plan_limit abgelehnt.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/imports/sources/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Kaufverbindungen

DELETE /sites/:site_id/testimonials/settings/purchase_connections/:id.json Ein Zahlungskonto trennen testimonial_purchase_connections_delete

Löscht die Verbindung und ihren Schlüssel. Käufer, die noch auf ihre erste E-Mail warten, werden nicht gefragt. Die Dauer-Anfrage bleibt als Nachweis dessen erhalten, was gesendet wurde.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/settings/purchase_connections/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/settings/purchase_connections.json Die Kaufverbindungen einer Website auflisten testimonial_purchase_connections_list

Jede mit ihrer Regel, ihrem Status und ihrer Dauer-Anfrage. Der Schlüssel wird nie zurückgegeben. paused ist true bei einem Tarif ohne Anfragen nach einem Kauf: die Verbindung bleibt erhalten, liest keine Zahlungen und fragt niemanden.

Berechtigung: sites.manage

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/settings/purchase_connections.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Testimonial-Medien

POST /sites/:site_id/testimonials/media/uploads.json Einen Upload starten oder eine Datei von einer Webadresse hinzufügen testimonial_media_uploads_create

Zwei Wege. Zum Hochladen senden Sie filename, content_type und byte_size: die Antwort enthält upload, mit der URL, an die die Datei per PUT gesendet wird, den mitzusendenden Headern und, bei einer großen Datei, parts, die einzeln gesendet werden können. Rufen Sie dann testimonial_media_uploads_finish auf. Oder senden Sie source_url, dann wird die Datei für Sie heruntergeladen und verarbeitet: fragen Sie testimonial_media_get ab, bis ihr state ready ist. Grenzen: Video und Audio bis 500 MB und so lang, wie der Tarif es erlaubt (2 Minuten im Pro-Tarif, 10 Minuten im Business-Tarif, keine im Free-Tarif, wo der Server mit 402 plan_limit antwortet), Bilder bis 10 MB, ein Logo bis 2 MB.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/media/uploads.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/media/:id.json Eine Datei löschen, die kein Testimonial behält testimonial_media_delete

Eine Datei, die zu einem Testimonial gehört, wird mit dem Testimonial über den Papierkorb gelöscht. Die gespeicherten Dateien werden gelöscht und ihre Adressen aus dem Cache entfernt.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/media/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/media/uploads/:id/finish.json Einen Upload als abgeschlossen melden, damit die Datei geprüft und verarbeitet wird testimonial_media_uploads_finish

Rufen Sie es auf, sobald die Datei gesendet wurde. Die Datei muss im Upload-Speicher liegen und genau die zugesagte Größe haben. Es zweimal aufzurufen ist unbedenklich.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/media/uploads/:id/finish.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/media/:id/retry.json Eine fehlgeschlagene Datei erneut versuchen testimonial_media_retry

Verarbeitet die Datei erneut aus dem Upload, der behalten wurde. Der Upload wird nach einem Fehler 24 Stunden aufbewahrt. Danach antwortet der Server mit not_retryable, und die Datei muss erneut hochgeladen werden.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/media/:id/retry.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/media/:id.json Eine Datei mit ihrem Status und dem Ort zum Laden abrufen testimonial_media_get

Die url ist die dauerhafte Adresse der fertigen Datei auf dem Medien-Host und ist null, bis der Status ready ist. Die Adresse ist für alle gleich und nicht signiert, geben Sie also nur die Adresse einer Datei weiter, deren Feld shareable true ist.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/media/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Testimonial-Migrationen

POST /sites/:site_id/testimonials/imports/migrations/:id/discard.json Verwerfen, was eine Migration gelesen hat testimonial_migrations_discard

Geben Sie item_ids (IDs aus testimonial_migrations_review) oder all true für alles an, was noch wartet, nie beides. Ein verworfenes Element verlässt den Prüfschritt, und was über die Person gelesen wurde, wird gelöscht. Kein Testimonial wird gelöscht. Andernfalls antwortet der Server mit 422 und dem Code selection oder unknown_ids.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/imports/migrations/:id/discard.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/imports/migrations.json Die Migrationen einer Website auflisten testimonial_migrations_list

Neueste zuerst. Eine Migration ist eine Exportdatei aus einem anderen Testimonial-Tool. Jede hat das Tool, aus dem sie kam, ihren Status und wie viele Testimonials gefunden, behalten, Duplikate und fehlgeschlagen waren.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/imports/migrations.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/imports/migrations/:id/keep.json Behalten, was eine Migration gelesen hat, als Testimonials testimonial_migrations_keep

Geben Sie item_ids (bis zu 100 pro Aufruf, aus testimonial_migrations_review) oder all true an, nie beides. Jedes behaltene Element wird ein Testimonial mit dem Status pending oder approved, und keep_approval true behält die Freigabe, die es im anderen Tool hatte. Mit all werden wahrscheinliche Duplikate ausgelassen, außer include_likely_duplicates ist true. Nichts Behaltenes zählt zu den monatlichen Testimonials. Was nicht behalten wird, bleibt 30 Tage im Prüfschritt.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/imports/migrations/:id/keep.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/imports/migrations/:id/review.json Auflisten, was eine Migration gelesen hat und noch nicht entschieden ist testimonial_migrations_review

Listet die Elemente auf, die noch auf eine Entscheidung warten, neuester Lauf zuerst. show ist new, duplicates oder all (der Standard), und rating behält nur die aufgeführten Sternebewertungen. Übergeben Sie die Element-IDs an testimonial_migrations_keep oder testimonial_migrations_discard.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/imports/migrations/:id/review.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/imports/migrations/:id.json Fortschritt und Zähler einer Migration abrufen testimonial_migrations_get

Gibt das Tool, aus dem die Datei kam, den Status, wie viele Testimonials gefunden, behalten, Duplikate und fehlgeschlagen waren, wie viele Mediendateien sie mitbringt und wann sie gestartet und beendet wurde zurück. Fragen Sie sie ab, solange der Status sagt, dass die Datei noch gelesen wird.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/imports/migrations/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Testimonial-Papierkorb

DELETE /sites/:site_id/testimonials/trash/permanent.json Bis zu 100 Elemente im Papierkorb endgültig löschen testimonial_trash_delete_permanently

Das kann nicht rückgängig gemacht werden. confirm ist der Name des Elements (bei einem Testimonial der Name der Person) oder seine ID bei einem Element und der Name der Website bei mehreren. Nur Elemente im Papierkorb werden akzeptiert.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/trash/permanent.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/trash/empty.json Alles im Papierkorb endgültig löschen testimonial_trash_empty

Das kann nicht rückgängig gemacht werden. confirm ist der Name der Website. Bis zu 100 Elemente werden auf einmal gelöscht. Ein größerer Papierkorb wird im Hintergrund geleert, und die Antwort hat state running.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/trash/empty.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/trash.json Auflisten, was im Papierkorb ist, eine Art nach der anderen testimonial_trash_list

Antwortet mit den Elementen einer Art (standardmäßig testimonial) und in meta.counts mit der Anzahl jeder Art im Papierkorb. Jedes Element sagt, wohin es zurückkehrt, was es angezeigt hat, wer es verschoben hat und wann es verschwindet.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/trash.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/trash/restore.json Bis zu 100 Elemente genau so aus dem Papierkorb wiederherstellen, wie sie waren testimonial_trash_restore

Die IDs müssen von einer Art sein. Das Wiederherstellen von Testimonials antwortet mit einer Undo-ID (data.id und meta.undo_id), die testimonial_undo_records_undo 7 Tage lang akzeptiert. Eine Wiederherstellung zählt nie als neues Testimonial.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/trash/restore.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Personen

POST /sites/:site_id/testimonials/people/:id/ask_again.json Eine Anfrage mit dieser Person als einzigem Empfänger starten testimonial_people_ask_again

Sie verwendet das Formular, das die Person zuletzt genutzt hat, oder das Startformular. Nichts wird gesendet, bis die Anfrage gesendet wird. Der Server antwortet mit 422 und dem Code no_email, bounced oder unsubscribed, wenn die Person nicht gefragt werden kann, und requests_unavailable, solange Anfragen nicht verfügbar sind.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/people/:id/ask_again.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/people.json Eine Person zu einer Website hinzufügen testimonial_people_create

name ist erforderlich (bis zu 120 Zeichen). email wird nie öffentlich gezeigt: sie ordnet spätere Testimonials dieser Person zu und lässt die Website sie erneut fragen, und eine Adresse, die eine andere Person der Website schon hat, wird abgelehnt. avatar_media_id ist die ID (med_...) eines bereits in die Website hochgeladenen Bildes. Eine Person hinzuzufügen fügt kein Testimonial hinzu.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/people.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/people/:id/permanent.json Eine Person endgültig löschen, mit allem, was sie gesagt hat, den Dateien und dem Anfrageverlauf testimonial_people_delete_permanently

Für eine Löschanfrage. Das kann nicht rückgängig gemacht werden. Es braucht confirm, den Namen oder die ID der Person, und hinterlässt einen Audit-Eintrag, der weder den Namen noch die Worte enthält.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/people/:id/permanent.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/people.json Die Personen einer Website gefiltert und sortiert auflisten testimonial_people_list

Jede Person kommt mit ihrer Anzahl an Testimonials, wie viele davon freigegeben sind, ihrer durchschnittlichen Bewertung und der letzten Anfrage mit ihrem Ergebnis. Die E-Mail ist null, außer der Aufrufer hat content.write, und has_email sagt weiterhin, ob eine vorhanden ist.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/people.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/people/:id/merge.json Weitere Datensätze derselben Person in diese zusammenführen testimonial_people_merge

Die Person im Pfad bleibt. Alles, was die anderen gesagt haben, und jede an sie gesendete Anfrage geht über, und die anderen werden entfernt. Ein Feld, das diese Person leer hat, wird aus den anderen gefüllt, älteste zuerst, und use benennt, deren Wert für ein Feld gewinnt. Die Antwort enthält meta.undo_id, das testimonial_undo_records_undo 7 Tage lang akzeptiert.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/people/:id/merge.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/people/:id.json Eine Person mit dem, was von ihr erfragt wurde, und den Personen abrufen, die wie dieselbe Person aussehen testimonial_people_get

Ihre Testimonials sind testimonials_list mit person_id. can_ask und cannot_ask_reason sagen, ob testimonial_people_ask_again durchgehen würde.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/people/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/people/:id.json Eine Person bearbeiten. Nur die gesendeten Felder ändern sich testimonial_people_update

Ein leerer Wert löscht ein Feld, außer beim Namen. Eine E-Mail, die eine andere Person der Website schon hat, wird abgelehnt. Die Unternehmensseite, auf der eine Person geführt wird, folgt dem Unternehmensnamen und der Website.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/people/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Rückgängig-Liste

GET /sites/:site_id/testimonials/settings/undo.json Auflisten, was in den letzten 7 Tagen geändert wurde und rückgängig gemacht werden kann testimonial_undo_records_list

Neueste zuerst. Jeder Eintrag sagt, was lief, wer es ausgeführt hat, wie viele es geändert und übersprungen hat und warum und bis wann es rückgängig gemacht werden kann.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/settings/undo.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/settings/undo/:id.json Einen Rückgängig-Eintrag lesen testimonial_undo_records_get

Bei einem Lauf im Hintergrund ist state running, und processed sagt, wie weit er ist.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/settings/undo/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/settings/undo/:id/undo.json Eine Massenaktion oder eine einzelne Änderung innerhalb von 7 Tagen rückgängig machen testimonial_undo_records_undo

Setzt bei allem, was der Lauf geändert hat, den früheren Wert zurück. Was seitdem erneut geändert wurde, bleibt unberührt und wird in left gezählt. Eine Zusammenführung von Personen oder von Duplikaten wird auf dieselbe Weise rückgängig gemacht. Über MCP wird ein Rückgängigmachen, das löschen oder in den Papierkorb verschieben würde, nicht ausgeführt (das Rückgängigmachen einer Wiederherstellung, eines Übersetzungslaufs und eines Bilderstellungslaufs): das Tool antwortet mit human_only und der Seite der App, auf der eine Person es tut.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/settings/undo/:id/undo.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Sammlungen

POST /sites/:site_id/testimonials/collections/:id/items.json Testimonials zu einer manuellen Sammlung hinzufügen testimonial_collections_add_items

Bis zu 100 auf einmal. Sie kommen unten dazu oder mit position top oben, in der angegebenen Reihenfolge. Die Antwort enthält meta.undo_id, das testimonials_bulk_undo 7 Tage lang akzeptiert. Eine intelligente Sammlung nimmt nichts von Hand an.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/collections/:id/items.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/collections.json Eine Sammlung erstellen, manuell oder intelligent testimonial_collections_create

kind manual wird von Hand zusammengestellt, und testimonial_ids startet sie gefüllt. kind smart wird durch Bedingungen aktuell gehalten: Zeilen aus Feld, Operator und Wert, verbunden durch match. Die Antwort enthält die Anzahl und die Regeln in einfachem Deutsch, sodass ein Aufruf einen Satz in eine lebendige Sammlung verwandelt. Probieren Sie die Regeln zuerst mit testimonial_collections_preview aus. Die Art ändert sich danach nie.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/collections.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/collections/:id.json Eine Sammlung für 30 Tage in den Papierkorb verschieben testimonial_collections_destroy

Ihre Testimonials werden nicht berührt. Ein Widget oder eine Wall, die sie speist, zeigt nichts daraus, bis sie wiederhergestellt wird. Stellen Sie sie mit testimonial_trash_restore wieder her. Über MCP ändert das Tool nichts und antwortet mit der Seite der App, auf der eine Person es tut.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/collections/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/collections.json Die Sammlungen einer Website auflisten testimonial_collections_list

Jede Sammlung kommt mit der Anzahl der Testimonials, die sie gerade enthält, wie viele davon freigegeben sind, ihren Regeln in einfachem Deutsch, wenn sie intelligent ist, und den Widgets und Walls, die sie speist. Sammlungen im Papierkorb werden ausgelassen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/collections.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/collections/preview.json Einen Satz Regeln ausprobieren, ohne etwas zu speichern testimonial_collections_preview

Antwortet mit der Anzahl der Testimonials, die gerade passen, den Regeln in einfachem Deutsch und fünf Beispielen. Verwenden Sie es vor testimonial_collections_create oder testimonial_tags_update. Eine ungültige Zeile ist ein 422, der die Zeile benennt.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/collections/preview.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
DELETE /sites/:site_id/testimonials/collections/:id/items.json Testimonials aus einer manuellen Sammlung herausnehmen testimonial_collections_remove_items

Bis zu 100 auf einmal. Die Testimonials selbst werden nicht geändert. Die Antwort enthält meta.undo_id, und ein Rückgängigmachen setzt jedes an seinen Platz zurück.

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/collections/:id/items.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/collections/:id/reorder.json Ein Testimonial an eine andere Stelle in einer manuellen Sammlung verschieben testimonial_collections_reorder

Benennen Sie die Stelle mit genau einem von position (ab 1 gezählt), before_id oder after_id. Die Reihenfolge ist die Reihenfolge, die an jedes Widget und jede Wall ausgeliefert wird, die die Sammlung speist.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/collections/:id/reorder.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/collections/:id.json Eine Sammlung mit ihren Zählern, ihren Regeln und dem, was sie speist, abrufen testimonial_collections_get

Ihre Testimonials sind testimonials_list mit collection_id.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/collections/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/collections/:id.json Name, Beschreibung, Regeln oder ausgelieferte Reihenfolge einer Sammlung ändern testimonial_collections_update

Nur was gesendet wird, ändert sich. Das Senden von conditions ersetzt jede Regel einer intelligenten Sammlung. Die Art ist fest.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/collections/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Sprachen

GET /sites/:site_id/testimonials/settings/languages.json Die Spracheinstellungen der Testimonials einer Website abrufen testimonial_languages_get

Die Standardsprache, die angebotenen Sprachen, ob neu freigegebene Testimonials automatisch übersetzt werden, ob der Tarif Übersetzung enthält, ob Übersetzung eingerichtet ist und die im Monat genutzten und übrigen Zeichen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/settings/languages.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/settings/languages.json Die Standardsprache, die angebotenen Sprachen und die automatische Übersetzung festlegen testimonial_languages_update

Senden Sie nur, was sich ändert. Die Standardsprache gehört immer zu den angebotenen Sprachen, und eine Sprache, in der ein Formular geschrieben ist, kann nicht entfernt werden (in_use). Das Einschalten von auto_translate braucht Business oder höher (sonst 402 plan_limit): von da an werden die Worte jedes neu freigegebenen Testimonials an Google Cloud Translation gesendet, und das Mitglied wird per E-Mail informiert, dass ein Assistent dies geändert hat.

Berechtigung: sites.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/settings/languages.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Tabellenimporte

POST /sites/:site_id/testimonials/imports/spreadsheet.json Eine Tabelle hochladen (oder CSV-Text senden) und ihre Spalten lesen testimonial_spreadsheet_imports_create

Schritt 1 eines Tabellenimports. Senden Sie file (CSV, TSV oder XLSX, höchstens 10 MB und 5.000 Zeilen, Überschriften in der ersten Zeile) oder content (CSV-Text bis 1 MB). Die Antwort enthält die Spalten, drei Beispielwerte jeder Spalte und eine erste Vermutung, wohin jede Spalte gehört. Noch wird nichts importiert: fahren Sie mit testimonial_spreadsheet_imports_update und testimonial_spreadsheet_imports_run fort. Eine Tabelle zählt nie zu den monatlichen Testimonials oder den abgerufenen Importen.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/imports/spreadsheet.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/imports/spreadsheet/:id/run.json Die zugeordnete Datei in den Prüfschritt einlesen testimonial_spreadsheet_imports_run

Zeilen, die verwendet werden können, warten mit einem Kästchen. Zeilen, die nicht verwendet werden können, werden mit ihrer Zeilennummer und dem Grund aufgelistet. Behalten Sie sie mit testimonial_import_sources_keep, mit der ID der Tabelle als Quellen-ID.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/imports/spreadsheet/:id/run.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/imports/spreadsheet/:id.json Spalten, Beispiele, Zuordnung, Optionen und Zähler einer Tabelle abrufen testimonial_spreadsheet_imports_get

Gibt die Spalten der Datei mit Beispielwerten zurück, welchem Feld jede Spalte zugeordnet ist, die Optionen (Standardstatus, Tags, Sammlung, Datumsformat, Umgang mit Duplikaten) und, sobald sie gelaufen ist, wie viele Zeilen im Prüfschritt warten und wie viele behalten wurden.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/imports/spreadsheet/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/imports/spreadsheet/:id.json Speichern, welche Spalte wohin geht, und die Optionen für die Datei testimonial_spreadsheet_imports_update

Schritte 2 und 3 eines Tabellenimports. mapping ist ein Objekt aus Spaltenname und Feld, mit leerem Wert für eine Spalte, die ausgelassen wird, und zwei Spalten können nicht demselben Feld zugeordnet werden. Die Optionen sind default_status (pending oder approved), tags, collection_id (eine manuelle Sammlung), default_source_name, date_format (auto, ymd, dmy oder mdy) und duplicates (skip oder queue). Nur was gesendet wird, ändert sich, und nichts wird importiert, bis testimonial_spreadsheet_imports_run aufgerufen wird.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/imports/spreadsheet/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Tags

POST /sites/:site_id/testimonials/tags/:id/apply_rules.json Die Regeln eines Tags über die bereits gespeicherten Testimonials laufen lassen testimonial_tags_apply_rules

dry_run true (der Standard) ändert nichts und antwortet mit den Zählern: wie viele getaggt würden, von wie vielen und wie viele den Tag schon haben. dry_run false taggt sie als eine Massenaktion und antwortet mit undo_id, das testimonials_bulk_undo 7 Tage lang akzeptiert. Mehr als 100 laufen im Hintergrund, und die Antwort hat state running.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/tags/:id/apply_rules.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/tags.json Einen Tag erstellen, mit Auto-Tag-Regeln, wenn Sie sie senden testimonial_tags_create

Eine Regel ist { match, conditions }. Ein Testimonial, das irgendeine Regel erfüllt, erhält den Tag in dem Moment, in dem es eintrifft. Regeln fügen immer nur einen Tag hinzu. Um zu taggen, was schon gespeichert ist, rufen Sie als Nächstes testimonial_tags_apply_rules auf.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/tags.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/tags/:id.json Einen Tag für 30 Tage in den Papierkorb verschieben testimonial_tags_destroy

Er verlässt jedes Testimonial, jeden Filter und jede Auswahl. Ihn mit testimonial_trash_restore wiederherzustellen setzt ihn auf jedes Testimonial zurück, das ihn hatte. Eine intelligente Sammlung, deren Regeln ihn nennen, trifft bis dahin nichts. Über MCP ändert das Tool nichts und antwortet mit der Seite der App, auf der eine Person es tut.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/tags/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/tags.json Die Tags einer Website mit ihren Regeln auflisten testimonial_tags_list

Jeder Tag kommt mit der Anzahl der Testimonials, die ihn tragen, seinen Auto-Tag-Regeln als strukturierte Bedingungen und in einfachem Deutsch und wann eine Regel ihn zuletzt angewendet hat. Tags im Papierkorb werden ausgelassen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/tags.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/tags/:id/merge.json Einen Tag in einen anderen zusammenführen testimonial_tags_merge

Jedes Testimonial, das diesen Tag hatte, erhält den anderen, jede Regel geht zum anderen über, jede intelligente Sammlung, gespeicherte Ansicht, jedes Widget und jede Wall, die diesen Tag benannt hat, nennt den anderen, und dieser Tag geht leer in den Papierkorb. Antwortet mit dem Tag, der behalten wird.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/tags/:id/merge.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
PATCH /sites/:site_id/testimonials/tags/:id.json Name, Farbe oder Regeln eines Tags ändern testimonial_tags_update

Nur was gesendet wird, ändert sich. Das Senden von rules ersetzt jede Regel des Tags, und eine leere Liste entfernt sie alle.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/tags/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Unternehmen

GET /sites/:site_id/testimonials/companies.json Die Unternehmen einer Website mit ihren Personen, Testimonials und durchschnittlicher Bewertung auflisten testimonial_companies_list

Eine Zeile pro Unternehmen, gruppiert nach dem Unternehmensnamen und der Website der Personen der Website. Eine Person ohne Unternehmen gehört zu keinem. query trifft einen Teil eines Unternehmensnamens oder seines Website-Hosts. sort ist name (der Standard), people_desc, testimonials_desc oder received_desc.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/companies.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/companies/:id/merge.json Ein Unternehmen in ein anderes zusammenführen, für zwei Schreibweisen eines Unternehmens testimonial_companies_merge

Jede Person des Unternehmens im Pfad übernimmt Namen und URL des Unternehmens, das durch into benannt wird.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/companies/:id/merge.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/companies/:id.json Ein Unternehmen mit seinen Personen abrufen testimonial_companies_get

Die ID ist der Schlüssel des Unternehmens, ein Website-Host oder ein normalisierter Name, wie ihn testimonial_companies_list zurückgibt. Seine Testimonials sind testimonials_list mit company.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/companies/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/companies/:id.json Name und URL eines Unternehmens für alle seine Personen auf einmal korrigieren testimonial_companies_update

Die ID eines Unternehmens stammt aus seiner URL oder seinem Namen, daher kann die Antwort eine neue ID enthalten.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/companies/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonial-Übersetzungen

POST /sites/:site_id/testimonials/translations.json Testimonials in die Sprachen übersetzen, die eine Website anbietet testimonial_translations_create

Rufen Sie zuerst testimonial_translations_estimate auf. Dies sendet Text, Titel und Hervorhebung der gewählten Testimonials an Google Cloud Translation (nie einen Namen, eine E-Mail oder ein Unternehmen), und das Mitglied wird per E-Mail informiert, dass ein Assistent es gestartet hat. Das Übersetzen geschieht im Hintergrund, und eine bereits gespeicherte Zeile wird nie erneut abgerufen. Bei erreichtem Zeichenkontingent des Monats werden die übrigen als wartend gespeichert und am 1. fortgesetzt. Antwortet mit 402 plan_limit unterhalb von Business und mit 422 not_configured, solange Übersetzung nicht eingerichtet ist.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/translations.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/translations/:testimonial_id/:language.json Eine gespeicherte Übersetzung entfernen testimonial_translations_delete

Das Testimonial wird überall, wo diese Sprache verwendet wurde, wieder in seinen eigenen Worten angezeigt. Dafür bereits ausgegebene Zeichen werden nicht zurückgegeben. Funktioniert in jedem Tarif. Über MCP ändert das Tool nichts und antwortet mit der Seite der App, auf der eine Person es tut.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/translations/:testimonial_id/:language.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/translations/estimate.json Die Zeichen zählen, die ein Übersetzungslauf senden würde, vor dem Ausführen testimonial_translations_estimate

Geben Sie die Testimonials auf eine Weise an: testimonial_ids, collection_id oder all_approved. Die Antwort nennt die Testimonials, die Zeichen, die gesendet würden, die bereits gespeicherten Zeichen und was vom Monat übrig ist. Sie nennt Zeichen, nie einen Preis. Es wird nichts abgerufen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/translations/estimate.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/translations.json Die gespeicherten Übersetzungen einer Website auflisten testimonial_translations_list

Eine Zeile pro Testimonial und Sprache, zuletzt geänderte zuerst, 25 pro Seite. Nach Sprache, Status, Ursprung oder testimonial_id filtern. Funktioniert in jedem Tarif, sodass vor einem Downgrade erstellte Übersetzungen weiter gelesen werden können.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/translations.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/translations/:testimonial_id/:language.json Eine Übersetzung von Hand schreiben oder korrigieren testimonial_translations_update

Die Zeile wird als bearbeitet markiert, und ein späterer Lauf überschreibt sie nicht, außer overwrite_edited wird gesendet. Es wird nichts abgerufen, und nichts zählt zum Kontingent. Das Original wird nie geändert. Ab Business (sonst 402 plan_limit).

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/translations/:testimonial_id/:language.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Testimonials

GET /sites/:site_id/testimonials/overview.json Die Zahlen einer Website lesen, was Aufmerksamkeit braucht und was zuletzt passiert ist testimonials_overview

stats enthält die fünf Zahlen der Übersichtsseite: freigegebene Testimonials, ausstehende, neue in diesem Monat, durchschnittliche Bewertung und in Verwendung. attention listet auf, was eine Entscheidung braucht, mit seiner Anzahl. activity sind die letzten 10 Ereignisse und latest_approved die drei zuletzt freigegebenen Testimonials.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/overview.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/setup.json Die Einrichtungs-Checkliste einer Website abrufen testimonials_setup_get

Gibt die Punkte import, testimonials, approve, ask, widget und teammate zurück, jeweils mit done und dismissed. Ein Punkt ist erledigt anhand dessen, was die Website enthält, nie durch einen Klick. hidden ist true, sobald jeder Punkt erledigt oder ausgeblendet ist, dann zeigt der Posteingang die Karte nicht mehr.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/setup.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/setup.json Einen Punkt der Einrichtungs-Checkliste oder die ganze Karte ausblenden testimonials_setup_update

dismiss ist ein Punktschlüssel (import, testimonials, approve, ask, widget oder teammate) oder all für die ganze Karte. Ausblenden versteckt den Punkt und markiert ihn nie als erledigt und kann über die API nicht zurückgeholt werden.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/setup.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/:id/approve.json Ein Testimonial freigeben, damit es angezeigt werden darf testimonials_approve

Ein Testimonial, das auf Kontingent wartet, kann nicht freigegeben werden: der Server antwortet mit 422 und dem Code waiting_for_allowance. Die Antwort enthält meta.undo_id.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/:id/approve.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/bulk.json Eine Aktion für eine Auswahl von Testimonials oder für alles ausführen, was ein Filter trifft testimonials_bulk

Senden Sie ids (bis zu 100, auf einmal ausgeführt, alle oder keine) oder filters mit confirm_count (das gesamte Ergebnis). Mehr als 100 laufen im Hintergrund, und die Antwort hat state running. Aktionen: approve, reject, mark_pending, pin, unpin, add_tags, remove_tags, add_to_collection, remove_from_collection, set_property, trash, restore. Jede antwortet mit einer Undo-ID, die testimonials_bulk_undo 7 Tage lang akzeptiert. delete_permanently ist die eine Aktion, die nicht rückgängig gemacht werden kann: sie braucht sites.manage, und ihre Antwort sagt undoable false. Über MCP werden die beiden Aktionen, die löschen, trash und delete_permanently, nicht ausgeführt: das Tool antwortet mit human_only und der Seite der App, auf der eine Person es tut, und jede andere Aktion läuft. Über die API ändert die Aktion export (mit ids oder filters und einem optionalen format von csv, json, ndjson oder xlsx) nichts: sie braucht analytics.export und antwortet mit 202 und dem Export zum Herunterladen.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/bulk.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/bulk/:id/undo.json Eine Massenaktion innerhalb von 7 Tagen rückgängig machen testimonials_bulk_undo

Setzt bei jedem Testimonial, das der Lauf geändert hat, den früheren Wert zurück. Eines, das seitdem erneut geändert wurde, bleibt unberührt und wird in left gezählt. Über MCP wird ein Rückgängigmachen, das löschen oder in den Papierkorb verschieben würde, nicht ausgeführt (das Rückgängigmachen einer Wiederherstellung, eines Übersetzungslaufs und eines Bilderstellungslaufs): das Tool antwortet mit human_only und der Seite der App, auf der eine Person es tut.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/bulk/:id/undo.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials.json Ein Testimonial von Hand oder über die API hinzufügen testimonials_create

Gespeichert über die eine Aufnahme, die jede Route nutzt. Es zählt zum monatlichen Kontingent des Tarifs an neuen Testimonials, und bei erreichtem Kontingent antwortet der Server mit 422 und dem Code allowance_reached (nur die Einsendung über das Formular eines Kunden wird stattdessen als wartend gehalten). Dieselbe Person, die dieselben Worte erneut sagt, wird mit dem Code duplicate abgelehnt, außer allow_duplicate ist true. Dieselbe external_id erneut gibt das bereits gespeicherte zurück.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/:id/permanent.json Ein Testimonial endgültig löschen, mit Verlauf, Einwilligungsnachweis und Dateien testimonials_delete

Das kann nicht rückgängig gemacht werden. Es funktioniert bei einem Testimonial im Papierkorb oder außerhalb, braucht confirm und die Berechtigung sites.manage. Über MCP löscht das Tool nichts und antwortet mit der Seite, auf der eine Person es tut.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/:id/permanent.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/:id.json Ein Testimonial für 30 Tage in den Papierkorb verschieben testimonials_trash

Das Testimonial behält seinen Status, seine Tags, Sammlungen und Dateien, wird nirgends angezeigt und nach 30 Tagen endgültig gelöscht. testimonials_restore setzt es genau so zurück, wie es war. Die Antwort enthält meta.undo_id. Eines, das schon im Papierkorb ist, erneut zu verschieben ändert nichts. Über MCP ändert das Tool nichts und antwortet mit der Seite der App, auf der eine Person es tut.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/facets.json Die Testimonials hinter jedem Filterwert zählen, für dieselben Eingaben wie die Liste testimonials_facets

Die Form der Bibliothek, ohne ein Testimonial zu lesen. Jede Facette zählt ihre Werte, wobei ihre eigene Auswahl ausgelassen und jeder andere Filter angewendet wird. meta enthält die Summe und den Filter in Worten.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/facets.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/:id/highlight.json Den besten Satz eines Testimonials markieren oder die Markierung löschen testimonials_highlight

highlight muss ein genauer Teil der Worte des Testimonials sein, sonst antwortet der Server mit 422. Eine leere Hervorhebung löscht sie. Jede Änderung ist eine Version im Verlauf.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/:id/highlight.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/:id/history.json Jede Version der Worte, des Titels, der Bewertung und der Hervorhebung eines Testimonials auflisten testimonials_history

Neueste zuerst. Version 1 ist das Testimonial, wie es eingegangen ist, und hat keinen Autor. Jede spätere Version hat das Mitglied, das sie erstellt hat, den Zeitpunkt, die hinterlassene Notiz und bei einer Wiederherstellung die Version, die zurückgesetzt wurde. Mit page und per_page paginiert.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/:id/history.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials.json Die Testimonials einer Website gefiltert und sortiert auflisten testimonials_list

Drei Wege, um anzugeben, welche, und sie addieren sich: die Facetten-Eingaben (status, tag_id, has_video und die übrigen), q (das Suchfeld mit seinen Operatoren, zum Beispiel rating:5 has:video tag:onboarding "saved us") und conditions mit match (strukturierte Zeilen). Senden Sie facets als true für die Live-Anzahl hinter jedem Facettenwert in meta.facets. Nichts im Papierkorb wird aufgelistet, außer trashed ist true, was nur den Papierkorb auflistet.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/:id/pend.json Ein Testimonial wieder auf ausstehend setzen testimonials_pend

Setzt ein freigegebenes oder abgelehntes Testimonial auf ausstehend zurück, sodass es nirgends angezeigt wird, bis erneut entschieden wird. Die Antwort enthält meta.undo_id. Ein Testimonial im Papierkorb wird mit dem Code in_trash abgelehnt.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/:id/pend.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/:id/pin.json Ein Testimonial anheften, damit es zuerst angezeigt wird, oder es lösen testimonials_pin

Ein angeheftetes Testimonial wird überall, wo es angezeigt wird, zuerst gezeigt. Senden Sie pinned false, um es zu lösen. Die Antwort enthält meta.undo_id, wenn sich etwas geändert hat.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/:id/pin.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/:id/reject.json Ein Testimonial ablehnen. Es wird behalten und nirgends angezeigt testimonials_reject

Das Testimonial behält alles, was es hat, und wird nirgends angezeigt. Ein bereits abgelehntes erneut abzulehnen ändert nichts. Die Antwort enthält meta.undo_id, das testimonials_bulk_undo 7 Tage lang akzeptiert. Ein Testimonial im Papierkorb wird mit dem Code in_trash abgelehnt.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/:id/reject.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/:id/restore.json Ein Testimonial aus dem Papierkorb genau so wiederherstellen, wie es war testimonials_restore

Setzt ein Testimonial im Papierkorb auf seinen Status, seine Tags, Sammlungen und die Orte zurück, die es angezeigt haben. Es zählt nie als neues Testimonial. Eines, das nicht im Papierkorb ist, wird mit dem Code not_in_trash abgelehnt.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/:id/restore.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/:id/restore_version.json Worte, Titel, Bewertung und Hervorhebung einer früheren Version zurücksetzen testimonials_restore_version

Nichts wird aus dem Verlauf entfernt. Die Wiederherstellung ist eine neue Version, die angibt, von welcher sie stammt. version 1 setzt das Testimonial auf die Worte zurück, wie sie eingegangen sind. Eine unbekannte Versionsnummer ist ein 422.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/:id/restore_version.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/:id.json Ein Testimonial mit seiner Person, den Dateien, dem Einwilligungsnachweis, den Tags und seiner Verwendung abrufen testimonials_get

Gibt ein Testimonial der Website anhand seiner ID (tm_...) zurück, im Papierkorb oder nicht. person.email ist null, außer der Aufrufer hat content.write, und has_email sagt, ob eine vorhanden ist. media listet die Dateien mit ihrem Verarbeitungsstatus. used_in listet jedes Widget, jede Wall und jedes Bild, die es anzeigen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/showable.json Die Testimonials auflisten, die die Öffentlichkeit sehen darf, so, wie sie sie sehen darf testimonials_showable

Die neuesten freigegebenen Testimonials einer Website, die öffentlich gezeigt werden dürfen, für eine eigene Anzeige außerhalb der Widgets und Walls. Jedes enthält nur, was sein Einwilligungsnachweis erlaubt: eine Person, deren Name nicht gezeigt werden darf, erscheint als A customer, und ein Foto oder eine Aufnahme fehlt, außer sie waren erlaubt. Ein ausstehendes, abgelehntes oder gelöschtes Testimonial oder eines, das auf das Kontingent wartet, wird nie aufgelistet. Die Antwort enthält keine E-Mail.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/showable.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/triage.json Das nächste Testimonial einer Triage-Warteschlange abrufen testimonials_triage

Ohne Filter ist die Warteschlange Ausstehend, nicht auf Kontingent wartend, ältester Eingang zuerst. Mit den Filtern des Posteingangs ist es dieses Ergebnis in seiner Sortierung. Senden Sie after mit der ID des gerade bearbeiteten, um das folgende zu erhalten. data ist null, wenn die Warteschlange erledigt ist. meta enthält remaining und total.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/triage.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/:id.json Ein Testimonial bearbeiten. Änderungen an Worten, Titel, Bewertung und Hervorhebung werden im Verlauf festgehalten testimonials_update

Nur die gesendeten Eingaben werden geändert. Eine Änderung an body, title, rating oder highlight fügt dem Verlauf mit edit_note eine Version hinzu und ändert nie die Verifiziert-Markierung. rating null löscht sie. highlight muss ein genauer Teil der Worte sein, und ein leerer löscht sie. properties ändert nur die gesendeten Schlüssel. add_tags und remove_tags nehmen Namen oder IDs. Status, Anheften und Papierkorb haben eigene Tools. Ein Testimonial im Papierkorb kann nicht bearbeitet werden.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Tracking

POST /sites/:site_id/tracking/ingest_key.json Den Crawler-Log-Schlüssel erstellen oder erneuern (nur einmal angezeigt) tracking_ingest_key_rotate

Erstellt einen neuen geheimen Crawler-Log-Schlüssel (er beginnt mit pik_) für eine Website und ersetzt jeden bestehenden Schlüssel. Der Schlüssel authentifiziert Uploads von Server-Zugriffslogs für den Bericht zu KI-Crawlern (POST /api/logs). Verwenden Sie es sowohl zum Erstellen des ersten Schlüssels als auch zum Rotieren. Der neue Schlüssel funktioniert sofort, und der alte funktioniert sofort nicht mehr, stellen Sie den neuen Schlüssel also umgehend bereit, um 401-Fehler bei Log-Uploads zu vermeiden. Der vollständige Schlüssel wird nur in dieser Antwort im Feld key zurückgegeben, speichern Sie ihn also in einem Secret Store. Danach wird nur ein kurzes Präfix gespeichert und angezeigt (hier prefix, an der Website ingest_key_prefix). Gibt site_id, key und prefix zurück. Erfordert sites.manage. Mit tracking_ingest_key_revoke entfernen Sie den Schlüssel, ohne ihn zu ersetzen.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/tracking/ingest_key.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/tracking/ingest_key.json Den Crawler-Log-Schlüssel widerrufen tracking_ingest_key_revoke

Entfernt den Crawler-Log-Schlüssel einer Website. Ab dann wird jeder mit diesem Schlüssel gesendete Log-Upload mit 401 abgelehnt, bis Sie mit tracking_ingest_key_rotate einen neuen erstellen. Browser-Tracking mit der öffentlichen Website-ID ist nicht betroffen. Der Schlüssel kann nicht wiederhergestellt werden. Erfordert sites.manage. Gibt das Website-Objekt zurück (siehe sites_get), in dem ingest_key_prefix jetzt null ist.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/tracking/ingest_key.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/tracking/verify.json Prüfen, ob der Tracker auf der Website installiert ist (Script-Tag, Website-ID, CSP und Referrer-Policy) tracking_verify

Ruft die Seite der Website ab und prüft, ob das Privatus-Analytics-Tracking-Script korrekt installiert ist, und markiert die Website als verifiziert, wenn das Script mit der ID dieser Website gefunden wird. Standardmäßig wird die Startseite (https://domain/) angefragt, und url kann eine andere Seite nennen, aber nur auf der eigenen Domain der Website, ihren zusätzlichen Domains oder deren Subdomains. Das Ergebnis (unter data) hat url, status (HTTP-Status), script_found, site_ids (jede auf der Seite gefundene data-site-ID), installed (true, wenn die ID dieser Website darunter ist), csp und csp_ok (ob die Content-Security-Policy der Seite das Laden und Senden des Trackers erlaubt), referrer_policy und referrer_ok (eine no-referrer-Richtlinie bedeutet, dass jeder Besuch als direkt erscheint) sowie checked_at. Es ruft über das öffentliche Internet ab, liest höchstens 2 MB und ist pro Workspace und pro Host ratenbegrenzt, antwortet also mit 429, wenn es zu oft aufgerufen wird. Ist die Seite nicht erreichbar, gibt es einen Validierungsfehler zurück. Mit sites_setup_get sehen Sie, ob Ereignisse angekommen sind. Erfordert sites.manage.

Berechtigung: sites.manage

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/tracking/verify.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/tracking/snippet.json Den Tracking-Snippet für gewählte Optionen erstellen tracking_snippet

Erstellt das HTML-Script-Tag zur Installation des Trackings auf einer Website und gibt es mit der Website-ID als data.site_id und data.snippet zurück. Wählen Sie dies statt sites_setup_get, wenn Sie es anpassen müssen, und verwenden Sie danach tracking_verify, um die Live-Seite zu prüfen. Standardmäßig wird jedes Tracker-Modul geladen, und Pageviews erfolgen automatisch. modules schränkt auf eine Teilmenge von engage (Zeit und Scrollen), auto (ausgehende Links, Downloads, Formulare, 404-Seiten), vitals (Web Vitals), clicks (Klickkarten) und ask (Umfragen auf der Website) ein. manual true deaktiviert den automatischen Pageview, sodass Sie sie selbst senden. spa setzt das Tracking der Navigation in Single-Page-Apps auf auto, history, hash oder off. domains beschränkt das Tracking auf diese Hostnamen, exclude listet zu überspringende Pfad-Globs auf, query_params listet zusätzliche zu behaltende Query-Parameter auf, und mask listet clientseitige Pfadmasken in der Schreibweise /u/*->/u/:id auf. Es wird nichts gespeichert, das Snippet wird jedes Mal aus den Eingaben erzeugt. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/tracking/snippet.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Traffic-Regeln

POST /sites/:site_id/traffic_rules.json Eine Traffic-Regel hinzufügen traffic_rules_create

Fügt einer der Sperr- oder Zulassungslisten der Website ein Muster hinzu. list ist eines von hostnames, paths, referrers, countries, ip_ranges, user_agents oder events. pattern verwendet * als Platzhalter, und der Vergleich ignoriert die Groß- und Kleinschreibung, zum Beispiel /admin/*, ein Hostname, ein Referrer-Host wie spam.example, ein zweistelliger Ländercode (in Großbuchstaben gespeichert), ein Browsername mit Hauptversion, da der User-Agent reduziert wird (zum Beispiel Chrome 120), oder ein Name eines eigenen Ereignisses. ip_ranges nehmen eine IPv4- oder IPv6-Adresse oder CIDR (203.0.113.0/24) entgegen, die gültig sein muss. Ein Muster kann pro Liste einmal vorkommen, und eine Website kann bis zu 500 Regeln haben. Ob die Liste Treffer sperrt oder zulässt, hängt von ihrem Modus ab, der standardmäßig block ist und mit sites_update geändert wird. Treffende Zugriffe werden bei der Erfassung verworfen und nicht gespeichert, und die Regel gilt innerhalb von Minuten nur für neue Zugriffe. Erfordert sites.manage. Erfordert den Tarif Pro oder höher (sonst 402 plan_limit).

Berechtigung: sites.manage

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/traffic_rules.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/traffic_rules/:id.json Eine Traffic-Regel löschen traffic_rules_delete

Löscht eine Traffic-Regel, gefunden über ihre id aus traffic_rules_list. Zugriffe, die sie verworfen hat, werden ab dann wieder gezählt, und bereits verworfene Zugriffe sind endgültig weg. Beachten Sie, dass das Löschen des letzten Musters einer Liste im Modus allow dazu führt, dass diese Liste nicht mehr filtert. Gibt die gelöschte Regel zurück. Erfordert sites.manage.

Berechtigung: sites.manage

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/traffic_rules/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/traffic_rules.json Traffic-Regeln auflisten traffic_rules_list

Listet die Traffic-Regeln der Website auf, also Sperr- oder Zulassungslisten, die bei der Erfassung angewendet werden, um zu entscheiden, welche Zugriffe zählen. Jede Regel hat id (eine UUID für Update und Delete), list (hostnames, paths, referrers, countries, ip_ranges, user_agents oder events), pattern, label (optionale Notiz), mode (block oder allow, der Modus der gesamten Liste) und created_at. Im Modus block wird ein Zugriff verworfen, der zu einem beliebigen Muster der Liste passt, im Modus allow wird ein Zugriff verworfen, der zu keinem passt, und eine leere Liste filtert nichts. Filtern Sie mit list. Der Modus einer Liste wird hier nicht gesetzt, sondern mit sites_update über traffic_rule_modes. Mit traffic_rules_test prüfen Sie einen Beispielzugriff. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/traffic_rules.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/traffic_rules/test.json Testen, ob ein Treffer mit den aktuellen Regeln der Website gezählt würde traffic_rules_test

Trockenlauf, der Ihnen sagt, ob ein Beispielzugriff nach den aktuellen Traffic-Regeln der Website gezählt würde. Es wird nichts gespeichert. Senden Sie beliebige der Angaben url (eine vollständige Seiten-URL, geprüft werden Host und Pfad), referrer (URL oder Hostname), country (zweistelliger Code), ip (wird gegen ip_ranges geprüft, nie gespeichert), user_agent (ein vollständiger User-Agent-String, reduziert auf Browser und Hauptversion) und event (ein Name eines eigenen Ereignisses). Weggelassene Werte werden nicht geprüft. Das Ergebnis hat counted (true, wenn der Zugriff erfasst würde), blocked_by (die Liste, die ihn verworfen hat, oder null), mode (block oder allow für diese Liste oder null) und values (die normalisierten Werte, die geprüft wurden). Regeln werden live gelesen, eine neue Regel wirkt also sofort. Erfordert analytics.read. Erfordert den Tarif Pro oder höher (sonst 402 plan_limit).

Berechtigung: analytics.read

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/traffic_rules/test.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
PATCH /sites/:site_id/traffic_rules/:id.json Eine Traffic-Regel ändern traffic_rules_update

Ändert das Muster oder das Label einer Traffic-Regel, gefunden über ihre id aus traffic_rules_list. Nur die Eingaben, die Sie senden, ändern sich. Die Liste kann nicht geändert werden, löschen Sie die Regel und erstellen Sie sie neu, um sie in eine andere Liste zu verschieben. Das Muster muss für seine Liste gültig bleiben (ein CIDR bei ip_ranges) und darin eindeutig sein. Senden Sie ein leeres Label, um es zu leeren. Gilt nur für neue Zugriffe. Erfordert sites.manage. Erfordert den Tarif Pro oder höher (sonst 402 plan_limit).

Berechtigung: sites.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/traffic_rules/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Umfragen

POST /sites/:site_id/surveys.json Eine Umfrage erstellen surveys_create

Erstellt eine cookielose Umfrage auf der Website für eine Website. Sie sammelt nichts, bis ihr Status active ist, erstellen Sie sie also zuerst als draft oder übergeben Sie status active, um sofort zu starten. Pflicht sind name (intern, Besucher sehen ihn nie, max. 120 Zeichen) und questions (1 bis 5 Zeilen in Reihenfolge). Jede Frage ist ein Objekt mit key (optional, eine stabile ID aus Kleinbuchstaben, Ziffern und Unterstrichen, wird erzeugt, wenn sie fehlt), kind (text, choice, multi, rating, nps oder yes_no), prompt (Pflicht, max. 200 Zeichen), required (Boolean), choices (eine Liste mit bis zu 10 Optionen, nur für choice und multi) und scale (3, 5, 7 oder 10, nur für rating, Standard 5). NPS verwendet immer 0 bis 10. Das Targeting besteht aus trigger_kind (immediate, delay, scroll, exit oder manual) mit delay_seconds (0 bis 600, Standard 10, nur für delay) und scroll_percent (1 bis 100, Standard 50, nur für scroll), paths (Zeilen mit match_type exact, prefix oder glob und pattern, leer bedeutet jede Seite), devices (desktop, mobile, tablet, leer bedeutet alle), position (bottom_right, bottom_left oder center), sample_rate (1 bis 100 Prozent der Besucher), thank_you (max. 200 Zeichen), starts_on und ends_on (YYYY-MM-DD). Umfragen dürfen nicht nach einer E-Mail-Adresse fragen, und geschriebene Antworten werden von personenbezogenen Daten bereinigt. Der Tarif Free erlaubt 1 Umfrage pro Workspace und eine begrenzte Anzahl von Antworten im Monat, bezahlte Tarife sind unbegrenzt. Erfordert die Berechtigung content.write. Gibt die Umfrage mit id (svy_...) zurück. Antworten lesen Sie mit surveys_get.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/surveys.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/surveys/:id.json Eine Umfrage mit ihren Antworten löschen surveys_delete

Löscht eine Umfrage dauerhaft samt allen ihren Antworten. Das kann nicht rückgängig gemacht werden, und die Ergebnisse gehen verloren. Verwenden Sie stattdessen surveys_pause, wenn Sie nur das Sammeln beenden möchten. Die id stammt aus surveys_list, und die site_id ist erforderlich. Erfordert die Berechtigung content.write. Gibt die gelöschte Umfrage zurück.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/surveys/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/surveys.json Die Umfragen einer Website mit ihrer Antwortzahl auflisten surveys_list

Listet die Umfragen einer Website auf, neueste zuerst, mit ihren Einstellungen und Antwortzahlen. Filtern Sie mit status (draft, active, paused oder all, Standard all). Paginiert mit page und per_page (Standard 25, bis zu 100). Jede Umfrage hat id (svy_...), name, status, questions, Targeting-Einstellungen, starts_on, ends_on, created_at, updated_at und stats (Anzahlen für responses, completed und this_month). Für die Antworten und Ergebnisse einer Umfrage verwenden Sie surveys_get.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/surveys.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/surveys/:id/pause.json Das Sammeln von Antworten beenden und die bereits gegebenen behalten surveys_pause

Pausiert eine Umfrage, sodass sie Besuchern sofort nicht mehr angeboten wird. Bereits gesammelte Antworten bleiben erhalten und werden in surveys_get angezeigt, und surveys_start setzt sie fort. Verwenden Sie es statt surveys_delete, wenn Sie nur das Sammeln beenden möchten. Die id stammt aus surveys_list, und die site_id ist erforderlich. Erfordert die Berechtigung content.write. Gibt die Umfrage mit dem Status paused zurück.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/surveys/:id/pause.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/surveys/:id.json Umfrageergebnisse für einen Zeitraum, aufgeschlüsselt nach Frage surveys_get

Gibt den Ergebnisbericht einer Umfrage für einen Zeitraum zurück, nicht nur ihre Einstellungen (für Einstellungen und Zahlen verwenden Sie surveys_list). Wählen Sie das Preset period (Standard 30d) oder period custom mit from und to. Die Antwort hat survey (ihre Einstellungen), period (from und to als ISO-8601-Zeiten), responses (Personen, die mindestens eine Frage beantwortet haben), completed (Personen, die die letzte Frage beantwortet haben), questions (ein Eintrag pro Frage mit key, kind, prompt und der Anzahl der answers, plus Details je Art) sowie pages, devices und countries (jeweils bis zu 10 Zeilen mit value und count). Die Details je Art sind texts (bis zu 100 neueste geschriebene Antworten mit text und at) bei text, choices (value, count, share als Prozent mit einer Nachkommastelle, offered) bei choice, multi und yes_no, average (null ohne Antworten), scale und distribution bei rating sowie score (NPS von -100 bis 100, null ohne Antworten), promoters (9 und 10), passives (7 und 8), detractors (0 bis 6) und distribution bei nps. Mit surveys_themes fassen Sie geschriebene Antworten zusammen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/surveys/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/surveys/:id/start.json Mit dem Sammeln von Antworten beginnen surveys_start

Setzt eine Umfrage auf active, sodass sie Besuchern angeboten werden kann. Sie erscheint nur, wenn das aktuelle Datum zwischen starts_on und ends_on liegt (sofern gesetzt), die Seite zu ihren paths und devices passt und das monatliche Antwortkontingent des Tarifs nicht aufgebraucht ist. Verwenden Sie es für einen Entwurf oder eine pausierte Umfrage. Die id stammt aus surveys_list, und die site_id ist erforderlich. Erfordert die Berechtigung content.write. Gibt die Umfrage mit dem Status active zurück. Mit surveys_pause stoppen Sie sie wieder.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/surveys/:id/start.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/surveys/:id/themes.json Die Freitextantworten auf eine Frage zu Themen bündeln (Business-Tarif) surveys_themes

Nutzt KI, um die geschriebenen Antworten auf eine Freitextfrage in Themen zu gruppieren. Nur Tarif Business. Wählen Sie es, nachdem surveys_get eine Textfrage mit genügend Antworten zeigt, und übergeben Sie question_key (den key einer Frage der Art text aus surveys_get). Es braucht mindestens 5 geschriebene Antworten und verwendet die 300 neuesten. Das Ergebnis listet bis zu 12 Themen auf, jeweils mit label, count, sentiment (positive, neutral oder negative) und example (eine repräsentative Antwort, kann null sein), plus answers (wie viele Antworten zusammengefasst wurden) und generated_at. Jede neue Erzeugung verbraucht eine Frage aus dem monatlichen KI-Kontingent des Workspace, die bei einem Fehlschlag zurückgegeben wird. Das Ergebnis wird gegen die Antworten zwischengespeichert, ein erneuter Aufruf ohne neue Antworten kostet also nichts. Es schlägt mit einem Validierungsfehler fehl, wenn der Tarif es nicht enthält, das Kontingent aufgebraucht ist, die KI nicht konfiguriert ist oder zu wenige Antworten vorliegen.

Berechtigung: analytics.read

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/surveys/:id/themes.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
PATCH /sites/:site_id/surveys/:id.json Eine Umfrage aktualisieren surveys_update

Ändert eine Umfrage. Nur die Eingaben, die Sie senden, ändern sich. Eingaben und Limits sind dieselben wie bei surveys_create, mit status draft, active oder paused. Wenn Sie questions senden, wird die gesamte Liste ersetzt. Nehmen Sie also jede Frage auf, die Sie behalten möchten, und behalten Sie jeden bestehenden key, um die gesammelten Antworten zu behalten (das Umformulieren eines prompt mit demselben key teilt die Ergebnisse nicht auf). Fragen, die Sie weglassen, erscheinen nicht mehr in den Ergebnissen. Änderungen am Targeting wirken sofort für Besucher. Die id stammt aus surveys_list, und die site_id ist erforderlich. Erfordert die Berechtigung content.write. Gibt die aktualisierte Umfrage zurück.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/surveys/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Verfügbarkeit

POST /sites/:site_id/uptime.json Eine Verfügbarkeitsprüfung für eine Website hinzufügen uptime_checks_create

Fügt eine Verfügbarkeitsprüfung hinzu, die an eine Website gebunden ist. Verwenden Sie workspace_uptime_checks_create für eine Prüfung, die zu keiner Website gehört. kind bestimmt das Ziel. http prüft den Statuscode von url, keyword prüft, ob der Antwort-Body von url das keyword enthält, tcp verbindet sich mit host und port, und dns prüft, ob host aufgelöst wird. Felder für andere Arten werden ignoriert. url ist bei http-Prüfungen standardmäßig die Startseite der Website. expected_status (100 bis 599, Standard 200), http_method (GET oder HEAD) und timeout_seconds (1 bis 30, Standard 20) gelten für http- und keyword-Prüfungen. interval_seconds ist die Zeit zwischen Abfragen, sie muss mindestens dem Minimum des Tarifs entsprechen (Free 300, Pro 60, Business 30) und ist standardmäßig 300 oder das Minimum, falls es höher ist. public true lässt die Prüfung auf einer Statusseite erscheinen. Private und interne Adressen werden abgelehnt, und der Tarif begrenzt die Anzahl der Prüfungen pro Workspace (Free 3, Pro 20, Business 100). Die erste Abfrage läuft innerhalb von Augenblicken, status beginnt als pending. Erfordert die Berechtigung uptime.manage. Gibt die Prüfung mit id (upc_...) zurück.

Berechtigung: uptime.manage

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/uptime.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /uptime/checks/:id.json Eine Verfügbarkeitsprüfung und ihren Verlauf löschen uptime_checks_delete

Löscht eine Verfügbarkeitsprüfung dauerhaft samt ihren Ergebnissen und ihrem Vorfallsverlauf und entfernt sie von jeder Statusseite, die sie zeigt. Das kann nicht rückgängig gemacht werden. Mit uptime_checks_pause beenden Sie die Abfragen, behalten aber den Verlauf. Die id stammt aus uptime_checks_list. Erfordert die Berechtigung uptime.manage. Gibt die gelöschte Prüfung zurück.

Berechtigung: uptime.manage

Beispiel
curl -X DELETE https://privatusanalytics.com/uptime/checks/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/uptime.json Die Verfügbarkeitsprüfungen einer Website auflisten uptime_checks_list

Listet die Verfügbarkeitsprüfungen einer Website auf, einschließlich Workspace-weiter Prüfungen, die die Domain der Website oder eine ihrer Subdomains abfragen. Nach Name sortiert. Für jede Prüfung im Workspace verwenden Sie workspace_uptime_checks_list. Filtern Sie mit status (up, down, pending oder paused) oder query (Teil von Name, URL oder Host). Paginiert mit page und per_page (bis zu 100). Jede Prüfung hat id (upc_...), workspace_id, site_id (null bei Workspace-weiten Prüfungen), name, kind, url, host, port, keyword, expected_status, http_method, interval_seconds, timeout_seconds, status (up, down, pending oder paused), enabled, public, last_checked_at, next_check_at, last_response_ms (Millisekunden), ssl_expires_at, ssl_issuer, domain_expires_at und created_at. Für Verfügbarkeitsprozente und Vorfälle verwenden Sie uptime_checks_get.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/uptime.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /uptime/checks/:id/pause.json Eine Verfügbarkeitsprüfung pausieren uptime_checks_pause

Pausiert eine Verfügbarkeitsprüfung, sodass sie nicht mehr abgefragt wird. Jeder offene Vorfall wird sofort geschlossen, und solange sie pausiert ist, werden keine Down- oder Up-Alarme gesendet. Der Verlauf bleibt erhalten, und ihr Status wird als paused angezeigt. Setzen Sie sie mit uptime_checks_resume fort. Die id stammt aus uptime_checks_list. Erfordert die Berechtigung uptime.manage. Gibt die Prüfung zurück.

Berechtigung: uptime.manage

Beispiel
curl -X POST https://privatusanalytics.com/uptime/checks/:id/pause.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /uptime/checks/:id/resume.json Eine pausierte Verfügbarkeitsprüfung fortsetzen uptime_checks_resume

Setzt eine pausierte Verfügbarkeitsprüfung fort. Sie wird beim nächsten Takt des Schedulers abgefragt, und ihr Status ist pending, bis das erste Ergebnis eingeht. Die id stammt aus uptime_checks_list. Erfordert die Berechtigung uptime.manage. Gibt die Prüfung zurück.

Berechtigung: uptime.manage

Beispiel
curl -X POST https://privatusanalytics.com/uptime/checks/:id/resume.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /uptime/checks/:id.json Eine Verfügbarkeitsprüfung abrufen: Verfügbarkeit 24 Std./7 Tage/30 Tage, Antwortzeiten und Vorfälle uptime_checks_get

Gibt eine Verfügbarkeitsprüfung mit ihrem Verlauf zurück, nicht nur mit ihren Einstellungen. Wählen Sie range (24h Standard, 7d oder 30d) für das Antwortzeit-Diagramm. Die Antwort hat check (Einstellungen und Live-Zustand, siehe uptime_checks_list), uptime (Prozent für 24h, 7d und 30d, null, bis die erste Abfrage gelaufen ist), range, response_times (Einheit hour oder day, Beschriftungen als ISO-8601-Zeiten und series der durchschnittlichen Antwortzeit in Millisekunden pro Standort mit null für Lücken) und incidents (die 50 neuesten mit started_at, resolved_at null, solange noch offen, duration_seconds, cause und failed_locations). Nur erfolgreiche Abfragen zählen für die Antwortzeiten. Die id stammt aus uptime_checks_list.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/uptime/checks/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /uptime/checks/:id.json Eine Verfügbarkeitsprüfung ändern uptime_checks_update

Ändert eine Verfügbarkeitsprüfung. Nur die Eingaben, die Sie senden, ändern sich. Regeln und Limits sind dieselben wie bei uptime_checks_create (das Intervall muss mindestens dem Minimum des Tarifs entsprechen, private Adressen werden abgelehnt). Die Änderung von kind leert die Zielfelder, die nicht mehr zutreffen. Die Änderung von interval_seconds plant die nächste Abfrage sofort ein. Die id stammt aus uptime_checks_list. Erfordert die Berechtigung uptime.manage. Gibt die aktualisierte Prüfung zurück.

Berechtigung: uptime.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/uptime/checks/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /uptime/probes.json Probe-Rechenzentrum, User-Agent und ausgehende IP-Bereiche (zum Freigeben unserer Verfügbarkeits-Probes) uptime_probes_list

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/uptime/probes.json
POST /uptime/probes/results.json Ergebnisse eines externen Probe-Agents übermitteln (Bearer-Uptime-Probe-Token) uptime_probes_results

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/uptime/probes/results.json \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/uptime.json Eine Workspace-Verfügbarkeitsprüfung hinzufügen (nicht an eine Website gebunden) workspace_uptime_checks_create

Fügt eine Verfügbarkeitsprüfung hinzu, die zum ganzen Workspace statt zu einer Website gehört. Verwenden Sie uptime_checks_create, um eine Prüfung an eine Website zu binden. Eingaben, Tariflimits und Regeln sind dieselben, siehe uptime_checks_create. kind ist http, keyword, tcp oder dns und bestimmt, welche der Felder url, keyword, host und port gelten. Weil es keine Website gibt, braucht eine http-Prüfung eine ausdrückliche url. Aufrufer, die auf einige Websites beschränkt sind, können keine Workspace-weiten Prüfungen erstellen. Benötigt die workspace_id aus workspaces_list und die Berechtigung uptime.manage. Gibt die Prüfung mit id (upc_...) und site_id null zurück.

Berechtigung: uptime.manage

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/uptime.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/uptime.json Alle Verfügbarkeitsprüfungen eines Workspaces auflisten workspace_uptime_checks_list

Listet jede Verfügbarkeitsprüfung eines Workspace auf, einschließlich Prüfungen, die an keine Website gebunden sind, nach Name sortiert. Ein auf einige Websites beschränkter Aufrufer sieht nur Prüfungen dieser Websites. Für die Prüfungen einer Website verwenden Sie uptime_checks_list. Filtern Sie mit status (up, down, pending oder paused) oder query (Teil von Name, URL oder Host). Paginiert mit page und per_page (bis zu 100). Jeder Eintrag hat die in uptime_checks_list beschriebenen Felder. Benötigt die workspace_id aus workspaces_list.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/uptime.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Walls of Love

POST /sites/:site_id/testimonials/walls.json Eine Wall of Love erstellen testimonial_walls_create

Eine gehostete Seite unter https://privatus.page/w/<slug>. Alles, was weggelassen wird, beginnt mit einem Standard: der Titel Wall of Love, das Masonry-Layout, der Slug aus dem Namen.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/walls.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/walls/:id.json Eine Wall in den Papierkorb verschieben testimonial_walls_trash

Ihre Seite antwortet, dass sie offline genommen wurde, bis sie wiederhergestellt wird, und eine eingebettete Kopie rendert nichts. Das Wiederherstellen bringt sie unter derselben Adresse zurück. Sie wird nach 30 Tagen endgültig gelöscht. Über MCP ändert das Tool nichts und antwortet mit der Seite der App, auf der eine Person es tut.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/walls/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/walls/:id/duplicate.json Eine Wall unter neuem Namen und neuer Adresse kopieren testimonial_walls_duplicate

Erstellt eine Kopie mit neuer ID, einem Namen, der auf "copy" endet, und einem eigenen Slug, sodass sie ihre eigene Adresse hat. Das Original und seine Adresse werden nicht geändert.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/walls/:id/duplicate.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/walls/:id/embed.json Den Link zu einer Wall und den Code abrufen, um sie in eine andere Seite einzubetten testimonial_walls_embed

Die öffentliche Adresse der Wall und die Script-, Frame- und einfachen Link-Snippets, die sie in eine andere Seite einbetten. Die Snippets ändern sich nie, wenn die Wall bearbeitet wird.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/walls/:id/embed.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/walls.json Die Walls of Love einer Website auflisten testimonial_walls_list

Jede Wall of Love der Website, die nicht im Papierkorb ist, mit ihrer Adresse, dem, was sie speist, und wie viele Testimonials sie zeigt. Verwenden Sie q, um nach Name oder Slug zu suchen, und sort, um nach Name oder nach den neuesten zu ordnen.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/walls.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/walls/:id/restore.json Eine Wall aus dem Papierkorb wiederherstellen testimonial_walls_restore

Holt eine Wall aus dem Papierkorb. Ihre Seite antwortet wieder unter derselben Adresse, und jede eingebettete Kopie zeigt sie wieder, ohne dass der eingefügte Code geändert werden muss.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/walls/:id/restore.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/walls/:id.json Eine Wall mit jeder Einstellung abrufen testimonial_walls_get

Alles, was der Builder speichert: die Adresse (/w/<slug>), den Kopfbereich und die Schaltfläche, das Layout, was die Wall speist, was jede Karte zeigt, den Stil und die Suchmaschineneinstellungen. Eine Wall im Papierkorb antwortet mit 404.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/walls/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/walls/:id.json Eine Wall ändern testimonial_walls_update

Nur die gesendeten Eingaben ändern sich. Ein geänderter Slug lässt die alte Adresse weiterleiten.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/walls/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Warehouse-Sync

POST /workspaces/:workspace_id/warehouses.json Ein Warehouse-Ziel hinzufügen warehouse_destinations_create

Fügt ein Warehouse-Ziel hinzu, das die rohen Ereignisse jedes Tages erhält (nur Tarif Business). Täglich um 02:00 UTC wird der vorherige UTC-Tag hochgeladen, der erste Lauf findet um 02:00 UTC danach statt, und ein fehlgeschlagener Lauf wird eine Stunde später wiederholt. kind muss angegeben werden und bestimmt die erforderlichen Einstellungen. s3 (auch GCS, R2 und MinIO über endpoint) braucht bucket, access_key_id und secret_access_key, mit optionalen region, prefix und endpoint (https, nur öffentliche Hosts). bigquery braucht service_account_json, dataset und table, mit optionalem project_id. snowflake braucht account, user, private_key (PEM RSA), database, schema und table, mit optionalen warehouse und role. azure braucht sas_url (einen https-Blob-Container-SAS-Link mit Schreibberechtigung), mit optionalem prefix. Secrets (secret_access_key, service_account_json, private_key, sas_url) sind nur schreibbar und werden nie zurückgegeben. site_ids beschränkt die Websites (pa_...-IDs), leer bedeutet jede Website, und ein auf einige Websites beschränktes Mitglied oder Token muss sie nennen. Ereigniseigenschaften werden nur gesendet, wenn sie als exportsicher markiert sind (siehe event_properties_list). Erfordert die Berechtigung workspace.manage. Gibt das Ziel mit id (whd_...), einem maskierten target und configured (den Namen der ausgefüllten Einstellungen) zurück.

Berechtigung: workspace.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/warehouses.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /warehouses/:id.json Ein Warehouse-Ziel löschen warehouse_destinations_delete

Löscht ein Warehouse-Ziel, sodass nichts mehr gesendet wird. Bereits hochgeladene Daten bleiben in Ihrem Bucket oder Warehouse, und das kann nicht rückgängig gemacht werden, auch wenn Sie das Ziel erneut hinzufügen können (der Verlauf wird nicht automatisch erneut gesendet). Eine noch in der Warteschlange befindliche manuelle Synchronisierung wird nicht zurückgerufen. Die id stammt aus warehouse_destinations_list. Erfordert die Berechtigung workspace.manage. Gibt das gelöschte Ziel zurück.

Berechtigung: workspace.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/warehouses/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/warehouses.json Warehouse-Ziele auflisten warehouse_destinations_list

Listet die Warehouse-Ziele eines Workspace nach Name sortiert auf, optional nur eine Art (s3, bigquery, snowflake oder azure). Ein auf einige Websites beschränktes Mitglied oder Token sieht nur Ziele, deren Websites alle zu seinen gehören, und Ziele, die jede Website senden, sind für sie ausgeblendet. Paginiert mit page und per_page (bis zu 100). Jeder Eintrag hat die in warehouse_destinations_get beschriebenen Felder. Benötigt die workspace_id aus workspaces_list und die Berechtigung workspace.manage.

Berechtigung: workspace.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/warehouses.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /warehouses/:id.json Ein Warehouse-Ziel abrufen (ohne Geheimnisse) warehouse_destinations_get

Gibt ein Warehouse-Ziel ohne Zugangsdaten zurück. Die Felder sind id (whd_...), kind (s3, bigquery, snowflake oder azure), name, target (eine maskierte Zusammenfassung wie s3://bucket/prefix), configured (Namen der ausgefüllten Einstellungen, Secrets erscheinen nur mit ihrem Namen), site_ids (leer bedeutet jede Website), schedule (daily), schema_version (das gesendete Zeilenlayout), last_run_at, next_run_at, last_error (null, wenn der letzte Lauf funktioniert hat) und created_at. Die id stammt aus warehouse_destinations_list. Prüfen Sie last_error nach warehouse_destinations_sync, um zu sehen, wie eine Synchronisierung verlief.

Berechtigung: workspace.manage

Beispiel
curl https://privatusanalytics.com/warehouses/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /warehouses/:id/sync.json Die Synchronisierung eines Tages jetzt in die Warteschlange stellen warehouse_destinations_sync

Stellt außerhalb des täglichen Zeitplans einen sofortigen Upload eines UTC-Tages mit rohen Ereignissen an ein Ziel in die Warteschlange. Nur Tarif Business. date (YYYY-MM-DD) muss in UTC vor heute liegen und ist standardmäßig gestern. Es lädt diesen Tag für jede Website des Ziels hoch, vermeiden Sie also die Synchronisierung eines bereits gesendeten Tages, und manuelle Synchronisierungen sind auf 30 pro Stunde und Workspace ratenbegrenzt. Der Aufruf gibt sofort 202 mit dem Ziel zurück, und der Upload läuft im Hintergrund. Fragen Sie warehouse_destinations_get ab und lesen Sie last_run_at und last_error, um das Ergebnis zu sehen. Die id stammt aus warehouse_destinations_list. Erfordert die Berechtigung workspace.manage.

Berechtigung: workspace.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/warehouses/:id/sync.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
PATCH /warehouses/:id.json Ein Warehouse-Ziel aktualisieren (leere Geheimnisse bleiben erhalten) warehouse_destinations_update

Ändert ein Warehouse-Ziel (nur Tarif Business). Nur die Eingaben, die Sie senden, ändern sich, und kind kann nicht geändert werden. Ein leeres Secret behält den gespeicherten Wert, sodass Sie andere Einstellungen bearbeiten können, ohne die Zugangsdaten erneut zu senden. Einstellungen werden für die Art des Ziels wie bei warehouse_destinations_create validiert. Das Senden von site_ids ersetzt die Liste der Websites. Ändert sich das Ziel (ein anderer Bucket, ein anderes Dataset, eine andere Tabelle, Datenbank oder Ähnliches), beginnt der Fortschritt unfertiger Tage von vorn, diese Tage werden also erneut an den neuen Ort gesendet. Die id stammt aus warehouse_destinations_list. Erfordert die Berechtigung workspace.manage. Gibt das aktualisierte Ziel zurück.

Berechtigung: workspace.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X PATCH https://privatusanalytics.com/warehouses/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Webhooks

GET /workspaces/:workspace_id/webhooks/:webhook_id/deliveries.json Zustellungen eines Webhooks auflisten webhook_deliveries_list

Listet die an einen Webhook gesendeten Zustellungen auf (der Pfad nimmt webhook_id entgegen), neueste zuerst und paginiert. Jede hat id (whd_...), event, status (pending, succeeded bei jeder 2xx-Antwort oder failed), status_code (null, wenn keine Antwort kam), error (ein kurzer Grund wie ein Timeout, sonst null), attempt (wie viele Versuche bisher), duration_ms, payload (die gesendeten JSON-Daten), response_body (die ersten 2000 Zeichen der Antwort) sowie delivered_at und created_at. Filtern Sie mit status succeeded oder failed. Verwenden Sie es, um einen Endpoint zu debuggen, und webhook_deliveries_redeliver, um eine erneut zu senden.

Berechtigung: workspace.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/webhooks/:webhook_id/deliveries.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /workspaces/:workspace_id/webhooks/:webhook_id/deliveries/:id/redeliver.json Eine Zustellung erneut senden webhook_deliveries_redeliver

Sendet die Nutzlast einer früheren Zustellung als neue Zustellung erneut an denselben Endpoint (id whd_..., aus webhook_deliveries_list). Dies sendet eine HTTP-Anfrage an die URL des Kunden, daher verarbeitet der Empfänger dasselbe Ereignis möglicherweise zweimal. Es ist pro Workspace ratenbegrenzt (gemeinsam mit webhooks_test). Es wird in die Warteschlange gestellt, die Antwort ist also eine neue Zustellung mit dem Status pending, lesen Sie webhook_deliveries_list, um das Ergebnis zu sehen.

Berechtigung: workspace.manage

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/webhooks/:webhook_id/deliveries/:id/redeliver.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces/:workspace_id/webhooks.json Einen Webhook-Endpunkt hinzufügen webhooks_create

Fügt einen Endpoint hinzu, der per POST gesendetes JSON für Workspace-Ereignisse erhält (der Pfad nimmt workspace_id entgegen). url muss eine öffentliche https-Adresse sein, private und interne Adressen werden abgelehnt. events ist eine erforderliche Liste, ausgewählt aus alert.triggered, alert.resolved, goal.completed_threshold, uptime.down, uptime.up, export.ready, import.completed, import.failed, site.created, site.deleted, member.added, usage.threshold und site_audit.completed. enabled ist standardmäßig true. Ein Signatur-Secret (whsec_...) wird erzeugt und in der Antwort zurückgegeben, und jede Zustellung trägt einen Header Privatus-Signature mit einem Zeitstempel und einem damit gebildeten HMAC-SHA256 des Body. Fehlgeschlagene Zustellungen werden mit Backoff wiederholt, und der Endpoint wird nach 20 Fehlschlägen in Folge deaktiviert. Mit webhooks_test senden Sie ein Beispiel.

Berechtigung: workspace.manage

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/webhooks.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /workspaces/:workspace_id/webhooks/:id.json Einen Webhook löschen webhooks_delete

Löscht einen Webhook-Endpoint und sein gesamtes Zustellungsprotokoll. Das kann nicht rückgängig gemacht werden, und ausstehende Wiederholungen enden. Um ihn stattdessen zu pausieren, verwenden Sie webhooks_update mit enabled false. Die id (wh_...) stammt aus webhooks_list. Gibt den gelöschten Webhook zurück.

Berechtigung: workspace.manage

Beispiel
curl -X DELETE https://privatusanalytics.com/workspaces/:workspace_id/webhooks/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/webhooks.json Webhooks auflisten webhooks_list

Listet die ausgehenden Webhook-Endpoints eines Workspace auf (der Pfad nimmt workspace_id entgegen), älteste zuerst. Jeder hat id (wh_...), url, events (die Ereignisnamen, die er erhält), enabled, status (active, failing nach kürzlichen Fehlschlägen oder disabled), secret (das Signatur-Secret, behandeln Sie es als vertraulich), consecutive_failures, last_success_at, last_failure_at und created_at. Erfordert die Berechtigung workspace.manage. Dies dient dazu, rohe Ereignisse an Ihren eigenen Server zu senden. Um Personen zu benachrichtigen, verwenden Sie notification_channels_list. Was gesendet wurde, zeigt webhook_deliveries_list.

Berechtigung: workspace.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/webhooks.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /workspaces/:workspace_id/webhooks/:id.json Einen Webhook abrufen webhooks_get

Gibt einen Webhook-Endpoint anhand der id zurück (wh_..., aus webhooks_list), einschließlich seines Signatur-Secrets (whsec_...), mit dem der Header Privatus-Signature jeder Zustellung verifiziert wird. Die Felder sind url, events, enabled, status (active, failing oder disabled), secret, consecutive_failures, last_success_at, last_failure_at und created_at. Erfordert die Berechtigung workspace.manage.

Berechtigung: workspace.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/webhooks/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /workspaces/:workspace_id/webhooks/:id/test.json Eine Testzustellung senden webhooks_test

Stellt eine Zustellung webhook.test mit einer Beispielnachricht an einen Endpoint in die Warteschlange, auch wenn er deaktiviert ist, wodurch eine HTTP-Anfrage an die URL des Kunden gesendet wird. Es ist pro Workspace ratenbegrenzt (gemeinsam mit webhook_deliveries_redeliver), und ein Test wird nicht wiederholt. Die Zustellung wird im Hintergrund gesendet, die Antwort gibt also die eingereihte Zustellung mit dem Status pending zurück. Lesen Sie einen Moment später webhook_deliveries_list, um status_code, error, duration_ms und response_body zu sehen.

Berechtigung: workspace.manage

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/webhooks/:id/test.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
PATCH /workspaces/:workspace_id/webhooks/:id.json Einen Webhook aktualisieren (Ereignisse, URL, aktiviert, Secret erneuern) webhooks_update

Ändert einen Webhook (id aus webhooks_list). Nur die Eingaben, die Sie senden, ändern sich. Das Senden von events ersetzt die gesamte Liste. Das Setzen von enabled true bei einem deaktivierten Endpoint setzt seinen Fehlerzähler zurück, so schalten Sie einen wieder ein, der nach wiederholten Fehlschlägen deaktiviert wurde. Setzen Sie rotate_secret true, um ein neues Signatur-Secret zu erzeugen, das in der Antwort angezeigt wird, und das alte funktioniert sofort nicht mehr, der Empfänger muss also aktualisiert werden. Die url-Regeln sind dieselben wie bei webhooks_create. Gibt den Webhook zurück.

Berechtigung: workspace.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/workspaces/:workspace_id/webhooks/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Webseite

GET /blog.json Blogbeiträge auflisten blog_list

Listet die Beiträge des Blogs von Privatus Analytics auf, neueste zuerst, mit slug, title, kicker, rubric (die Ein-Satz-Zusammenfassung), description, path und Datumsangaben, ohne Text. Um einen zu lesen, verwenden Sie blog_get mit seinem Slug. Paginiert mit page und per_page (maximal 100). Öffentlich, keine Authentifizierung nötig.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/blog.json
GET /blog/:slug.json Einen Blogbeitrag lesen (Markdown und HTML) blog_get

Gibt einen Blogbeitrag anhand seines Slugs (aus blog_list, der letzte Teil von /blog/<slug>) mit seinen Überschriften, seinem Markdown-Text und dem gerenderten HTML zurück. Beiträge sind auf Englisch geschrieben. Öffentlich, keine Authentifizierung nötig.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/blog/:slug.json
GET /changelog.json Changelog-Einträge auflisten changelog_list

Veröffentlichte Produkt-Updates, neueste zuerst. Auch als RSS unter /changelog.rss verfügbar.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/changelog.json
POST /contact.json Eine Nachricht an das Privatus-Analytics-Team senden contact_create

Browser-Clients senden ein Cloudflare-Turnstile-Token als `cf-turnstile-response`. Anfragen mit einem API-Token benötigen keines.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/contact.json \
  -H "Content-Type: application/json" -d '{…}'
POST /newsletter/confirm.json Ein Newsletter-Abonnement bestätigen (signiertes Token) newsletter_confirm

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/newsletter/confirm.json \
  -H "Content-Type: application/json" -d '{…}'
POST /newsletter.json Eine E-Mail-Adresse für den Newsletter anmelden newsletter_subscribe

Browser-Clients senden ein Cloudflare-Turnstile-Token als `cf-turnstile-response`. Anfragen mit einem API-Token benötigen keines.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/newsletter.json \
  -H "Content-Type: application/json" -d '{…}'
POST /newsletter/unsubscribe.json Mit einem signierten Link-Token abbestellen newsletter_unsubscribe

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/newsletter/unsubscribe.json \
  -H "Content-Type: application/json" -d '{…}'
GET /pricing.json Tarife, Preise und Tariflimits abrufen pricing_get

Dieselben Daten wie auf der Preisseite: die Ereignisstaffel, jedes Tariflimit und was als Ereignis zählt. Übergeben Sie events, um die passende Stufe zu erhalten.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/pricing.json
GET /status.json Den aktuellen Systemstatus abrufen status_get

Zustand von Datenbank, Redis und Hintergrundjobs, höchstens alle 15 Sekunden geprüft.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/status.json
GET /tools/header-checker.json Die Referrer-Policy und CSP einer Seite für Analysen prüfen tools_header_check

Ruft eine öffentliche Seite ab und prüft die Antwort-Header, die Analytics beeinflussen. Verwenden Sie es, wenn Tracking-Daten fehlen oder Referrer falsch aussehen. Es betrachtet Referrer-Policy, die Direktiven script-src und connect-src der Content-Security-Policy (ob Privatus Analytics Daten laden und senden darf), Permissions-Policy und die Anzahl der Set-Cookie-Header. Gibt url (die endgültige URL nach bis zu 3 Weiterleitungen), status (HTTP-Status) und findings zurück, jeweils mit check, value (nullable), level (ok, warn oder info) und einem Hinweis in Alltagssprache. Die URL muss http oder https und öffentlich sein, private und interne Adressen werden abgelehnt, es werden nur die ersten 1 MB gelesen, und der Abruf läuft nach 5 Sekunden in ein Timeout. Auf 10 Aufrufe pro Minute und Client ratenbegrenzt. Öffentlich, keine Authentifizierung nötig.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/tools/header-checker.json
GET /tools/privacy-policy-generator.json Einen Absatz für die Datenschutzerklärung zu Privatus Analytics entwerfen tools_privacy_policy

Entwirft einen Absatz einer Datenschutzerklärung, der beschreibt, wie Privatus Analytics Daten auf der Website des Kunden erfasst (cookielos, keine personenbezogenen Daten gespeichert, Standort nur auf Länderebene). Es ist ein Ausgangspunkt, keine Rechtsberatung. Eingaben sind site_name (bis zu 120 Zeichen), contact_email (optional, fügt einen Kontaktsatz hinzu) und honors_gpc (Standard true, fügt einen Satz hinzu, dass Do Not Track und Global Privacy Control beachtet werden). Gibt site_name, paragraphs (Array von Strings), text (die durch Leerzeilen verbundenen Absätze, mit der Adresse von Privatus Analytics in Klammern nach dem Namen) und html (die Absätze als <p>-Elemente, mit dem Namen als einfachem Link) zurück. Der Text wird in der Sprache der Anfrage geschrieben, standardmäßig Englisch. Es ändert nichts an einem Konto. Öffentlich, keine Authentifizierung nötig.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/tools/privacy-policy-generator.json
GET /tools/qr-code.json Einen QR-Code als SVG erzeugen tools_qr_code

Erzeugt einen QR-Code als SVG-Bild für Druck oder Poster. Kombinieren Sie ihn mit einem Link mit UTM-Parametern aus tools_utm_builder. Eingaben sind text (die URL oder der Text, bis zu 1.000 Zeichen) und level (Fehlerkorrektur l, m, q oder h, Standard m, höher übersteht mehr Beschädigung, braucht aber einen dichteren Code). Gibt text, level, size (Module pro Seite) und svg (ein eigenständiges SVG-Dokument, schwarz auf weiß) zurück. Ein für das gewählte Level zu langer Text wird abgelehnt. Für QR-Codes von getrackten Kurzlinks verwenden Sie stattdessen links_qr. Öffentlich, keine Authentifizierung nötig.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/tools/qr-code.json
GET /tools/tracker-scanner.json Cookies und bekannte Tracker auf einer Seite auflisten tools_tracker_scan

Ruft eine öffentliche Seite ab und listet die Cookies auf, die sie setzt, und die bekannten Drittanbieter-Tracker, auf die sie verweist. Verwenden Sie es für eine schnelle Prüfung, was eine Seite lädt, bevor Sie einen Einwilligungsansatz wählen. Es ist nur ein statischer Scan des HTML und der Antwort-Header und führt kein JavaScript aus, daher werden Cookies, die von Scripts gesetzt werden, und Tags, die später von einem Tag-Manager geladen werden, nicht erkannt. Gibt url (endgültige URL nach bis zu 3 Weiterleitungen), status, truncated (true, wenn nur die ersten 1 MB gelesen wurden), cookies (name, domain, path, expires, secure, http_only und same_site, Werte werden nie zurückgegeben), trackers (name, category, match und evidence, wobei category advertising, analytics, session_recording, tag_manager, marketing oder privacy_analytics ist) und third_party_hosts (sortierte Hostnamen anderer Websites) zurück. Die URL muss öffentlich und http oder https sein, mit einem Abruf-Timeout von 5 Sekunden, und Aufrufe sind auf 10 pro Minute und Client begrenzt. Öffentlich, keine Authentifizierung nötig.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/tools/tracker-scanner.json
GET /tools/utm-builder.json Eine Kampagnen-URL mit UTM-Parametern erstellen tools_utm_builder

Erstellt eine Kampagnen-URL mit UTM-Parametern und weist auf typische Fehler hin. Eingaben sind url (muss http oder https sein), source, medium und campaign (alle Pflicht) sowie optional term und content. Bereits vorhandene utm_-Parameter der URL werden ersetzt, und andere Query-Parameter bleiben erhalten. Gibt url (den fertigen Link), params (die hinzugefügten utm_-Werte, leere ausgelassen) und warnings (Strings für Werte mit Großbuchstaben, Leerzeichen oder Text, der wie eine E-Mail-Adresse oder eine lange Zahl aussieht und nie in einer URL stehen sollte) zurück. Verwenden Sie Kleinbuchstaben ohne Leerzeichen, damit dieselbe Kampagne in Berichten nicht auf mehrere Zeilen aufgeteilt wird. Es speichert nichts. Öffentlich, keine Authentifizierung nötig.

Berechtigung: public

Beispiel
curl https://privatusanalytics.com/tools/utm-builder.json
POST /waitlist.json Einer Warteliste beitreten (EU-Hosting) waitlist_join

Browser-Clients senden ein Cloudflare-Turnstile-Token als `cf-turnstile-response`. Anfragen mit einem API-Token benötigen keines.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/waitlist.json \
  -H "Content-Type: application/json" -d '{…}'

Website-Audit

GET /sites/:site_id/audit/issues.json Die Probleme eines Website-Audits auflisten, eine Zeile pro Prüfung site_audit_issues_list

Listet die Probleme eines Audits auf, eine Zeile pro Prüfung, die etwas markiert hat, die schlimmsten zuerst (Fehler, dann Warnungen, dann Hinweise, jeweils nach betroffenen URLs). Jede Zeile hat check_key (verwenden Sie ihn mit site_audit_issues_get und den Mute-Tools), title, category, severity (error, warning oder notice), affected (markierte URLs, stummgeschaltete ausgenommen), added und fixed (Änderungen seit dem vorherigen Audit) und pageviews (Besuche der betroffenen Seiten in den 30 Tagen vor dem Audit). Standardmäßig das neueste abgeschlossene Audit, oder übergeben Sie audit_id. Filtern Sie mit severity, category und new_only (nur Prüfungen mit URLs, die seit dem vorherigen Audit neu sind). Paginiert mit page und per_page (max. 100, Standard 50). Um zu sehen, welche URLs eine Prüfung markiert hat, verwenden Sie site_audit_issues_get. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/audit/issues.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/audit/issues/:check_key.json Eine Prüfung des Website-Audits abrufen: warum sie wichtig ist, wie man sie behebt und die betroffenen URLs site_audit_issues_get

Details zu einer Prüfung in einem Audit, anhand von check_key aus site_audit_issues_list (zum Beispiel title_missing). Gibt audit_id, issue (dieselbe Zeile wie in der Liste), why (was das Problem bedeutet), fix (wie es behoben wird), muted (true, wenn die ganze Prüfung für die Website stummgeschaltet ist) und urls zurück, die markierten URLs mit page_id (verwenden Sie sie mit site_audit_pages_get), url, pageviews, detail (zusätzliche Fakten zum Befund, kann leer sein), is_new und muted. sort ist pageviews (Standard, meistbesuchte zuerst) oder url. Paginiert mit page und per_page (max. 100, Standard 25). Standardmäßig das neueste abgeschlossene Audit, oder übergeben Sie audit_id. Stummgeschaltete URLs werden zuletzt sortiert. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/audit/issues/:check_key.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/audit/mutes/bulk.json Eine Website-Audit-Prüfung für mehrere URLs oder mehrere ganze Prüfungen in einem Aufruf stummschalten site_audit_mutes_bulk

Schaltet viele Befunde in einer Anfrage stumm, ganz oder gar nicht. Verwenden Sie eine von zwei Formen. Senden Sie entweder check_key plus urls (bis zu 100 URLs), um eine Prüfung auf mehreren Seiten stummzuschalten, oder check_keys (bis zu 100), um ganze Prüfungen für die Website stummzuschalten. Mischen Sie urls nicht mit check_keys. Eine unbekannte Prüfung oder eine ungültige URL lässt die gesamte Anfrage fehlschlagen, und nichts wird stummgeschaltet. Bereits stummgeschaltete Einträge werden unverändert zurückgegeben. Die Zahlen und der Score des neuesten Audits werden am Ende einmal aktualisiert. Gibt die Liste der Stummschaltungen zurück. Machen Sie jede mit site_audit_mutes_delete rückgängig. Erfordert content.write.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/audit/mutes/bulk.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/audit/mutes.json Eine Prüfung des Website-Audits stummschalten, für die ganze Website oder eine URL site_audit_mutes_create

Schaltet eine Prüfung für die Website oder nur für eine URL stumm. check_key stammt aus site_audit_issues_list. Lassen Sie url weg, um die Prüfung überall stummzuschalten, oder übergeben Sie eine vollständige URL (wie https://example.com/old), um sie nur auf dieser Seite stummzuschalten, wobei die URL so normalisiert wird, wie es der Crawler tut. Die Zahlen und der Score des neuesten Audits werden sofort aktualisiert. Dasselbe zweimal stummzuschalten gibt die bestehende Stummschaltung zurück statt eines Fehlers. Um viele auf einmal stummzuschalten, verwenden Sie site_audit_mutes_bulk, und zum Rückgängigmachen site_audit_mutes_delete. Erfordert content.write.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/audit/mutes.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/audit/mutes/:id.json Eine Prüfung des Website-Audits wieder aktivieren site_audit_mutes_delete

Entfernt eine Stummschaltung, gefunden über ihre id aus site_audit_mutes_list, sodass die Prüfung oder URL wieder zum Audit-Score zählt. Das neueste Audit wird sofort neu gezählt. Dies entfernt nur die Stummschaltung und löscht keine Audit-Daten. Gibt die entfernte Stummschaltung zurück. Erfordert content.write.

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/audit/mutes/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/audit/mutes.json Die Prüfungen auflisten, die eine Website stummgeschaltet hat site_audit_mutes_list

Listet die für die Website stummgeschalteten Prüfungen auf, neueste zuerst. Eine Stummschaltung blendet eine Prüfung entweder für die ganze Website (url ist null) oder für eine URL aus, sodass diese Befunde aus den Zahlen und dem Score herausbleiben, obwohl Audits sie weiterhin erfassen. Jede Zeile hat id (eine Mute-ID, verwenden Sie sie mit site_audit_mutes_delete), site_id, check_key, title, url (null bei einer Stummschaltung für die ganze Website), muted_by (der Mitgliedsname, null, wenn unbekannt) und created_at. Filtern Sie mit check_key. Paginiert mit page und per_page (max. 100). Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/audit/mutes.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/audit/notifications.json Ihre Audit-Zusammenfassung per E-Mail für eine Website ein- oder ausschalten site_audit_notifications_update

Schaltet die wöchentliche Audit-Zusammenfassungs-E-Mail für das aufrufende Mitglied auf einer Website an oder aus. Es ist eine persönliche Einstellung und betrifft andere Mitglieder nicht. enabled true sendet dem Mitglied die Zusammenfassung nach Audits dieser Website, false beendet das. Gibt site_id, enabled und all_sites_enabled zurück (false, wenn das Mitglied in seinen Kontoeinstellungen Audit-E-Mails für jede Website ausgeschaltet hat, was diese Einstellung überschreibt). Jedes Mitglied mit analytics.read kann seine eigene Einstellung ändern.

Berechtigung: analytics.read

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/audit/notifications.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/audit/pages.json Die Seiten eines Website-Audits auflisten und filtern site_audit_pages_list

Der Seiten-Explorer, der die URLs eines Audits auflistet (standardmäßig das neueste abgeschlossene, oder audit_id). kind ist page (Standard, HTML-Dokumente), resource (Bilder, Scripts, Stylesheets) oder external (Links zu anderen Websites). Filtern Sie nach state (queued, fetched, skipped, blocked, failed), status_class (2xx, 3xx, 4xx oder 5xx), indexable, in_sitemap, has_issues (nur nicht stummgeschaltete Probleme zählen), depth (Klicks von der Startseite) und query (Text in URL oder Titel). sort ist pageviews (Standard), inlinks, depth, response_ms (langsamste zuerst) oder word_count (wenigste zuerst). Jede Zeile hat id (eine UUID für site_audit_pages_get), url, path, kind, state, status, depth, indexable, indexability_reason, title, word_count, response_ms, cache_status, inlinks, pageviews, in_sitemap und issues (Anzahl). Paginiert mit page und per_page (max. 100). Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/audit/pages.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/audit/pages/:id.json Eine geprüfte Seite abrufen: ihre Metadaten, Probleme, eingehende und ausgehende Links site_audit_pages_get

Alles, was das Audit zu einer URL gespeichert hat, anhand der id (eine UUID aus site_audit_pages_list oder aus den urls von site_audit_issues_get). Gibt id, audit_id, page (url, status, redirect_to, content_type, bytes, response_ms, title, meta_description, h1, canonical, robots_meta, indexable und indexability_reason, word_count, lang, hreflang, schema_types, Social-Tags, images_count, images_missing_alt, Linkzahlen, link_score, in_sitemap, has_tracker, pageviews und search_clicks, fetched_at und mehr), redirect_target_id (die Seite, auf die sie innerhalb des Audits weiterleitet, oder null), issues (check_key, title, category, severity, detail, is_new, muted) sowie inlinks und outlinks (jeweils bis zu 100 mit page_id, url, status, kind, anchor, nofollow, count) zurück. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/audit/pages/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/audit/settings.json Die Audit-Einstellungen einer Website abrufen site_audit_settings_get

Gibt die Audit-Einstellungen der Website zurück. Die Felder sind site_id, enabled (geplante Audits an oder aus, standardmäßig an), include_subdomains, check_external_links, exclude_paths, ignored_params, extra_start_urls, next_run_at (wann das nächste geplante Audit fällig ist, null, wenn keines), page_limit (Seiten pro Audit im aktuellen Tarif, null, wenn unbegrenzt) und interval_days (Tage zwischen geplanten Audits im Tarif). Eine Website, die ihre Einstellungen nie geändert hat, gibt die Standardwerte zurück. Ändern Sie sie mit site_audit_settings_update. Erfordert sites.manage.

Berechtigung: sites.manage

Beispiel
curl https://privatusanalytics.com/sites/:site_id/audit/settings.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/audit/settings.json Die Audit-Einstellungen einer Website ändern site_audit_settings_update

Ändert, wie die Website geprüft wird. Nur die Eingaben, die Sie senden, ändern sich. enabled schaltet geplante und manuelle Audits an oder aus (das Einschalten plant das nächste Audit ein Tarifintervall später ein). include_subdomains und check_external_links sind Booleans. Die drei Listen ersetzen die gespeicherte Liste, sie werden nicht zusammengeführt, senden Sie also die vollständige Liste. exclude_paths sind Pfadpräfixe, die der Crawler überspringt, und jedes muss mit einem Schrägstrich beginnen (bis zu 50). ignored_params sind Namen von Query-Parametern, die nie eine andere Seite ergeben, wie utm_source oder sessionid (bis zu 50, Buchstaben, Ziffern, Punkt, Bindestrich, Unterstrich). extra_start_urls sind vollständige http- oder https-URLs, die zusätzlich zur Startseite durchsucht werden (bis zu 20). Eine Liste kann auch als Text mit einem Eintrag pro Zeile gesendet werden. Gibt die aktualisierten Einstellungen zurück. Erfordert sites.manage.

Berechtigung: sites.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/audit/settings.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /audit/unsubscribe/:token.json Zusammenfassungs-E-Mails zum Website-Audit mit dem Token aus einer E-Mail abbestellen site_audit_unsubscribes_create

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/audit/unsubscribe/:token.json \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/audit/cancel.json Das laufende Website-Audit abbrechen site_audit_cancel

Stoppt das Audit, das für die Website läuft oder in der Warteschlange ist. Das Audit wird als canceled markiert, und vom unfertigen Crawling wird nichts berichtet. Ein abgebrochenes Audit verbraucht nicht das Monatskontingent des Tarifs Free. Schlägt mit einem Validierungsfehler fehl, wenn kein Audit live ist. Gibt das abgebrochene Audit zurück. Erfordert content.write.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/audit/cancel.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/audit/compare.json Zwei Website-Audits vergleichen: hinzugekommene und behobene URLs pro Prüfung site_audit_compare

Vergleicht zwei Audits der Website, Prüfung für Prüfung. audit_id ist das neuere und base_id das ältere Audit. Beide haben sinnvolle Standardwerte (das neueste abgeschlossene Audit gegen das abgeschlossene davor), und das Tool vertauscht sie, wenn Sie sie in falscher Reihenfolge übergeben. Gibt audit und base (jeweils eine Audit-Zusammenfassung, base null, wenn nichts Früheres existiert) und checks zurück, ein Objekt je Prüfung, deren URLs sich geändert haben, mit check_key, title, category, severity, base_affected, affected, added und fixed (URL-Anzahlen), Fehler zuerst sortiert. Prüfungen ohne Änderung werden weggelassen. Bei zwei aufeinanderfolgenden Audits sind added und fixed exakt, bei weiter auseinanderliegenden Audits sind sie die Nettoänderung. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/audit/compare.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/audit.json Jetzt ein Website-Audit starten site_audit_run

Startet jetzt ein neues Crawling und SEO-Audit der Website. Es durchsucht die öffentlichen Seiten der Website im Hintergrund, daher kehrt es sofort mit dem neuen Audit im Status queued zurück. Fragen Sie site_audit_get (Feld live) oder site_audit_history ab, bis der Status complete ist. Wird mit einem Validierungsfehler abgelehnt, wenn das Audit in site_audit_settings_update ausgeschaltet ist, wenn bereits ein anderes Audit in der Warteschlange oder in Bearbeitung ist, wenn in den letzten 24 Stunden ein manuelles Audit gestartet wurde und im Tarif Free, wenn in den letzten 30 Tagen irgendein Audit lief (fehlgeschlagene und abgebrochene zählen nicht). Nicht verifizierte Websites ohne Ereignisse sind außerdem auf ein Audit pro Tag und Domain beschränkt. Die durchsuchten Seiten sind vom Tarif begrenzt (Free 100, Pro 1.000, Business 10.000). Prüfen Sie zuerst can_run in site_audit_get. Erfordert content.write.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/audit.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/audit/history.json Die Audits einer Website auflisten, das neueste zuerst site_audit_history

Listet die Audits der Website auf, neueste zuerst, jeweils mit id (aud_...), status (queued, running, analyzing, complete, partial, failed oder canceled), trigger (first, scheduled oder manual), score (0 bis 100, null, bis abgeschlossen), score_band, page_limit, pages_crawled, urls_discovered, errors, warnings, notices, new_issues, fixed_issues, failure (Grund bei failed, sonst null) und den Zeitstempeln. Filtern Sie mit status. Paginiert mit page und per_page (max. 100). Verwenden Sie die IDs mit site_audit_get, site_audit_compare und den Tools für Probleme und Seiten. Für den aktuellen Stand eines Audits verwenden Sie site_audit_get. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/audit/history.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/audit.json Die Übersicht des Website-Audits abrufen: Bewertung, Anzahlen, wichtigste Probleme nach Traffic und das aktuell laufende Audit site_audit_get

Die Übersicht des SEO-Website-Audits, der beste erste Aufruf bei Audit-Fragen. Standardmäßig beschreibt es das neueste abgeschlossene Audit, oder übergeben Sie audit_id (aud_..., aus site_audit_history) für ein älteres. Das Ergebnis hat audit (das abgeschlossene Audit mit score 0 bis 100, score_band, score_delta, Anzahl der Fehler, Warnungen und Hinweise, pages_crawled, page_limit, capped, summary und robots-Details, oder null, wenn keines abgeschlossen wurde), live (das aktuell laufende Audit oder null), enabled und next_run_at (der Zeitplan), can_run mit run_blocked (live, disabled oder too_soon) und run_allowed_at (wann site_audit_run wieder erlaubt ist), changes (Anzahl hinzugekommener und behobener URLs je Schweregrad), trend (bis zu 30 aktuelle Scores als id, finished_at, score), top_issues (bis zu 10 Prüfungen, sortiert nach Schweregrad, dann Pageviews der betroffenen Seiten) und email_enabled (Ihre eigene Einstellung für die Zusammenfassungs-E-Mail). Folgen Sie mit site_audit_issues_list für jedes Problem und site_audit_pages_list für URLs. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/audit.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"

Websites

POST /sites/:site_id/data_reset.json Alle Ereignisse und Besuche in einem Datumsbereich löschen (läuft im Hintergrund, kann nicht rückgängig gemacht werden) sites_reset_data

Löscht Pageviews, eigene Ereignisse und Besuche einer Website für einen Datumsbereich unwiderruflich, und das kann nicht rückgängig gemacht werden. Verwenden Sie es, um Test-Traffic zu bereinigen oder einen fehlerhaften Zeitraum zu entfernen. Die Website, ihre Ziele und ihre Einstellungen werden nicht gelöscht (für die Website verwenden Sie sites_delete). from und to sind Datumsangaben YYYY-MM-DD, beide einschließlich und in der Zeitzone der Website gelesen, und to darf nicht vor from liegen. confirm muss die Domain der Website genau so sein, wie sie sites_get zeigt (Groß- und Kleinschreibung spielt keine Rolle). Die Anfrage wird angenommen und antwortet sofort mit status queued, site_id, from und to. Das Löschen läuft im Hintergrund in Stapeln, die Zahlen in den Stats-Tools brauchen also eventuell etwas, um sich einzupendeln, und es gibt keinen Status-Endpoint zum Abfragen, prüfen Sie die Stats-Tools, bis der Bereich leer ist. Die Aktion wird im Audit-Protokoll festgehalten. Erfordert die Berechtigung sites.manage.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/data_reset.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/filter_stats.json Zusammenfassung des gefilterten Traffics: Bots, Traffic-Regeln oder PII-Schwärzungen nach Grund und Land (nur Zählwerte) sites_filter_stats

Anzahl der Zugriffe, die vor dem Speichern verworfen oder bereinigt wurden, über die letzten Tage. Verwenden Sie es, um zu sehen, wie viel Bot-Traffic, durch Regeln blockierter Traffic oder Schwärzung eine Website hat. Wählen Sie kind mit bot (als Bots verworfene Zugriffe), rule (durch Traffic-Regeln verworfene Zugriffe) oder redaction (vom Scrubber für personenbezogene Daten geschwärzte Werte). Gibt kind, days, total, by_reason, by_country und by_day zurück. by_reason und by_country sind Listen von {value, count} (bis zu 50, größte zuerst, value null, wenn unbekannt), und by_day ist eine Liste von {date, count}. days wird auf 1 bis 395 begrenzt und ist standardmäßig 30. Dies sind nur aggregierte Zahlen. Es werden keine IP-Adressen, User-Agents oder geschwärzten Werte gespeichert, daher lässt sich nichts auf eine Person zurückführen. Diese Zugriffe zählen nicht als Ereignisse für die Abrechnung. Mit traffic_rules_list sehen oder ändern Sie die Regeln.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/filter_stats.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/access.json Mitglieder auflisten und ob sie diese Website sehen können sites_access_list

Zeigt, welche Mitglieder des Workspace eine Website sehen können. Jedes Mitglied des Workspace wird in der Reihenfolge des Beitritts aufgeführt, nicht paginiert. Die Felder sind membership_id (die von sites_access_update verwendete uuid), email, name, role, access (true, wenn das Mitglied diese Website sehen kann) und locked (true bei Eigentümern und Admins, die immer Zugriff haben und nicht geändert werden können). Andere Mitglieder haben Zugriff, wenn sie alle Websites oder eine ausdrückliche Freigabe für diese Website haben. Mit members_list sehen Sie die vollständige Website-Liste eines Mitglieds. Erfordert members.manage.

Berechtigung: members.manage

Beispiel
curl https://privatusanalytics.com/sites/:site_id/access.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/access.json Den Zugriff eines Mitglieds auf diese Website gewähren oder entfernen sites_access_update

Gewährt oder entzieht einem Mitglied den Zugriff auf eine Website. membership_id stammt aus sites_access_list (oder members_list), und access ist true zum Gewähren oder false zum Entziehen. Eigentümer und Admins haben immer Zugriff und können nicht geändert werden. Wird einem Mitglied, das alle Websites hatte, der Zugriff entzogen, wechselt es zu einer ausdrücklichen Liste jeder anderen Website im Workspace, und sein include_future_sites wird ausgeschaltet, sodass es später erstellte Websites nicht erhält. Das Gewähren an jemanden, der bereits alle Websites hat, ändert nichts. Sie können kein Mitglied ändern, das Berechtigungen hat, die Sie nicht haben, oder Websites jenseits Ihrer eigenen. Erfordert members.manage. Gibt die Zeile dieses Mitglieds in derselben Form wie sites_access_list zurück.

Berechtigung: members.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/access.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/favorite.json Eine Website mit einem Stern markieren (unter Alle Websites zuerst angeheftet) sites_favorite

Markiert eine Website für den aufrufenden Benutzer mit einem Stern, sodass sie von sites_list und auf der Seite Alle Websites zuerst aufgeführt wird. Es betrifft nur den Aufrufer, nie andere Mitglieder, und das Markieren einer bereits markierten Website ändert nichts. Der Aufruf braucht keine Eingabe außer der Website-ID. Mit sites_unfavorite entfernen Sie den Stern. Erfordert analytics.read. Gibt die Website zurück (siehe sites_get), mit favorite true.

Berechtigung: analytics.read

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/favorite.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/favorite.json Den Stern einer Website entfernen sites_unfavorite

Entfernt den Stern des aufrufenden Benutzers von einer Website, sodass sie in sites_list nicht mehr zuerst angeheftet ist. Es betrifft nur den Aufrufer und bewirkt nichts, wenn die Website nicht markiert war. Mit sites_favorite markieren Sie sie erneut. Erfordert analytics.read. Gibt die Website zurück (siehe sites_get), mit favorite false.

Berechtigung: analytics.read

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/favorite.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/setup.json Installationsstatus und Snippet einer Website sites_setup_get

Gibt zurück, was nötig ist, um das Tracking auf einer Website zu installieren, und ob Daten angekommen sind. Die Felder sind site_id, snippet (das einfügefertige HTML-Script-Tag mit allen aktivierten Tracker-Modulen), receiving_data (true, sobald das erste Ereignis empfangen wurde) und first_event_at (ISO 8601, bis dahin null). Fragen Sie dies nach der Installation ab, um zu sehen, ob Ereignisse eingehen. Verwenden Sie stattdessen tracking_snippet, wenn Sie ein angepasstes Snippet möchten (gewählte Module, manuelle Pageviews, SPA-Modus, Masken), und tracking_verify, um die Live-Seite abzurufen und zu prüfen, ob das Script vorhanden ist. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/setup.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /transfers/:token/accept.json Eine Website-Übertragung in einen Ihrer Workspaces annehmen site_transfers_accept

Nimmt eine Einladung zur Website-Übertragung an und verschiebt die Website in einen der Workspaces des Aufrufers. Der Pfadparameter token stammt aus dem Einladungslink, und workspace_id ist der Ziel-Workspace (ws_...), in dem der Aufrufer sites.manage hat. Die eigene E-Mail-Adresse des Aufrufers muss mit der Adresse übereinstimmen, an die die Einladung gesendet wurde, und das Ziel darf nicht der Workspace sein, aus dem die Website kam. Die Website behält ihre id, Einstellungen, Ziele und Daten, aber Zugriffsfreigaben pro Mitglied werden gelöscht, und ihre Freigabelinks wechseln in den neuen Workspace. Es schlägt fehl, wenn die Einladung nicht mehr aussteht oder abgelaufen ist, wenn das Ziel das Website-Limit seines Tarifs erreicht hat oder wenn es bereits eine aktive Website mit derselben Domain hat. Der Umzug kann nur durch Zurückübertragen rückgängig gemacht werden. Ein Token, der dies aufruft, muss zum Ziel-Workspace gehören und sites.manage haben. Gibt die Übertragung mit dem Status accepted zurück.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/transfers/:token/accept.json \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/transfer.json Die Übertragung einer Website an einen anderen Workspace starten (der Empfänger erhält eine E-Mail) sites_transfer_start

Startet das Verschieben einer Website in einen anderen Workspace, indem dem Empfänger ein Einladungslink per E-Mail gesendet wird, der 7 Tage gültig ist. Es wird nichts verschoben, bis sich der Empfänger mit dieser E-Mail-Adresse anmeldet und annimmt (site_transfers_accept), die Website bleibt bis dahin also hier. Das Starten einer neuen Übertragung bricht jede frühere ausstehende für dieselbe Website ab. email muss eine gültige Adresse sein, und der Empfänger wählt den Ziel-Workspace. Übertragungs-E-Mails sind ratenbegrenzt. Mit sites_transfer_cancel ziehen Sie sie zurück. Erfordert sites.manage. Gibt die Übertragung mit site_id, site_domain, from_workspace, to_email, dem Status pending und expires_at zurück.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/transfer.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/transfer.json Eine ausstehende Website-Übertragung abbrechen sites_transfer_cancel

Bricht die ausstehende Übertragungseinladung der Website ab, sodass ihr Link nicht mehr funktioniert. Es schlägt mit einem Validierungsfehler fehl, wenn keine Übertragung aussteht. Eine bereits angenommene Übertragung kann nicht abgebrochen werden. Erfordert sites.manage. Gibt die Übertragung mit dem Status canceled zurück.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/transfer.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /transfers/:token.json Eine ausstehende Übertragung anhand ihres per E-Mail gesendeten Tokens abrufen site_transfers_get

Zeigt eine Einladung zur Website-Übertragung anhand des Tokens in ihrem Link (der Pfadparameter token, aus der von sites_transfer_start gesendeten Einladungs-E-Mail). Der Aufrufer muss angemeldet sein oder einen API-Token verwenden. Gibt site_id, site_domain, from_workspace (den Namen des sendenden Workspace), to_workspace_id (null, bis angenommen), to_email (die eingeladene Adresse), status (pending, accepted oder canceled) und expires_at zurück. Einladungen laufen 7 Tage nach dem Senden ab. Mit site_transfers_accept nehmen Sie sie an.

Berechtigung: public · Nur HTTP (kein MCP-Tool)

Beispiel
curl https://privatusanalytics.com/transfers/:token.json
POST /workspaces/:workspace_id/sites.json Eine Website hinzufügen sites_create

Fügt einem Workspace eine Website hinzu und gibt sie zurück, einschließlich des zu installierenden Tracking-Snippets. Der Tarif des Workspace begrenzt die Anzahl der Websites (Free erlaubt 3), und der Aufruf schlägt mit einem Plan-Limit-Fehler fehl, wenn es erreicht ist. domain ist Pflicht und wird normalisiert (zum Beispiel wird eine vollständige URL oder das Präfix www auf den Hostnamen reduziert). name entspricht standardmäßig der Domain, timezone standardmäßig der Zeitzone des Workspace (ein IANA-Name wie Europe/Berlin) und currency der Währung des Workspace (ein 3-stelliger ISO-4217-Code wie USD). Nebenwirkungen sind eine Benachrichtigung site.created an die Benachrichtigungskanäle des Workspace, ein erstes SEO-Website-Audit und eine Domain-Rating-Prüfung, die in die Warteschlange gestellt werden, und eine E-Mail mit dem Tracking-Code an das Mitglied, das sie erstellt hat (mit Erinnerungen, solange keine Daten eintreffen). Mitglieder, die auf ausgewählte Websites beschränkt sind und sich für künftige Websites entschieden haben, erhalten Zugriff darauf. Erfordert sites.manage. Folgen Sie mit tracking_snippet oder sites_setup_get zur Installation und tracking_verify zur Prüfung.

Berechtigung: sites.manage

Beispiel
curl -X POST https://privatusanalytics.com/workspaces/:workspace_id/sites.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:id.json Eine Website löschen (nach 7 Tagen endgültig entfernt) sites_delete

Löscht eine Website. Es ist ein Soft Delete: Die Website sammelt nicht mehr und verschwindet sofort aus den Listen, und ihre Daten werden nach 7 Tagen endgültig gelöscht. Behandeln Sie es also als unwiderruflich und wenden Sie sich schnell an den Support, falls es ein Versehen war. confirm muss die Domain der Website sein (Groß- und Kleinschreibung spielt keine Rolle). Ausstehende Übertragungen der Website werden abgebrochen, und eine Benachrichtigung site.deleted wird an die Benachrichtigungskanäle des Workspace gesendet. Um nur einen Teil des Traffics zu löschen und die Website zu behalten, verwenden Sie sites_reset_data. Erfordert sites.manage. Gibt die Website zurück.

Berechtigung: sites.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/sites.json Websites eines Workspaces auflisten sites_list

Listet die Websites eines Workspace auf, auf die der Aufrufer zugreifen kann, paginiert, mit den markierten Websites des Aufrufers zuerst. Verwenden Sie query, um in Domain oder Name zu suchen (Teilübereinstimmung, ohne Beachtung der Groß- und Kleinschreibung), label, um Websites mit einem Label zu behalten, und sort als position (die gespeicherte Reihenfolge, der Standard), name oder visitors (Besucher der letzten 30 Tage, die meisten zuerst). Das meta der Antwort enthält die Paginierung pro Seite plus stats, ein nach Website-ID geordnetes Objekt mit visitors (aktuelle eindeutige Besucher), change (prozentuale Änderung gegenüber dem Vorzeitraum), sparkline (eine Liste von Tageswerten) und live (aktuelle Besucher), sowie totals über die Seite. Jeder Eintrag hat dieselben Felder wie sites_get. Dies ist der Ausgangspunkt, um die Website-IDs (pa_...) zu finden, die jedes andere Website-Tool verwendet. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/sites.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:id.json Eine Website und alle ihre Einstellungen abrufen sites_get

Gibt die Einstellungen und den Status einer Website anhand ihrer öffentlichen id zurück (pa_..., aus sites_list). Die wichtigsten Felder sind id, workspace_id (ws_...), domain, name, extra_domains und multi_domain_mode (combined oder separate), timezone (IANA-Name), currency (ISO 4217), labels, Datenschutzoptionen (honor_dnt, honor_gpc, pii_scrubber, redaction_rules, allowed_params, path_masks), retention_months (null bedeutet, alle Daten behalten), bot_filtering, traffic_rule_modes (ein Objekt, das eine Regelliste auf block oder allow abbildet), vitals_sample_rate (ein Prozentwert), conversion_denominator (visits oder visitors), public_dashboard und public_indexable, ingest_key_prefix (null, wenn die Website keinen Crawler-Log-Schlüssel hat), verified_at, first_event_at und last_event_at (null, bis Daten eintreffen), domain_rating (nullable), snippet (das HTML-Tracking-Tag), favorite (ob der Aufrufer sie markiert hat) und created_at. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:id.json Website-Einstellungen aktualisieren sites_update

Aktualisiert Einstellungen einer Website und ändert nur die Felder, die Sie senden. Namens- und Identitätsfelder sind name, domain (eine Änderung prüft das Domain Rating erneut), extra_domains (eine Liste von Hostnamen) und multi_domain_mode (combined zählt einen Besucher über Domains hinweg, separate hält sie getrennt). timezone ist ein IANA-Name und currency ein 3-stelliger ISO-4217-Code. Datenschutzfelder sind honor_dnt, honor_gpc, pii_scrubber, redaction_rules (eine Liste von Objekten mit name und pattern, wobei pattern ein regulärer Ausdruck ist), allowed_params (zu behaltende Query-Parameter), path_masks (eine Liste von Objekten mit pattern und replacement) und bot_filtering. Listen ersetzen die gesamte bestehende Liste. retention_months darf die Aufbewahrung des Tarifs nicht überschreiten (Free 6 Monate). traffic_rule_modes ordnet eine Regelliste (hostnames, paths, referrers, countries, ip_ranges, user_agents oder events) block oder allow zu. vitals_sample_rate ist ein Prozentwert, und der Tarif begrenzt ihn (10 bei Free, 100 bei bezahlten Tarifen). conversion_denominator ist visits oder visitors. public_dashboard macht Statistiken für jeden mit dem Link einsehbar, und public_indexable lässt Suchmaschinen diese Seite indexieren. Änderungen wirken innerhalb von Augenblicken für neue Ereignisse. Erfordert sites.manage. Gibt die aktualisierte Website zurück.

Berechtigung: sites.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Werbeplätze

POST /sites/:site_id/experiments/ads.json Einen Werbeplatz erstellen ad_placements_create

Erstellt eine Anzeigenfläche in einer Größe auf der Website. Senden Sie size (eine gängige Größe wie medium_rectangle oder leaderboard) oder width und height in Pixeln. key ist der Name, mit dem das Tag auf der Website ihn nennt, und wird aus dem Namen gebildet, wenn er fehlt. Fügen Sie dann Anzeigenmotive mit ad_creatives_create hinzu und setzen Sie das Tag aus ad_placements_embed auf die Website. Erfordert content.write.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/experiments/ads.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/experiments/ads/:id.json Einen Werbeplatz mit seinen Anzeigenmotiven löschen ad_placements_delete

Löscht einen Werbeplatz dauerhaft mit seinen Anzeigenmotiven und deren Bildern, seinen Anzeigenexperimenten und deren Ergebnissen sowie seinen Sponsorenlinks. Das Tag auf der Website zeigt dann nichts mehr an. Das MCP-Tool führt dies nicht aus und antwortet mit human_only und der Seite, auf der eine Person löscht. Erfordert content.write.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/experiments/ads/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/experiments/ads/:id/embed.json Das Tag abrufen, das einen Werbeplatz auf der Website anzeigt ad_placements_embed

Das Loader-Skript (einmal pro Seite) und der Slot für diesen Werbeplatz als HTML zum Einfügen. Der Slot behält seine Größe, bevor der Loader läuft. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/experiments/ads/:id/embed.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/experiments/ads.json Werbeplätze einer Website mit den letzten 30 Tagen auflisten ad_placements_list

Jeder Werbeplatz mit Schlüssel, Größe, Anzahl seiner Anzeigenmotive und Statistiken (impressions, viewable impressions, clicks und ctr, die Klickrate pro sichtbarer Impression) der letzten 30 Tage. Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/experiments/ads.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/experiments/ads/:id.json Einen Werbeplatz mit den Zahlen jedes Anzeigenmotivs abrufen ad_placements_get

Der Werbeplatz, seine Anzeigenmotive mit ihren Statistiken für den Zeitraum (7d, 30d oder 90d) und die Zahlen des Werbeplatzes Tag für Tag. humans_only behält, was der Bot-Score als wahrscheinlich menschlich einstuft (Pro und höher). Erfordert analytics.read.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/experiments/ads/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/experiments/ads/:id.json Einen Werbeplatz ändern ad_placements_update

Ändert Name, Schlüssel, Größe oder Beschriftung. Nur angegebene Eingaben ändern sich. Ein neuer Schlüssel erfordert das neue Tag auf der Website. Erfordert content.write.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/experiments/ads/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Widgets

POST /sites/:site_id/testimonials/widgets/:id/copied.json Vermerken, dass die eingefügte HTML-Einbettung eines Widgets kopiert wurde testimonial_widgets_mark_copied

Das eingefügte HTML aktualisiert sich nicht von selbst. Nach diesem Aufruf meldet testimonial_widgets_embed, wie oft sich das Widget seitdem geändert hat.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/widgets/:id/copied.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/widgets.json Ein Widget erstellen testimonial_widgets_create

Ein Aufruf enthält das ganze Widget: das Layout und seine Optionen, was es speist, was jede Karte zeigt und wie es aussieht. Alles, was weggelassen wird, beginnt mit einem Standard, und eine leere Stileinstellung übernimmt das Brand-Kit. Lassen Sie testimonial_widgets_embed folgen, um den Code zum Einfügen zu erhalten.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/widgets.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/testimonials/widgets/:id.json Ein Widget in den Papierkorb verschieben testimonial_widgets_trash

Seine Einbettungen rendern nichts und beanspruchen keinen Platz, bis es wiederhergestellt wird. Es wird nach 30 Tagen endgültig gelöscht. Über MCP ändert das Tool nichts und antwortet mit der Seite der App, auf der eine Person es tut.

Berechtigung: content.write · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/testimonials/widgets/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/testimonials/widgets/:id/duplicate.json Ein Widget mit jeder Einstellung kopieren testimonial_widgets_duplicate

Erstellt eine Kopie mit neuer ID und einem Namen, der auf "copy" endet. Die Kopie hat ihren eigenen Einbettungscode und wurde noch nirgends live gesehen. Das Original wird nicht geändert.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/widgets/:id/duplicate.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/widgets/:id/embed.json Den Einbettungscode eines Widgets und sein Gewicht abrufen testimonial_widgets_embed

Gibt das Script-Snippet (empfohlen), das eingefügte HTML, den Frame-Code und die Adresse der öffentlichen Daten zurück, mit der gemessenen Größe des Loader-Scripts und dieses Widgets. Das eingefügte HTML und der Frame sind für das Eck-Popup null.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/widgets/:id/embed.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/widgets.json Die Widgets einer Website auflisten testimonial_widgets_list

Widgets im Papierkorb werden nicht aufgelistet. Jedes Widget enthält seine Einstellungen, wie viele Testimonials es jetzt zeigt, seine Aufrufe und Klicks der letzten 30 Tage und die erste Seite, auf der es live gesehen wurde.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/widgets.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/testimonials/widgets/:id/installs.json Die Seiten auflisten, auf denen ein Widget live gesehen wurde testimonial_widgets_installs

Bis zu 50 Seiten, die neuesten zuerst. Nur das Script und der Frame können erkannt werden.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/widgets/:id/installs.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/testimonials/widgets/:id/restore.json Ein Widget aus dem Papierkorb wiederherstellen testimonial_widgets_restore

Es kommt überall zurück, wo es eingefügt wurde.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/testimonials/widgets/:id/restore.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/testimonials/widgets/:id.json Ein Widget mit jeder Einstellung, dem, was es zeigt, und dem Ort, an dem es live ist, abrufen testimonial_widgets_get

Alles, was der Builder speichert: das Layout und seine Optionen, was das Widget speist (eine Sammlung, eine gespeicherte Ansicht, Tags oder eine handverlesene Liste), was jede Karte zeigt, den Stil, die Sprache und das Bewertungs-Markup, mit dem Ort, an dem es live gesehen wurde, und wie viele Testimonials es jetzt zeigt. Ein Widget im Papierkorb antwortet mit 404.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/testimonials/widgets/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /sites/:site_id/testimonials/widgets/:id.json Ein Widget ändern testimonial_widgets_update

Nur die gesendeten Eingaben ändern sich. Eine gespeicherte Änderung erreicht jede Website, auf der das Widget ist, ohne ihren Code anzufassen, weil seine zwischengespeicherten Kopien gelöscht werden.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/testimonials/widgets/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Workspaces

GET /workspaces/:workspace_id/white_label.json Die White-Label-Marke abrufen white_label_get

Gibt das White-Label-Branding des Workspace zurück. Die Felder sind workspace_id (ws_...), brand_name, brand_logo_url und brand_color (eine Hex-Farbe wie #06755b), jeweils null, wenn nicht gesetzt, hide_branding, available (true, wenn der Tarif White Label enthält, also Business und höher) und active (true, wenn das Branding gesetzt und wirksam ist). Das Branding ersetzt Privatus Analytics auf geteilten Dashboards, Einbettungen, Statusseiten und E-Mail-Berichten. Erfordert workspace.manage.

Berechtigung: workspace.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/white_label.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /workspaces/:workspace_id/white_label.json Die White-Label-Marke für geteilte Dashboards und E-Mail-Berichte festlegen (Business) white_label_update

Setzt das White-Label-Branding des Workspace. Nur Tarif Business, sonst schlägt es mit einem Tariffehler fehl. Nur die Eingaben, die Sie senden, ändern sich, und ein leerer String leert brand_name, brand_logo_url oder brand_color. brand_logo_url muss eine https-URL zu einem Bild und brand_color eine Hex-Farbe wie #06755b sein. hide_branding true entfernt den Link zu Privatus Analytics von geteilten Dashboards, Einbettungen und Statusseiten und das Logo aus E-Mail-Berichten. Die Änderung gilt sofort für bestehende Freigabelinks. Erfordert workspace.manage. Gibt das Branding zurück (siehe white_label_get).

Berechtigung: workspace.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/workspaces/:workspace_id/white_label.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces/:workspace_id/security.json Sicherheitseinstellungen des Workspaces abrufen workspace_security_get

Gibt die Sicherheitsrichtlinie des Workspace zurück. Die Felder sind workspace_id (ws_...), enforce_2fa (Mitglieder müssen Zwei-Faktor-Authentifizierung verwenden), login_methods (die erlaubten aus password, magic_link, passkey, google, github und sso), session_ttl_hours (Abmeldung nach so vielen Stunden, null für keine Begrenzung), app_ip_allowlist (IPs oder CIDR-Bereiche, die die App und API nutzen dürfen, leer bedeutet überall) und support_access_until (ISO-8601-Zeit, bis zu der der Support von Privatus Analytics den Workspace einsehen darf, null, wenn kein Zugriff gewährt ist). Erfordert workspace.manage.

Berechtigung: workspace.manage

Beispiel
curl https://privatusanalytics.com/workspaces/:workspace_id/security.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /workspaces/:workspace_id/security.json Sicherheitseinstellungen des Workspaces aktualisieren (2FA, Anmeldemethoden, Sitzungsdauer, IP-Zulassungsliste, Support-Zugriff) workspace_security_update

Ändert die Sicherheitsrichtlinie des Workspace, nur die Eingaben, die Sie senden. enforce_2fa true verlangt von jedem Mitglied Zwei-Faktor-Authentifizierung und erfordert den Tarif Business. login_methods ersetzt die Liste der erlaubten Methoden durch Werte aus password, magic_link, passkey, google, github und sso, und das Entfernen einer Methode meldet gespeicherte Anmeldungen der Mitglieder ab, sodass sie sich erneut anmelden müssen. session_ttl_hours meldet Mitglieder nach so vielen Stunden ab (0 hebt die Begrenzung auf). app_ip_allowlist ersetzt die Liste der IPs oder CIDR-Bereiche, die die App und API erreichen dürfen (Tarif Business, eine leere Liste bedeutet überall) und wird abgelehnt, wenn sie die IP des Aufrufers ausschließen würde, sodass Sie sich nicht selbst aussperren können. support_access true lässt den Support von Privatus Analytics den Workspace 7 Tage lang einsehen, und false zieht diesen Zugriff zurück. Erfordert workspace.manage. Gibt die Richtlinie zurück (siehe workspace_security_get).

Berechtigung: workspace.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X PATCH https://privatusanalytics.com/workspaces/:workspace_id/security.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /workspaces.json Einen Workspace erstellen (Sie werden Inhaber) workspaces_create

Berechtigung: member · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X POST https://privatusanalytics.com/workspaces.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /workspaces/:id.json Einen Workspace und alle seine Websites löschen (nur Inhaber, kündigt jedes Abonnement) workspaces_delete

Löscht einen Workspace samt allen seinen Websites. Es ist ein Soft Delete: Alles verschwindet sofort und wird nach 7 Tagen endgültig gelöscht, behandeln Sie es also als unwiderruflich. Nur der Eigentümer kann es tun, und confirm muss der genaue Name des Workspace sein (Groß- und Kleinschreibung beachten). Ein laufendes bezahltes Abonnement wird zuerst sofort gekündigt, und schlägt diese Kündigung fehl, wird nichts gelöscht. Ausstehende Website-Übertragungen aus dem Workspace werden abgebrochen. Mitglieder verlieren den Zugriff. Mit workspaces_get lesen Sie den Namen. Erfordert workspace.manage und die Rolle owner. Gibt den Workspace zurück.

Berechtigung: workspace.manage · Nur HTTP (kein MCP-Tool)

Beispiel
curl -X DELETE https://privatusanalytics.com/workspaces/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /workspaces.json Ihre Workspaces auflisten workspaces_list

Listet die Workspaces auf, denen der Aufrufer angehört, nach Name sortiert. Ein API-Token oder eine MCP-Verbindung sieht nur den einen Workspace, für den er bzw. sie ausgestellt wurde. Jeder Eintrag hat id (ws_..., von den meisten Tools als workspace_id verwendet), name, timezone, currency, plan, plan_events, subscription_status und role (die Rolle des Aufrufers). Rufen Sie als Nächstes sites_list mit einer Workspace-ID auf, um Website-IDs zu finden. Das Erstellen eines Workspace ist nur in der App möglich.

Berechtigung: member

Beispiel
curl https://privatusanalytics.com/workspaces.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /workspaces/:id.json Einen Workspace abrufen workspaces_get

Gibt einen Workspace anhand seiner öffentlichen id zurück (ws_..., aus workspaces_list). Die Felder sind id, name, timezone (IANA-Name), currency (ISO 4217), plan (free, pro, business oder enterprise), plan_events (das monatliche Ereigniskontingent des Tarifs), subscription_status (none, trialing, active, past_due, paused oder canceled), role (die Rolle des Aufrufers darin) und created_at. Für vollständige Abrechnungsdetails verwenden Sie billing_get und für die Nutzung dieses Monats billing_usage. Jedes Mitglied kann es lesen.

Berechtigung: member

Beispiel
curl https://privatusanalytics.com/workspaces/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH /workspaces/:id.json Workspace-Einstellungen aktualisieren workspaces_update

Ändert den Namen, die Standard-Zeitzone oder die Standardwährung eines Workspace, nur die Eingaben, die Sie senden. timezone ist ein IANA-Name wie Europe/Berlin, und currency ist ein 3-stelliger ISO-4217-Code. Dies sind Standardwerte für neue Websites, sie ändern bestehende Websites nicht (verwenden Sie dafür sites_update). Erfordert workspace.manage. Gibt den Workspace zurück (siehe workspaces_get).

Berechtigung: workspace.manage

Beispiel
curl -X PATCH https://privatusanalytics.com/workspaces/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'

Ziele

POST /sites/:site_id/goals/:id/archive.json Ein Ziel archivieren (in Berichten ausgeblendet) goals_archive

Archiviert ein Ziel. Ein archiviertes Ziel ist in Berichten ausgeblendet, zählt nicht zum Zielelimit des Tarifs und behält seine Definition, sodass es später mit goals_unarchive wiederhergestellt werden kann. Es werden keine Daten gelöscht. Gibt das Ziel mit archived true und gesetztem archived_at zurück. Das Archivieren eines bereits archivierten Ziels bewirkt nichts. Um es endgültig zu entfernen, verwenden Sie goals_delete. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/goals/:id/archive.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/goals.json Ein Ziel erstellen goals_create

Erstellt ein Conversion-Ziel. Ziele sind Definitionen, die beim Lesen der Berichte angewendet werden, ein neues Ziel zählt also sofort passende Ereignisse im gesamten bestehenden Verlauf. Pflicht sind name und kind. kind bestimmt, welche anderen Eingaben gelten. page braucht pattern (einen Pfad, zum Beispiel /thank-you, mit match_type exact, prefix, glob oder regex) und kann hostname verwenden. event braucht event_name und kann conditions verwenden (Eigenschaftstests wie {key: plan, operator: is, value: pro}, alle müssen zutreffen, Operatoren is, is_not, contains, gt, lt). engagement braucht pattern plus scroll_threshold (Prozent 1 bis 100) und/oder time_threshold_seconds (erreicht, wenn eines von beiden erfüllt ist). outbound vergleicht die Link-Domain mit pattern (zum Beispiel stripe.com), und download vergleicht die Datei mit pattern (zum Beispiel *.pdf). value_mode ist none (Standard), fixed (verwendet fixed_value, einen Dezimalbetrag in der Website-Währung wie 49.5, gespeichert als fixed_value_minor in Cent) oder revenue (der eigene Umsatz des Ereignisses). count_mode ist once_per_visit (Standard) oder every. Free-Workspaces erlauben 10 aktive Ziele pro Website, bezahlte Tarife sind unbegrenzt. Gibt das Ziel mit id (goal_...) zurück. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/goals.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
DELETE /sites/:site_id/goals/:id.json Ein Ziel löschen (die Daten bleiben erhalten) goals_delete

Löscht eine Zieldefinition dauerhaft. Es werden keine Ereignisdaten gelöscht, aber das Ziel verschwindet aus den Berichten, und Funnel-Schritte, Journeys und Experimente, die darauf verweisen, funktionieren nicht mehr. Es gibt kein Rückgängigmachen. Um ein Ziel auszublenden und zu behalten, verwenden Sie goals_archive. Gibt das gelöschte Ziel zurück. IDs (goal_...) stammen aus goals_list. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X DELETE https://privatusanalytics.com/sites/:site_id/goals/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
POST /sites/:site_id/goals/:id/duplicate.json Ein Ziel kopieren goals_duplicate

Kopiert die Definition eines Ziels in ein neues aktives Ziel. Die Kopie heißt name, wenn Sie ihn senden, sonst der ursprüngliche Name gefolgt von (copy). Sie zählt zum Zielelimit des Tarifs (10 aktive Ziele pro Website bei Free). Gibt das neue Ziel mit einer neuen id zurück. Verwenden Sie es, um eine Variante eines Ziels zu beginnen, und ändern Sie sie dann mit goals_update. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/goals/:id/duplicate.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
GET /sites/:site_id/goals.json Ziele mit Abschlüssen, Conversions, Rate und Wert für einen Zeitraum auflisten goals_list

Listet die Ziele einer Website mit ihren Ergebnissen für den Zeitraum auf. Jedes Ziel ist die Definition (id goal_..., name, kind, match_type, pattern, hostname, event_name, conditions, scroll_threshold, time_threshold_seconds, value_mode, fixed_value_minor in Cent, count_mode, archived, archived_at) plus stats {completions, conversions, conversion_rate, value, change}. conversion_rate ist ein Prozentwert (0 bis 100), value ist in der kleinsten Währungseinheit (Cent), und change ist die prozentuale Änderung der Conversions gegenüber dem Vorzeitraum (null, wenn die frühere Zahl 0 war). status filtert auf active (Standard), archived oder all. Paginiert mit page und per_page (max. 100, Standard 25). Für den vollständigen Bericht eines Ziels verwenden Sie goals_get. Nutzt die gemeinsamen Eingaben period, compare und filters.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/goals.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
GET /sites/:site_id/goals/:id.json Zielbericht: Kennzahlen, Diagramm, Aufschlüsselungen und der Weg zur Conversion goals_get

Ein Ziel im Detail für einen Zeitraum. Gibt period, goal_id, goal (die Definition), metrics, interval, series, breakdowns, journey und, mit compare, comparison_period, comparison und change zurück. metrics hat completions (jedes passende Ereignis), conversions (Besuche mit mindestens einem Abschluss), conversion_rate (Prozent von 0 bis 100) und value (kleinste Währungseinheit, Cent). conversion_rate teilt durch Besuche oder durch Besucher, wenn die Website so eingestellt ist. series ist eine Liste von {date, completions, conversions, conversion_rate} je Zeitintervall (setzen Sie interval, um es zu ändern). breakdowns enthält die Top 10 nach Conversions für channel, utm_campaign, entry_page, country und device, jeweils als {value, completions, conversions, conversion_rate}. journey zeigt converting_visits, median_seconds_to_convert, median_pages_before und pages_before (die Top-10-Seiten, die vor der Conversion gesehen wurden, mit Besuchen und Anteil). Für alle Ziele auf einmal verwenden Sie goals_list und für mehrstufige Abläufe funnels_get. Nutzt die gemeinsamen Eingaben period, compare, filters und segment.

Berechtigung: analytics.read

Beispiel
curl https://privatusanalytics.com/sites/:site_id/goals/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN"
POST /sites/:site_id/goals/:id/unarchive.json Ein archiviertes Ziel wiederherstellen goals_unarchive

Stellt ein archiviertes Ziel wieder her, sodass es erneut in Berichten erscheint. Es zählt wieder zum Zielelimit des Tarifs (10 aktive Ziele pro Website bei Free), der Aufruf schlägt also mit einem Plan-Limit-Fehler fehl, wenn die Website bereits voll ist. Das Wiederherstellen eines Ziels, das nicht archiviert ist, bewirkt nichts. Gibt das Ziel mit archived false zurück. IDs stammen aus goals_list mit status archived. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X POST https://privatusanalytics.com/sites/:site_id/goals/:id/unarchive.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'
PATCH /sites/:site_id/goals/:id.json Ein Ziel aktualisieren goals_update

Ändert die Definition eines Ziels. Nur die Eingaben, die Sie senden, ändern sich. Die neue Definition gilt sofort für den gesamten Verlauf, daher ändern sich frühere Conversion-Zahlen. Die Eingaben sind dieselben wie bei goals_create, und es gelten dieselben Kombinationen, zum Beispiel sind event_name und conditions nur für Ereignisziele von Bedeutung und scroll_threshold und time_threshold_seconds nur für Engagement-Ziele. fixed_value ist ein Dezimalbetrag in der Website-Währung (in Cent gespeichert). Das Senden von conditions ersetzt alle bestehenden Bedingungen. Gibt das Ziel zurück. IDs stammen aus goals_list. Erfordert die Berechtigung content.write.

Berechtigung: content.write

Beispiel
curl -X PATCH https://privatusanalytics.com/sites/:site_id/goals/:id.json \
  -H "Authorization: Bearer $PRIVATUS_TOKEN" \
  -H "Content-Type: application/json" -d '{…}'