Baue auf tarsiflow mit einer einfachen REST-API
Lies und aktualisiere Kunden, Leads, Projekte und Aufgaben und hol Rechnungen und Angebote in deine Berichte. Erstelle einen Token in deinem Workspace und sende in einer Minute deine erste Anfrage.
- REST und JSON
- Persönliche Tokens
- Lese- oder Schreibzugriff
Erste Schritte
-
1. Token erstellen
Öffne in der App dein Kontomenü und wähle API-Tokens. Wähle Nur lesen oder Lesen und schreiben.
-
2. API aufrufen
Sende Anfragen an die Basis-URL unten, mit deinem Token im Authorization-Header.
-
3. Sicher aufbewahren
Ein Token handelt in deinem Namen in einem Workspace. Widerrufe ihn jederzeit auf derselben Seite.
Basis-URL
https://tarsiflow.com/api/v1
Authentifizierung
Jede Anfrage braucht einen Bearer-Token. Tokens mit Lesezugriff dürfen alle GET-Endpunkte aufrufen. Tokens mit Schreibzugriff können zusätzlich Einträge anlegen und ändern.
curl https://tarsiflow.com/api/v1/me \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept: application/json"
Konventionen
- Anfragen und Antworten sind JSON. Sende Content-Type: application/json, wenn du Daten überträgst.
- Geldbeträge sind immer ganze Zahlen in Cent mit einem separaten dreistelligen Währungscode, 125000 mit USD sind also 1.250,00 Dollar.
- Datumsangaben nutzen YYYY-MM-DD. Zeitstempel nutzen ISO 8601 in UTC.
- Listen sind paginiert. Nutze page und per_page (bis 100). Jede Antwort enthält links und meta mit den Summen.
- Aktualisierungen nutzen PATCH und ändern nur die Felder, die du sendest.
Fehler und Limits
| Status | Bedeutung |
|---|---|
| 401 | Token fehlt, ist abgelaufen oder widerrufen. |
| 403 | Der Token ist nur lesend, oder du gehörst nicht mehr zu seinem Workspace. |
| 404 | Der Eintrag existiert in diesem Workspace nicht. |
| 422 | Die Validierung ist fehlgeschlagen. Das errors-Objekt nennt jedes Feld und was zu korrigieren ist. |
| 429 | Zu viele Anfragen. Das Limit liegt bei 120 Anfragen pro Minute und Token. |
{
"message": "The name field is required.",
"errors": {
"name": [
"The name field is required."
]
}
}
Konto
Wem der Token gehört, in welchem Workspace er arbeitet, die Teammitglieder und die Pipeline-Phasen.
-
GET
/meInhaber des Tokens, Workspace und Berechtigungen des Tokens. -
GET
/membersPersonen im Workspace, für Zuständigen- und Verantwortlichen-IDs. -
GET
/lead-stagesPipeline-Phasen, für lead_stage_id.
Kunden
Alle Kunden im Workspace mit ihrem Hauptkontakt.
-
GET
/clientsKunden auflisten. Filter: search, status, tag. -
POST
/clientsEinen Kunden anlegen. -
GET
/clients/{id}Einen Kunden abrufen. -
PATCH
/clients/{id}Einen Kunden aktualisieren. Sende nur die geänderten Felder.
Felder, die du senden kannst
- name
- string
- Beim Anlegen erforderlich.
- status
- string
- active, inactive, archived
- email, phone, website, address
- string
- Optionale Kontaktdaten.
- currency
- string
- Dreistelliger Code wie USD. Standard ist die Workspace-Währung.
- tags
- array
- Liste kurzer Labels.
Beispiel
curl -X POST https://tarsiflow.com/api/v1/clients \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"name":"Brightline Dental","email":"[email protected]","tags":["healthcare"]}'
{
"data": {
"id": 42,
"name": "Brightline Dental",
"status": "active",
"email": "[email protected]",
"currency": "USD",
"tags": [
"healthcare"
],
"primary_contact": null
}
}
Leads
Chancen in deiner Pipeline. Werte sind in Cent.
-
GET
/leadsLeads auflisten. Filter: stage_id, search. -
POST
/leadsEinen Lead anlegen. Er landet in der ersten offenen Phase, außer du übergibst lead_stage_id. -
GET
/leads/{id}Einen Lead abrufen. -
PATCH
/leads/{id}Einen Lead aktualisieren, auch um ihn in eine andere Phase zu verschieben.
Felder, die du senden kannst
- name
- string
- Beim Anlegen erforderlich. Das Projekt oder die Person, etwa Website-Relaunch.
- company, email, phone, source, notes
- string
- Optionale Angaben.
- value_cents
- integer
- Geschätzter Wert in Cent. 250000 bedeutet 2.500,00.
- expected_close_date
- date
- YYYY-MM-DD
- lead_stage_id, owner_id
- integer
- IDs aus /lead-stages und /members.
Projekte
Kundenprojekte. Neue Projekte erhalten automatisch eine erste Aufgabenliste.
-
GET
/projectsProjekte auflisten. Filter: client_id, status. -
POST
/projectsEin Projekt für einen Kunden anlegen. -
GET
/projects/{id}Ein Projekt mit seinen Aufgabenlisten abrufen. -
PATCH
/projects/{id}Ein Projekt aktualisieren.
Felder, die du senden kannst
- client_id, name
- erforderlich
- Der zugehörige Kunde und der Name.
- status
- string
- planning, active, on_hold, completed, cancelled
- start_date, due_date
- date
- YYYY-MM-DD
- budget_cents
- integer
- Budget in Cent.
Aufgaben
Aufgaben in Projekten oder eigenständig. Beim Zuweisen wird die Person benachrichtigt.
-
GET
/tasksAufgaben auflisten. Filter: project_id, assignee_id, status, due_before. -
POST
/tasksEine Aufgabe anlegen. -
GET
/tasks/{id}Eine Aufgabe abrufen. -
PATCH
/tasks/{id}Eine Aufgabe aktualisieren. Wird status auf done gesetzt, wird der Abschlusszeitpunkt gespeichert.
Felder, die du senden kannst
- title
- string
- Beim Anlegen erforderlich.
- project_id, task_list_id
- integer
- Optional. Ohne Liste landet die Aufgabe in der ersten Liste des Projekts.
- assignee_id
- integer
- Eine ID aus /members.
- status
- string
- todo, in_progress, review, done
- priority
- string
- low, medium, high
- due_date
- date
- YYYY-MM-DD
Beispiel
curl -X PATCH https://tarsiflow.com/api/v1/tasks/318 \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"status":"done"}'
{
"data": {
"id": 318,
"title": "Homepage wireframes",
"status": "done",
"priority": "high",
"completed_at": "2026-10-26T14:05:11+00:00"
}
}
Rechnungen
Nur lesend. Der Endpunkt für eine einzelne Rechnung enthält Positionen und Zahlungen.
-
GET
/invoicesRechnungen auflisten. Filter: status, client_id. -
GET
/invoices/{id}Eine Rechnung mit Positionen, Zahlungen und offenem Betrag abrufen.
Angebote
Nur lesend. Der Endpunkt für ein einzelnes Angebot enthält die Positionen.
-
GET
/proposalsAngebote auflisten. Filter: status, client_id. -
GET
/proposals/{id}Ein Angebot mit seinen Positionen abrufen.