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.
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.
curl https://privatusanalytics.com/sites/pa_7Q2K9XH3AB/stats/aggregate.json?period=7d \
-H "Authorization: Bearer $PRIVATUS_TOKEN"
{
"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
Senden Sie Authorization: Bearer pat_…. Erstellen Sie Tokens unter Workspace-Einstellungen, API-Tokens. Anleitung zur Authentifizierung.
Hängen Sie .json an jeden Pfad an. Antworten haben die Form { "data": … } und Fehler die Form { "error": { "code", "message" } }. Fehler.
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)
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)
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
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)
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
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
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
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)
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)
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)
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)
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)
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)
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)
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
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)
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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)
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
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
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
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
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
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
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
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
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)
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
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)
curl https://privatusanalytics.com/openapi.json
GET
/docs/search.json
Die Dokumentation durchsuchen
docs_search
Durchsucht die Dokumentation auf dem Server und gibt eine nach Relevanz sortierte Liste von Seiten zurück. Verwenden Sie es, um herauszufinden, wie eine Funktion arbeitet, bevor Sie raten. q wird in bis zu 10 Begriffe zerlegt, jeder Begriff muss auf der Seite vorkommen, und Treffer in Titel und Überschriften ranken am höchsten. Ein leeres q gibt jede Seite in Katalogreihenfolge zurück. limit ist standardmäßig 20, wenn q angegeben ist, und höchstens 100. Jedes Ergebnis hat title, path (verwenden Sie die Teile section und page mit docs_get), section, headings (Liste aus id und text, nützlich als Überschriften-Anker), excerpt und score (null, wenn q leer ist). Durchsucht die Sprache der Anfrage, standardmäßig Englisch. Öffentlich, keine Authentifizierung nötig.
Berechtigung: public
curl https://privatusanalytics.com/docs/search.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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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)
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)
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)
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)
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)
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
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)
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
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
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
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)
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
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
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
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
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
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
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)
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
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
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
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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)
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
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)
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
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
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
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)
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
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
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)
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
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
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
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
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
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)
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)
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
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
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
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
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.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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
curl https://privatusanalytics.com/sites/:site_id/campaigns.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN"
POST
/sites/:site_id/campaigns/links.json
Einen Link mit UTM-Tags in der Bibliothek speichern
links_create
Speichert einen UTM-getaggten Link in der Link-Bibliothek der Website (der Pfad nimmt site_id entgegen). name (bis zu 120 Zeichen) und destination (eine http- oder https-URL mit bis zu 2048 Zeichen) sind Pflicht. Die utm-Werte werden automatisch bereinigt, in Kleinbuchstaben umgewandelt, getrimmt und Leerzeichen in Unterstriche umgewandelt, und ein Wert, der wie personenbezogene Daten aussieht (zum Beispiel eine E-Mail-Adresse), wird abgelehnt. Bis zu 20 Tags werden behalten, durch Kommas getrennte Einträge werden aufgeteilt, und Tags werden in Kleinbuchstaben umgewandelt und bei 40 Zeichen abgeschnitten. Es speichert nur den Link und trackt von sich aus nichts. Die zurückgegebene url ist das Ziel mit den hinzugefügten UTM-Parametern, und ein UTM-Parameter, der bereits im Ziel steht, wird ersetzt. Für einen QR-Code verwenden Sie links_qr.
Berechtigung: content.write
curl -X POST https://privatusanalytics.com/sites/:site_id/campaigns/links.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN" \
-H "Content-Type: application/json" -d '{…}'
DELETE
/sites/:site_id/campaigns/links/:id.json
Einen gespeicherten Link löschen
links_delete
Entfernt einen gespeicherten Link aus der Bibliothek. Dabei wird nur der gespeicherte Eintrag gelöscht, bereits geteilte URLs funktionieren weiter, und ihre Besuche werden weiterhin nach Kampagne gezählt. Das kann nicht rückgängig gemacht werden. Die id (lnk_...) stammt aus links_list. Gibt den gelöschten Link zurück.
Berechtigung: content.write
curl -X DELETE https://privatusanalytics.com/sites/:site_id/campaigns/links/:id.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN" \
-H "Content-Type: application/json" -d '{…}'
GET
/sites/:site_id/campaigns/links.json
Gespeicherte Kampagnenlinks auflisten
links_list
Listet die gespeicherten Kampagnenlinks (UTM-getaggte URLs) einer Website auf (der Pfad nimmt site_id entgegen), neueste zuerst und paginiert. Jeder Link hat id (lnk_...), name, destination, utm_source, utm_medium, utm_campaign, utm_content, utm_term, url (das Ziel mit den hinzugefügten UTM-Parametern, bereit zum Teilen), tags, notes, created_at und updated_at. query durchsucht name, destination und utm_campaign, tag behält nur Links mit diesem Tag. Dies ist die gespeicherte Bibliothek. Wie Kampagnen abgeschnitten haben, sehen Sie mit campaigns_list oder stats_breakdown mit der Dimension utm_campaign.
Berechtigung: analytics.read
curl https://privatusanalytics.com/sites/:site_id/campaigns/links.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN"
GET
/sites/:site_id/campaigns/links/:id/qr.json
QR-Code (SVG) für einen gespeicherten Link
links_qr
Gibt einen QR-Code für die vollständige getaggte URL eines gespeicherten Links zurück, zum Drucken. Die Antwort hat link_id, url (die im Code kodierte getaggte URL) und svg (ein vollständiges eigenständiges SVG-Dokument als String, schwarz auf weiß). size ist die Modulgröße in Pixeln, von 2 bis 20 (Standard 6) und skaliert das Bild. Die id (lnk_...) stammt aus links_list. Verwenden Sie links_get, wenn Sie nur die URL brauchen.
Berechtigung: analytics.read
curl https://privatusanalytics.com/sites/:site_id/campaigns/links/:id/qr.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN"
GET
/sites/:site_id/campaigns/links/:id.json
Einen gespeicherten Kampagnenlink abrufen
links_get
Gibt einen gespeicherten Kampagnenlink anhand der id zurück (lnk_..., aus links_list). Die Antwort hat name, destination, utm_source, utm_medium, utm_campaign, utm_content, utm_term (jeweils null, wenn nicht gesetzt), url (die vollständige getaggte URL), tags, notes, created_at und updated_at. Für einen druckfertigen QR-Code derselben URL verwenden Sie links_qr.
Berechtigung: analytics.read
curl https://privatusanalytics.com/sites/:site_id/campaigns/links/:id.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN"
PATCH
/sites/:site_id/campaigns/links/:id.json
Einen gespeicherten Link ändern
links_update
Ändert einen gespeicherten Kampagnenlink (id aus links_list). Nur die Eingaben, die Sie senden, ändern sich. Es gelten dieselbe Bereinigung und dieselben Prüfungen auf personenbezogene Daten wie bei links_create. Das Senden von tags ersetzt die gesamte Tag-Liste. Senden Sie einen leeren String für ein utm-Feld, um es zu leeren. Gibt den aktualisierten Link mit seiner neu berechneten url zurück.
Berechtigung: content.write
curl -X PATCH https://privatusanalytics.com/sites/:site_id/campaigns/links/:id.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN" \
-H "Content-Type: application/json" -d '{…}'
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
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
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
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
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
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
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
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
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
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
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)
curl https://privatusanalytics.com/wallboard/:token.json
POST
/sites/:site_id/live/wallboard/links.json
Einen Wallboard-Link erstellen (schreibgeschützt, widerrufbar)
wallboard_links_create
Erstellt eine schreibgeschützte Wallboard-URL, die jeder, der sie hat, ohne Anmeldung öffnen kann. Teilen Sie sie also nur mit Personen, die diese Zahlen sehen sollen. Der Pfad nimmt site_id entgegen, und diese Website ist immer enthalten. site_ids fügt weitere Websites zum Durchwechseln hinzu (pa_...-IDs, auf die Sie zugreifen können, insgesamt bis zu 12 Websites). rotate_seconds gibt an, wie lange jede Website auf dem Bildschirm bleibt, von 5 bis 300 (Standard 20, Werte außerhalb werden begrenzt). expires_at ist ein ISO-8601-Datum mit Uhrzeit oder ein reines Datum YYYY-MM-DD, das das Ende dieses Tages in der Zeitzone der Website bedeutet. Das Wallboard zeigt nur Live-Zahlen und die aggregierten Zahlen von heute. Gibt den Link mit seiner url zurück. Widerrufen Sie ihn mit wallboard_links_delete.
Berechtigung: sites.manage
curl -X POST https://privatusanalytics.com/sites/:site_id/live/wallboard/links.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN" \
-H "Content-Type: application/json" -d '{…}'
DELETE
/sites/:site_id/live/wallboard/links/:id.json
Einen Wallboard-Link widerrufen
wallboard_links_delete
Widerruft einen Wallboard-Link, sodass Fernseher, die ihn anzeigen, nicht mehr aktualisiert werden und die URL nicht mehr funktioniert. Das kann nicht rückgängig gemacht werden, erstellen Sie stattdessen einen neuen Link. Das Widerrufen eines bereits widerrufenen Links bewirkt nichts. Die id (shr_...) stammt aus wallboard_links_list. Gibt den Link mit gesetztem revoked_at zurück.
Berechtigung: sites.manage
curl -X DELETE https://privatusanalytics.com/sites/:site_id/live/wallboard/links/:id.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN" \
-H "Content-Type: application/json" -d '{…}'
GET
/sites/:site_id/live/wallboard/links.json
Wallboard-Links einer Website auflisten
wallboard_links_list
Listet die Wallboard-Links einer Website auf (der Pfad nimmt site_id entgegen), neueste zuerst und einschließlich widerrufener. Ein Wallboard-Link ist eine geheime URL, die Live-Besucher und die heutigen Zahlen ohne Anmeldung auf einem Fernseher zeigt. Jeder hat id (shr_...), name, url, site_ids (pa_...-IDs der Websites, durch die er wechselt), rotate_seconds, expires_at, revoked_at (gesetzt, sobald widerrufen) und created_at. Aufrufer, die auf einige Websites beschränkt sind, sehen nur Links, deren Websites alle ihre eigenen sind. Für die Wallboard-Daten selbst verwenden Sie live_wallboard. Erfordert die Berechtigung sites.manage.
Berechtigung: sites.manage
curl https://privatusanalytics.com/sites/:site_id/live/wallboard/links.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN"
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
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
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)
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
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)
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)
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
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)
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
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)
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)
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)
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)
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)
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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)
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
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
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
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
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
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
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)
curl https://privatusanalytics.com/sponsor/:token.json
Sponsorenberichte
POST
/sites/:site_id/experiments/ads/:ad_placement_id/reports.json
Einen Link zu einem Sponsorenbericht für einen Werbeplatz erstellen
ad_report_links_create
Ein schreibgeschützter Link zu den Zahlen des Werbeplatzes, für alle seine Anzeigenmotive oder die in creative_ids aufgeführten, für jemanden ohne Konto. Über MCP erhält das Mitglied eine E-Mail, dass ein Link erstellt wurde. Pro und höher. Erfordert content.write. Gibt den Link mit seiner url zurück.
Berechtigung: content.write
curl -X POST https://privatusanalytics.com/sites/:site_id/experiments/ads/:ad_placement_id/reports.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN" \
-H "Content-Type: application/json" -d '{…}'
DELETE
/sites/:site_id/experiments/ads/:ad_placement_id/reports/:id.json
Einen Link zu einem Sponsorenbericht löschen
ad_report_links_delete
Die Adresse funktioniert sofort nicht mehr. 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)
curl -X DELETE https://privatusanalytics.com/sites/:site_id/experiments/ads/:ad_placement_id/reports/:id.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN" \
-H "Content-Type: application/json" -d '{…}'
GET
/sites/:site_id/experiments/ads/:ad_placement_id/reports.json
Links zu Sponsorenberichten eines Werbeplatzes auflisten
ad_report_links_list
Die Links mit ihrer Adresse und ihrem Ablaufdatum. Erfordert analytics.read.
Berechtigung: analytics.read
curl https://privatusanalytics.com/sites/:site_id/experiments/ads/:ad_placement_id/reports.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN"
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)
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)
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)
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)
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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)
curl https://privatusanalytics.com/badge/:site_id.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
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
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
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
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)
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)
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)
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
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)
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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)
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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)
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
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
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)
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
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
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
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
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
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
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
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
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)
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)
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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)
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
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
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)
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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
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
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
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)
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
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
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
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
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
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
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)
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)
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
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
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)
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)
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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)
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)
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
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
curl https://privatusanalytics.com/status.json
GET
/tools/consent-gap.json
Den Traffic schätzen, der von einwilligungsbasierter Analyse verpasst wird
tools_consent_gap
Kostenloser Rechner, der schätzt, wie viel Traffic ein Analytics-Tool mit Cookie-Einwilligung im Vergleich zu cookielosem Tracking verpasst. Es ist ein einfaches Modell, keine Messung. Eingaben sind monthly_visitors (eine ganze Zahl über 0), consent_rate (Prozent der Besucher, die das Banner akzeptieren, 0 bis 100) und adblock_share (Prozent, deren Blocker das Script stoppen, 0 bis 100, Standard 25). Gibt die Eingaben plus measured_with_consent (Besucher, die das Einwilligungs-Tool sieht), missed (Besucher, die es nicht sieht), missed_percent (eine Nachkommastelle), measured_cookieless (ohne Banner erreichbare Besucher) und recovered_by_cookieless (Besucher, die gegenüber Tracking mit Einwilligung hinzukommen) zurück. Alle Besucherzahlen sind ganze Zahlen. Es sendet keine Anfragen und verwendet keine Kontodaten. Öffentlich, keine Authentifizierung nötig.
Berechtigung: public
curl https://privatusanalytics.com/tools/consent-gap.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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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)
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
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
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)
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
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
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
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)
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)
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)
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)
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
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)
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
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
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
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
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)
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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)
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)
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)
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
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
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
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
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
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
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
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
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
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
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
curl -X PATCH https://privatusanalytics.com/sites/:site_id/goals/:id.json \
-H "Authorization: Bearer $PRIVATUS_TOKEN" \
-H "Content-Type: application/json" -d '{…}'