Agency Reporting API

Reports automatisieren — mit demselben Datenvertrag wie im Dashboard

REST, MCP und Exporte verwenden dieselben agenturgebundenen Reporting-Services. Antworten nennen API-Version, Methodik und Herkunft; 500 authentifizierte Anfragen pro Stunde gelten gemeinsam für REST und MCP.

Authentifizierung

Verwenden Sie den im geschützten Agency-Dashboard erzeugten Zugang als Bearer-Token oder im Headerx-pressefeuer-key. Behandeln Sie ihn wie ein Passwort und geben Sie ihn nie an Browser-Clients oder öffentliche Repositories weiter.

Jede Antwort enthält die API-Version und Rate-Limit-Header. Mandantenfremde Ressourcen werden wie nicht vorhandene Ressourcen behandelt.

curl --request GET \
  --url 'https://pressefeuer.at/api/reporting/v1/articles/123?days=30' \
  --header 'Authorization: Bearer $PRESSEFEUER_KEY'

REST v1 Endpunkte

GET/api/reporting/v1/articles/{pressReleaseId}

Aktuelle Artikel-Performance mit externen Beobachtungen

GET/api/reporting/v1/reports/{reportId}

Einen unveränderlichen Report-Snapshot abrufen

POST/api/reporting/v1/exports

Einen idempotenten PDF-, CSV- oder JSON-Export einreihen

GET/api/reporting/v1/exports/{jobId}

Status und Download-URL eines Exportjobs abfragen

GET/api/reporting/v1/exports/{jobId}/download

Einen fertigen Export herunterladen

GET / POST/api/reporting/v1/webhooks

Webhooks und Zustellungen auflisten oder einen Webhook registrieren

DELETE/api/reporting/v1/webhooks/{webhookId}

Eine Webhook-Zustellung deaktivieren

GET/api/reporting/v1/data

Vollständigen agenturgebundenen Reporting-Datenexport abrufen

DELETE/api/reporting/v1/data

Reporting-Daten mit expliziter Bestätigung löschen

POST/api/reporting/v1/conversions

Idempotente Conversion mit frischer HMAC-Signatur erfassen

Asynchroner Export

Exporte benötigen einen stabilenIdempotency-Key. Derselbe Schlüssel liefert denselben Auftrag zurück. Fragen Sie die Status-URL ab und laden Sie das Ergebnis erst beicompleted.

  • Scopes: article, campaign oder portfolio
  • Zeitraum: 1 bis 365 Tage
  • Formate: PDF, CSV und JSON
  • Abgelaufene Downloads liefern einen eindeutigen Fehlerstatus
curl --request POST \
  --url 'https://pressefeuer.at/api/reporting/v1/exports' \
  --header 'Authorization: Bearer $PRESSEFEUER_KEY' \
  --header 'Content-Type: application/json' \
  --header 'Idempotency-Key: monthly-client-a-2026-07' \
  --data '{
    "scopeType": "campaign",
    "scopeId": "CAMPAIGN_UUID",
    "days": 30,
    "format": "pdf"
  }'

Signierte Webhooks

Bei der Registrierung wird das Signiergeheimnis genau einmal zurückgegeben. Webhooks senden einen Zeitstempel und eine HMAC-SHA256-Signatur übertimestamp.body. Prüfen Sie Signatur und Zeitfenster vor der Verarbeitung.

Ereignisse: report.export.completed, report.export.failed und report.delivery.failed. Fehlgeschlagene Zustellungen werden begrenzt wiederholt und danach als nicht zustellbar markiert.

const expected = createHmac("sha256", signingSecret)
  .update(timestamp + "." + rawBody)
  .digest("hex");

if (
  expected.length !== signature.length ||
  !timingSafeEqual(
    Buffer.from(expected, "hex"),
    Buffer.from(signature, "hex")
  )
) {
  throw new Error("invalid signature");
}

MCP-Tools

Agenten können Performance lesen, Berichte erzeugen und gespeicherte Snapshots abrufen. Die gleichen Plan- und Mandantengrenzen gelten wie bei REST und im Dashboard.

get_article_performancecreate_publication_reportget_publication_reportlist_publication_reports

Der Conversion-Endpunkt verwendet den Agency-Schlüssel als HMAC-Geheimnis und verlangt zusätzlichx-pressefeuer-timestampundx-pressefeuer-signature. Signiert wird der unveränderte Request-Body; das Zeitfenster beträgt fünf Minuten.

Datenkontrollen

  • Der vollständige Datenexport enthält Reports, Audits, Kampagnen, Portfolios, Zeitpläne, Erwähnungen, externe Beobachtungen, Zustellungen und Provider-Metadaten — niemals gespeicherte Zugangsdaten.
  • Die Löschung erfordert zusätzlich den exakten Bestätigungsheader x-pressefeuer-confirm: DELETE REPORTING DATA.
  • Löschung betrifft Reporting-Daten der authentifizierten Agentur, nicht Pressemitteilungen oder das Agenturkonto.