Pitchfire

REST API

Base URL: https://<your-slug>.pitchfire.app/api/v1. Alle responses zijn JSON.

Common parameters

  • page (int, default 1)
  • pageSize (int, 1-100, default 25)
  • search (string, full-text op naam)
  • orderBy / orderDir (per-endpoint specifiek)

Endpoints

MethodPathBeschrijving
GET/api/v1/campaignsLijst campagnes (paginatie, status filter)
POST/api/v1/campaignsMaak campagne aan
GET/api/v1/campaigns/{id}Detail van een campagne (incl. metrics)
PATCH/api/v1/campaigns/{id}Werk velden bij
DELETE/api/v1/campaigns/{id}Archiveer campagne (soft delete)
GET/api/v1/assetsLijst content-assets
POST/api/v1/assetsMaak asset (whitepaper, video, tool)
GET/api/v1/linkedin-postsGeplande + gepubliceerde LinkedIn posts
POST/api/v1/linkedin-postsPlan een nieuwe post
GET/api/v1/ad-campaignsGesynchroniseerde ad-campagnes (alle platforms)
GET/api/v1/ad-metrics?days=30Geaggregeerde metrics over alle platforms
POST/api/v1/ai/generate-copyStream Claude-gegenereerde ad-copy varianten
GET/api/v1/ai/suggestionsLijst openstaande AI-suggesties
POST/api/v1/ai/suggestions/{id}/applyMarkeer suggestie als toegepast
GET/api/v1/reports/{id}/pdfWhite-label rapport als PDF
GET/api/v1/webhooksLijst webhook-subscriptions
POST/api/v1/webhooksMaak webhook-subscription

Voorbeeld: nieuwe campagne

curl https://acme.pitchfire.app/api/v1/campaigns \
  -X POST \
  -H "Authorization: Bearer pfk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Q3 Launch — NIS2 Classifier",
    "status": "PLANNED",
    "budgetCents": 5000000,
    "budgetCurrency": "EUR",
    "startDate": "2026-07-01",
    "endDate": "2026-09-30",
    "tags": ["nis2", "compliance", "ceo"]
  }'

Error responses

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "endDate moet na startDate liggen",
    "fields": { "endDate": ["after_start_date"] }
  }
}

HTTP status codes: 200 success, 400 validatie, 401 unauthenticated, 403 plan-limiet/permissie, 404 niet gevonden, 429 rate-limit, 5xx server-fout.

REST API · Pitchfire