API Dokumentation

Die Formsly REST API ermöglicht den programmatischen Zugriff auf Formulare und Antworten. Alle Anfragen erfolgen über HTTPS an https://formsly.ch/api.

Authentifizierung

Die API verwendet API-Keys zur Authentifizierung. Du findest und erstellst deine Keys unter Einstellungen → API-Keys in deinem Formsly-Dashboard.

Sende den Key als Authorization-Header:

curl https://formsly.ch/api/zapier/forms \
  -H "Authorization: Bearer fsk_live_DEIN_API_KEY"

Alternativ kann der Key als Query-Parameter übergeben werden (nicht empfohlen für Produktion, da Keys in Server-Logs erscheinen können):

curl "https://formsly.ch/api/zapier/forms?api_key=fsk_live_DEIN_API_KEY"
GET/api/auth/verifyAPI-Key überprüfen

Prüft ob ein API-Key gültig ist und gibt die zugehörigen Nutzer-Infos zurück.

// Response 200 OK
{
  "user_id": "95ad5a4a-...",
  "username": "name@beispiel.ch",
  "email": "name@beispiel.ch"
}

Formulare

GET/api/zapier/formsAlle Formulare abrufen

Gibt eine Liste aller Formulare des authentifizierten Nutzers zurück.

curl https://formsly.ch/api/zapier/forms \
  -H "Authorization: Bearer fsk_live_DEIN_API_KEY"
// Response 200 OK
[
  {
    "id": "2627c769-7f64-4839-befb-ac551d30cdea",
    "name": "Mietinteressen-Anfrage"
  },
  {
    "id": "e751ed0b-32b2-4020-9bca-65fc1fbe2d7d",
    "name": "Bewerbungsformular"
  }
]

Antworten

GET/api/zapier/responsesAntworten abrufen

Gibt die neuesten Antworten eines Formulars zurück. Antwortfelder werden als flache Key-Value-Paare zurückgegeben.

ParameterTypBeschreibung
form_id*stringID des Formulars
curl "https://formsly.ch/api/zapier/responses?form_id=2627c769-..." \
  -H "Authorization: Bearer fsk_live_DEIN_API_KEY"
// Response 200 OK
[
  {
    "id": "f1b00f39-...",
    "form_id": "2627c769-...",
    "submitted_at": "2026-03-14T10:44:38.604+00:00",
    "consent_given": true,
    "completion_time_seconds": 24,
    "Vor- und Nachname": "Lena Musterfrau",
    "E-Mail": "lena@beispiel.ch",
    "Telefon": "+41 79 123 45 67"
  }
]

Formularfelder werden direkt als Top-Level-Felder mit dem Label als Key zurückgegeben. Verschlüsselte Antworten werden serverseitig entschlüsselt.

Webhooks

Webhooks senden eine HTTP POST-Anfrage an deine URL, sobald eine neue Antwort eingereicht wird. Ideal für Echtzeit-Integrationen.

POST/api/webhooks/zapierWebhook registrieren
FeldTypBeschreibung
form_id*stringID des zu überwachenden Formulars
target_url*stringURL die bei neuen Antworten aufgerufen wird
curl -X POST https://formsly.ch/api/webhooks/zapier \
  -H "Authorization: Bearer fsk_live_DEIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"form_id": "2627c769-...", "target_url": "https://deine-app.ch/webhook"}'
// Response 200 OK
{
  "id": "abc123-...",
  "form_id": "2627c769-...",
  "target_url": "https://deine-app.ch/webhook"
}
DELETE/api/webhooks/zapierWebhook entfernen
curl -X DELETE https://formsly.ch/api/webhooks/zapier \
  -H "Authorization: Bearer fsk_live_DEIN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"id": "abc123-..."}'
Webhook-Payload: Formsly sendet die vollständige Antwort als JSON-Objekt an deine URL — identisch mit dem Rückgabeformat von /api/zapier/responses.

Zapier-Integration

Formsly ist als Zapier-Integration verfügbar. Verbinde dein Formsly-Konto mit über 7'000 Apps ohne eine einzige Zeile Code.

Formsly Switzerland auf Zapier öffnen →
  1. Klicke auf den Link oben und akzeptiere die Einladung zur Formsly Zapier-Integration
  2. Erstelle einen API-Key unter Einstellungen → API-Keys
  3. Erstelle einen neuen Zap und wähle Formsly Switzerland als Trigger-App
  4. Verbinde dein Konto mit dem API-Key
  5. Wähle das gewünschte Formular aus dem Dropdown
  6. Konfiguriere deine Action (z.B. Google Sheets, E-Mail, CRM)

Fehlercodes

StatusBedeutung
200Erfolgreich
201Erstellt (z.B. neuer Webhook)
400Fehlende oder ungültige Parameter
401Ungültiger oder fehlender API-Key
403Kein Zugriff auf diese Ressource
404Ressource nicht gefunden
500Interner Serverfehler
// Fehler-Antwort
{
  "error": "Unauthorized"
}

Fragen zur API? Schreib uns an team@formsly.ch