Wie frage ich Daten ab? Paging, Filter, Sortierung, Felder, include, Suche und Batch
REST API Pro nutzt für alle rund 30 Ressourcen (Kunden, Rechnungen, Leads, Tickets, Projekte, Tasks und viele mehr) dieselbe, konsistente Abfrage-Logik und eine einheitliche JSON-Envelope. Wer eine Ressource beherrscht, beherrscht alle.
📄 Paging
Listen liefern nie stumpf alle Datensätze, sondern seitenweise. Steuere das über page und per_page :
curl 'https://dein-crm.de/rest_api_pro/v1/invoices?page=2&per_page=25' \ -H 'X-Api-Key: DEIN_API_KEY'
🔎 Filter
Mit filter[spalte]=wert schränkst du Ergebnisse gezielt ein. Welche Spalten je Ressource filterbar sind, steht in der eingebauten Doku.
.../v1/invoices?filter[status]=1
↕️ Sortierung
Über sort= sortierst du auf- oder absteigend. Ein vorangestelltes Minus dreht die Richtung:
.../v1/invoices?sort=-date (neueste zuerst)
🎯 Nur bestimmte Felder (Sparse-Fields)
Mit fields= holst du dir nur die Spalten, die du wirklich brauchst. Das spart Bandbreite und macht Antworten übersichtlicher:
.../v1/customers?fields=id,company,vat
🧩 Verknüpfte Daten mit include
Über include= bekommst du Kind-Sammlungen gleich mitgeliefert, ohne einen zweiten Aufruf, etwa die Kontakte zu einem Kunden:
.../v1/customers/123?include=contacts
🕑 Sync-Fenster
Mit updated_after= holst du dir nur Datensätze, die sich seit einem Zeitpunkt geändert haben, perfekt für regelmäßige Abgleiche mit anderen Systemen.
🌐 Globale Suche
Ein eigener Suchendpunkt durchsucht mehrere Ressourcen gleichzeitig, sodass du mit einer Anfrage über Kunden, Rechnungen, Leads und mehr suchen kannst. Zusätzlich gibt es einen Stats-Endpunkt mit den wichtigsten CRM-Kennzahlen.
📦 Batch-Requests
Mehrere Operationen in einem einzigen Aufruf bündeln? Der Batch-Endpunkt nimmt bis zu 25 Operationen gleichzeitig an. Das reduziert Roundtrips deutlich, etwa wenn du viele Datensätze auf einmal anlegst oder liest.
✉️ Schreiben trotz CSRF
Zum Anlegen und Ändern kannst du POST verwenden. Falls in deiner Perfex-Installation der CSRF-Schutz aktiv ist und einfache POSTs blockiert, funktionieren Schreibvorgänge per PUT/PATCH sofort und ohne Konfiguration ( PUT /customers legt an, wie POST). Die Einstellungsseite hat einen Health-Check, der dir sagt, ob das für deine Installation zutrifft, und dir bei Bedarf die offizielle Einzeiler-Ausnahme anbietet.
💡 Am besten ausprobieren
Jeder Parameter ist im eingebauten Playground unter API Docs live testbar, inklusive fertiger Code-Beispiele.