Überblick

Zuletzt aktualisiert 16 August 2026

Eine curl-Anfrage, die einen Lead anlegt, daneben das JSON, das zurückkommt, über die Flexie REST API

Alles in Ihrem Arbeitsbereich hat eine URL. Kontakte, Leads, Deals, Tickets, Aufgaben, Notizen und Ihre eigenen benutzerdefinierten Datensätze lassen sich aus Ihrem eigenen Code lesen und schreiben, mit gewöhnlichem HTTP und JSON.

Dies ist der Praxisleitfaden: wie sich die API verhält und wie Sie damit echte Arbeit erledigen. Die vollständige Liste aller Endpunkte und die OpenAPI-Datei finden Sie in der API-Referenz.

Für wen das gedacht ist

Sie brauchen Sie brauchen nicht
etwas, das eine HTTP-Anfrage senden kann ein Flexie-SDK, es gibt keines und Sie brauchen keines
eine Zugangsberechtigung (einen API-Schlüssel oder ein OAuth-Token) irgendetwas zu installieren
die Adresse Ihres Arbeitsbereichs zu wissen, wie Flexie innen aufgebaut ist

Wenn ein anderes System nur Daten in Flexie hineinsenden soll, brauchen Sie die API womöglich gar nicht: Ein dynamischer Endpunkt gibt Ihnen eine URL, an die Sie senden und damit einen Workflow auslösen. Die API sagt Ihnen, welche es gibt und alles, was Sie zum Aufruf brauchen, siehe Dynamische Endpunkte.

Die ganze Idee an einem Beispiel

Einen Lead anlegen, ihn wieder auslesen und ihn dann über einen Filter erneut finden. Drei Aufrufe, sonst nichts eingerichtet:

# 1. Anlegen
curl -X POST "https://ihre-subdomain.flexie.io/api/leads/new" \
  -H "apikey: IHR_API_SCHLUESSEL" \
  -H "Content-Type: application/json" \
  -d '{"first_name":"Ada","last_name":"Lovelace","email":"ada@example.com"}'
{ "lead": { "id": "32759", "first_name": "Ada", "last_name": "Lovelace",
            "email": "ada@example.com", "date_added": "2026-08-16T20:41:44+02:00" } }
# 2. Wieder auslesen
curl "https://ihre-subdomain.flexie.io/api/leads/32759" -H "apikey: IHR_API_SCHLUESSEL"
# 3. Über eine Bedingung wiederfinden
curl -X POST "https://ihre-subdomain.flexie.io/api/leads/search" \
  -H "apikey: IHR_API_SCHLUESSEL" \
  -H "Content-Type: application/json" \
  -d '{"filters":{"condition":"AND","rules":[
        {"field":"last_name","operator":"equal","value":"Lovelace"}]},"limit":10}'
{ "total": "1", "current_page": 1, "total_pages": 1, "leads": [ { "id": "32759", ... } ] }

Das ist das ganze Modell. Der Rest dieses Leitfadens ist Detail.

Ihre Adresse

Jede URL beginnt mit der Adresse Ihres eigenen Arbeitsbereichs:

https://ihre-subdomain.flexie.io/api/...

Läuft Ihr Arbeitsbereich auf Ihrer eigenen Domain, nehmen Sie diese Domain. Der Pfad hinter /api ist in beiden Fällen derselbe.

Die Verben

Die API entscheidet anhand des Verbs, was passiert, und derselbe Pfad kann unter verschiedenen Verben Verschiedenes bedeuten:

Was Sie wollen Verb und Pfad
Datensätze auflisten GET /api/leads
Einen Datensatz lesen GET /api/leads/{id}
Datensätze filtern POST /api/leads/search mit einem Regelsatz
Anlegen POST /api/leads/new
Aktualisieren PUT oder PATCH /api/leads/{id}
Über ein eindeutiges Feld aktualisieren PUT, PATCH oder POST /api/leads/edit
Über ein eindeutiges Feld finden POST /api/leads/identify
Löschen DELETE /api/leads/{id}

Senden Sie das falsche Verb, sagt Flexie das unmissverständlich und nennt die Verben, die der Pfad annimmt:

{ "error": { "message": "No route found for \"DELETE /api/leads\": Method Not Allowed (Allow: GET, POST, HEAD)", "code": 0 } }

Was zurückkommt

Ein einzelner Datensatz kommt unter der Einzahlform seines Typs zurück:

{ "lead": { "id": "32759", "first_name": "Ada" } }

Eine Liste kommt unter dem Tabellennamen der Entität zurück, zusammen mit einer Gesamtzahl:

{ "total": "10699", "leads": [ { "id": "1" }, { "id": "2" } ] }

Eine Suche ergänzt, wo Sie sich im Ergebnis befinden:

{ "total": "1545", "current_page": 2, "total_pages": 773, "leads": [ ... ] }

Zwei Details, die Sie kennen sollten, bevor Sie Ihren Auswertungscode schreiben:

  • total kommt als Zeichenkette zurück, nicht als Zahl. Wandeln Sie den Wert um, bevor Sie damit rechnen.
  • Der Schlüssel der Sammlung ist der Tabellenname der Entität: leads, accounts, deals, cases, tasks und für Ihre eigenen Entitäten das, was in der Spalte Tabellenname auf dem Entitäten-Bildschirm steht. Er heißt nicht data und nicht items.

Welche Entitäten

Die Entitäten, die Ihre Datensätze enthalten, verhalten sich überall gleich, und dies sind die, die Sie filtern können:

Entität Pfad
Kontakte /api/contacts
Leads /api/leads
Firmen /api/accounts
Deals /api/deals
Tickets /api/cases

Die übrigen listen, lesen und schreiben auf dieselbe Weise, nehmen aber keine Filter an:

Endpunkt Pfad Hinweise
Aufgaben /api/tasks vollständig lesen und schreiben
Notizen /api/notes/{entityType}/{id} hängen an einem Datensatz
E-Mails /api/emails lesen und senden
Berichte /api/reports lesen, und /api/reports/{id}/data liefert die Zeilen eines Berichts
Benutzer /api/users nur eine Liste, sonst nichts
Dynamische Endpunkte /api/dynamic_endpoints die URLs, die einen Workflow starten

Benutzer sind bewusst nur lesbar: Ein Konto ist der Zugang einer Person zum gesamten System, deshalb wird es in Flexie selbst angelegt und geändert. Rollen und Workflows werden überhaupt nicht bereitgestellt.

Ihre eigenen benutzerdefinierten Datensätze nutzen dieselben Formen unter /api/ce/{tableName}, wobei der letzte Teil des Pfads der Tabellenname der Entität ist, genau so, wie er in Flexie gesetzt ist, klein geschrieben mit Unterstrichen:

curl "https://ihre-subdomain.flexie.io/api/ce/projects?limit=10" -H "apikey: IHR_API_SCHLUESSEL"
curl "https://ihre-subdomain.flexie.io/api/ce/payment_installments?limit=10" -H "apikey: IHR_API_SCHLUESSEL"

Der Schlüssel in der Antwort ist derselbe Tabellenname, Pfad und Antwort stimmen also überein:

{ "total": "247", "payment_installments": [ { "id": "4" } ] }

Ein einzelner Datensatz kommt unter dessen Einzahlform zurück, payment_installment.

Das Filtern funktioniert genau gleich. Siehe Datensätze finden.

Datum, Uhrzeit und Typen

Datumsangaben kommen als ISO 8601 mit dem Zeitzonen-Offset des Arbeitsbereichs zurück:

"date_added": "2026-08-16T20:41:44+02:00"

Wenn Sie ein Datum senden, werden sowohl YYYY-MM-DD als auch vollständiges ISO 8601 angenommen. Numerische Ids kommen je nach Feld mal als Zahl und mal als Zeichenkette zurück; vergleichen Sie locker oder wandeln Sie vor dem Vergleich um.

Was Sie als Nächstes lesen sollten