Feedback Analytics

Developers

Feedback Analytics API

Nutzen Sie die Feedback Analytics API, um Formulare, Antworten, Datentabellen und Events in Ihre eigenen Anwendungen, Dashboards und Automatisierungen zu integrieren.

REST APIJSONAPI Key AuthOpenAPIRate Limited

Base URL

https://feedback-analytics.com/api/v1

Intro

Eine REST-API für alles: Workspaces und Formulare abrufen (inkl. Schema und Analytics), Formularantworten abrufen (mit Antworten, Bewertung, Datentabellen-Verknüpfung), Datentabellen verwalten (CRUD auf Zeilen), E-Mail-Verlauf und Events. API-Key-Authentifizierung. Geeignet für Zapier, Make, n8n und eigene Apps.

Quick start

Stap 1: maak een API key

API-Schlüssel erstellen: In Feedback Analytics zu Workspace → Einstellungen → "API-Schlüssel" und "Neuer Schlüssel" klicken. Schlüssel (beginnt mit fa_) sicher aufbewahren; er wird nur einmal angezeigt.

Stuur de key mee via de header X-API-Key.

Stap 2: doe je eerste request

bash
curl https://feedback-analytics.com/api/v1/workspaces \
  -H "X-API-Key: YOUR_API_KEY"

Stap 3: begrijp de response

Elke succes-response heeft hetzelfde envelope: data, meta, links, request_id.

json
{
  "data": [
    {
      "id": "ws_123",
      "name": "Main workspace",
      "link": "my-workspace"
    }
  ],
  "meta": {},
  "links": {},
  "request_id": "req_abc123"
}

Authentifizierung

Sende bei jeder Anfrage den Header X-API-Key mit deinem API-Schlüssel. Schlüssel beginnen mit fa_. Dein API-Schlüssel hat Zugriff auf einen oder mehrere Workspaces; du darfst nur Ressourcen dieser Workspaces abfragen.

API-Schlüssel anlegen unter Workspace-Einstellungen → API-Schlüssel (nach Anmeldung). Schlüssel sicher aufbewahren und nie in Frontend-Code oder öffentlichen Repos teilen.

bash
curl "https://feedback-analytics.com/api/v1/workspaces" \
  -H "X-API-Key: fa_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Response format

Elke succes-response heeft exact vier top-level velden. Errors hebben error en request_id.

data

De resource of lijst resources.

meta

Extra metadata, o.a. paginering (limit, has_more).

links

Navigatie: self, next, prev (bij lijsten).

request_id

Unieke id voor debugging en support.

json
{
  "data": {},
  "meta": {},
  "links": {},
  "request_id": "req_abc123"
}

Fehlercodes

Bei einem Fehler liefert die API JSON mit error, message und optional details.

json
{
  "error": {
    "code": "resource_not_found",
    "message": "Resource not found",
    "status": 404
  },
  "request_id": "req_abc123"
}

Error codes

CodeHTTPWanneer
invalid_api_key401Ontbrekende of ongeldige API-key.
api_key_expired401Key ingetrokken of verlopen.
insufficient_scope403Key mist vereiste scope.
workspace_access_denied403Geen toegang tot deze workspace.
resource_not_found404Resource niet gevonden of geen toegang.
validation_error400Ongeldige body/query; zie details.
conflict409Bijv. dubbele unieke waarde.
idempotency_replay409Zelfde Idempotency-Key, andere body.
rate_limit_exceeded429Retry na Retry-After header.
internal_error500Serverfout; retry met backoff.

Pagination

Cursor-based: gebruik limit (standaard 20, max 100) en cursor voor de volgende pagina. Gebruik links.next voor de volgende URL.

bash
curl "https://feedback-analytics.com/api/v1/workspaces/WORKSPACE_ID/responses?limit=20&cursor=resp_123" \
  -H "X-API-Key: YOUR_API_KEY"
  • • default limit = 20, max limit = 100
  • • cursor-based; geen page/offset
  • • meta.has_more geeft aan of er meer pagina's zijn

Filtering & sort

Query parameters per resource. Veelvoorkomend: form_id, created_after, created_before, score_gte, score_lte. Sort: sort=veld:richting (asc of desc).

bash
curl "https://feedback-analytics.com/api/v1/workspaces/WORKSPACE_ID/responses?form_id=form_123&limit=20" \
  -H "X-API-Key: YOUR_API_KEY"
bash
curl "https://feedback-analytics.com/api/v1/workspaces/WORKSPACE_ID/responses?created_after=2026-01-01&score_gte=8" \
  -H "X-API-Key: YOUR_API_KEY"
bash
curl "https://feedback-analytics.com/api/v1/workspaces/WORKSPACE_ID/responses?sort=created_at:desc" \
  -H "X-API-Key: YOUR_API_KEY"

Resources

Alle endpoints zijn genest onder /api/v1/workspaces/{workspace_id}. Vervang workspace_id met de id uit GET /workspaces.

Wo finde ich workspace_id und table_id?

In der App verwendest du oft den Workspace-Link. Die API verwendet stattdessen die interne workspace_id und table_id (lange CUID-Strings).

  • workspace_id: Liste mit GET /api/v1/workspaces abrufen; die Response enthält pro Workspace eine id (und name, link). Diese id als workspace_id in allen anderen Endpoints verwenden.
  • table_id oder datatable_id: Nach GET …/tables oder …/datatables erhältst du eine Liste mit id und name; die id in …/datatables/{datatable_id}/rows verwenden.

Workspaces

Workspaces die de API-key kan benaderen. Gebruik de id als workspace_id in alle andere endpoints.

GET/api/v1/workspaces

Lijst workspaces

GET/api/v1/workspaces/{workspace_id}

Eén workspace ophalen

bash
curl "https://feedback-analytics.com/api/v1/workspaces" -H "X-API-Key: YOUR_API_KEY"

Forms

Du kannst Formulare in einem Workspace abrufen (Liste und Details), das Formularschema (Fragen, Typen, Optionen, Validierung; nützlich für Integrationen) und eine Analytics-Zusammenfassung (Gesamt-Responses, Durchschnittsbewertung, letzte Response). Der Schema-Endpoint unterstützt If-None-Match / ETag für Caching. Siehe Übersicht unten und die OpenAPI-Spezifikation für alle Parameter.

GET/api/v1/workspaces/{workspace_id}/forms

Lijst formulieren

GET/api/v1/workspaces/{workspace_id}/forms/{form_id}

Eén formulier, ?include=questions

GET/api/v1/workspaces/{workspace_id}/forms/{form_id}/schema

Formulierschema (ETag)

GET/api/v1/workspaces/{workspace_id}/forms/{form_id}/analytics/summary

Analytics-samenvatting

Questions

Vragen horen bij een formulier. Alleen lezen in v1.

GET/api/v1/workspaces/{workspace_id}/forms/{form_id}/questions

Lijst vragen

GET/api/v1/workspaces/{workspace_id}/forms/{form_id}/questions/{question_id}

Eén vraag

Responses

Formularantworten abrufen: Liste mit Paginierung, Filter und Sortierung oder eine Response per ID. Jede Response enthält Antworten, Bewertung, Verknüpfung zu Formular und Datentabelle (row_id). Bei Ausfüllen über E-Mail-Link erhältst du respondent_email und email_id. Mit include_table_data=true die Datentabellen-Zeile zum Zeitpunkt des Absendens. Ideal für Berichte, CRM-Sync oder eigene Dashboards.

GET/api/v1/workspaces/{workspace_id}/responses

Lijst responses (alle formulieren)

GET/api/v1/workspaces/{workspace_id}/responses/{response_id}

Eén response

GET/api/v1/workspaces/{workspace_id}/forms/{form_id}/responses

Lijst responses van één formulier

Veelgebruikte filters

form_id, created_after, created_before, score_gte, score_lte

bash
curl "https://feedback-analytics.com/api/v1/workspaces/WORKSPACE_ID/responses?form_id=form_123&limit=20" \
  -H "X-API-Key: YOUR_API_KEY"
json
{
  "data": [
    {
      "id": "resp_123",
      "form_id": "form_123",
      "score": 8,
      "created_at": "2026-03-10T12:00:00Z",
      "answers": [],
      "respondent_email": null,
      "row_id": null
    }
  ],
  "meta": { "limit": 20, "has_more": false },
  "links": { "self": "...", "next": null, "prev": null },
  "request_id": "req_abc123"
}

Datatables

Zeilen in Datentabellen verwalten: Tabellen auflisten, Felder abrufen, Zeilen mit Filter und Sortierung lesen, eine oder mehrere Zeilen hinzufügen/aktualisieren (Upsert auf data.id) oder löschen.

GET/api/v1/workspaces/{workspace_id}/datatables

Lijst datatables

GET/api/v1/workspaces/{workspace_id}/datatables/{datatable_id}

Eén datatable, ?include=fields

Rows (datatable-rijen)

CRUD op rijen binnen een datatable. Server wijst row_id toe bij POST. PATCH voor partiële update, DELETE voor verwijderen.

GET/api/v1/workspaces/{workspace_id}/datatables/{datatable_id}/rows

Lijst rijen

GET/api/v1/workspaces/{workspace_id}/datatables/{datatable_id}/rows/{row_id}

Eén rij

POST/api/v1/workspaces/{workspace_id}/datatables/{datatable_id}/rows

Rij aanmaken

PATCH/api/v1/workspaces/{workspace_id}/datatables/{datatable_id}/rows/{row_id}

Rij bijwerken

DELETE/api/v1/workspaces/{workspace_id}/datatables/{datatable_id}/rows/{row_id}

Rij verwijderen (204)

bash
curl -X POST "https://feedback-analytics.com/api/v1/workspaces/WORKSPACE_ID/datatables/DATATABLE_ID/rows" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"data": {"email": "jan@voorbeeld.nl", "naam": "Jan"}}'
json
{
  "data": {
    "row_id": "row_abc",
    "email": "jan@voorbeeld.nl",
    "naam": "Jan",
    "created_at": "2026-03-10T12:00:00Z",
    "updated_at": "2026-03-10T12:00:00Z"
  },
  "meta": {},
  "links": {},
  "request_id": "req_abc123"
}

Email events

E-Mail-Event-Verlauf abrufen: Sendungen, Opens, Clicks, Bounces usw., verknüpft mit email_id, row_id, form_id und flow_id. Nützlich für Berichte oder CRM-Sync.

GET/api/v1/workspaces/{workspace_id}/email-events

Lijst e-mail events

GET/api/v1/workspaces/{workspace_id}/emails/{email_id}/events

Events voor één e-mail (convenience)

Filters: email_id, type, created_after, created_before, recipient

bash
curl "https://feedback-analytics.com/api/v1/workspaces/WORKSPACE_ID/email-events?limit=20&sort=created_at:desc" \
  -H "X-API-Key: YOUR_API_KEY"

Webhook endpoints

Beheer webhook-URLs voor events. POST om aan te maken, DELETE om te verwijderen.

GET/api/v1/workspaces/{workspace_id}/webhook-endpoints

Lijst webhooks

POST/api/v1/workspaces/{workspace_id}/webhook-endpoints

Webhook aanmaken

GET/api/v1/workspaces/{workspace_id}/webhook-endpoints/{endpoint_id}

Eén webhook

DELETE/api/v1/workspaces/{workspace_id}/webhook-endpoints/{endpoint_id}

Webhook verwijderen (204)

API keys

Lijst metadata van API-keys (geen secrets). POST om een key aan te maken; de secret wordt één keer getoond. DELETE om te revoken.

GET/api/v1/workspaces/{workspace_id}/api-keys

Lijst keys (metadata)

POST/api/v1/workspaces/{workspace_id}/api-keys

Key aanmaken (secret 1x in response)

DELETE/api/v1/workspaces/{workspace_id}/api-keys/{key_id}

Key revoken (204)

Rate limit

Pro API-Schlüssel gilt ein Rate Limit (ca. 60 Anfragen pro Minute). Die Response-Header X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset zeigen die aktuelle Nutzung.

Elke response bevat de headers X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (Unix seconden).

OpenAPI specification

De machine-readable OpenAPI 3.0-spec kun je gebruiken voor client generation, Postman/Insomnia import, tooling en SDK-generation.

OpenAPI spec (JSON)

GET https://feedback-analytics.com/api/v1/openapi

In Postman oder Insomnia "Import" → "Link" verwenden und einfügen: /api/v1/openapi (gleiche Domain wie diese Seite).

Diese Dokumentation folgt der Implementierungsspezifikation docs/API-ARCHITECTURE-DESIGN.md. Endpoint-Matrix: docs/API-ENDPOINT-MATRIX.md. Gap-Analyse: docs/API-GAP-ANALYSIS.md. OpenAPI: GET /api/v1/openapi. Paginierung: cursor + limit (Standard 20, max 100).

API-Schlüssel benötigt?

Schlüssel unter Workspace → Einstellungen → API-Schlüssel anlegen oder uns für Support kontaktieren.

Geen creditcard · Gratis tot 3 formulieren · Annuleer altijd