gantt400-API für Entwickler
Stand: 29. Oktober 2026
Mit der API lesen und schreiben eigene Skripte und Werkzeuge die
Projekte Deines Teams: Projekte und Aufgaben abrufen, Karten auf dem
Board anlegen, einen ganzen Projektplan in einem Aufruf anlegen oder
angleichen. Die API läuft unter
https://app.gantt400.com/api/… auf denselben Servern in
Deutschland wie die App.
1. API-Schlüssel anlegen
Admins und Inhaber eines Teams legen Schlüssel in der App an:
Einstellungen → API-Schlüssel. Dort wählst Du einen Namen, die Rechte (Scopes) und die Gültigkeit
(bis 365 Tage). Der Schlüssel beginnt mit g4k_ und wird
nur einmal angezeigt — kopiere ihn sofort an einen
sicheren Ort. Ein Schlüssel schreibt mit Bearbeiter-Rechten, nur im
Team, in dem er angelegt wurde, und nur, was seine Rechte erlauben.
Widerrufen geht jederzeit an derselben Stelle.
Schlüssel anlegen, auflisten und widerrufen geht nur in der angemeldeten App, nie mit einem Schlüssel selbst.
2. Der erste Aufruf
Jede Anfrage trägt den Schlüssel als Bearer-Token. Damit er weder in
der Shell-History noch in der Prozessliste landet, liest Du ihn einmal
verdeckt ein und legst den Kopf in eine Datei, die nur Du lesen
kannst. Dieser Aufruf listet dann die Projekte, die der Schlüssel
sehen darf (Recht projects:read):
mkdir -p ~/.config/g400
printf 'API-Schlüssel: '; read -rs G400_API_KEY; echo
( umask 077; rm -f ~/.config/g400/header
printf 'Authorization: Bearer %s\n' "$G400_API_KEY" > ~/.config/g400/header )
unset G400_API_KEY
curl -sS https://app.gantt400.com/api/projects -H @"$HOME/.config/g400/header"
Die Datei liegt bewusst außerhalb Deines Projekts, damit sie nie in
ein Repository gerät. Brauchst Du den Schlüssel nicht mehr:
rm ~/.config/g400/header und den Schlüssel in der App
widerrufen.
Fehler kommen als JSON mit einem stabilen Code im Feld
error, etwa 401 bei einem ungültigen oder
abgelaufenen Schlüssel oder 403 mit
forbidden_api_key_scope, wenn ein Recht fehlt.
3. Ein Projektplan in einem Aufruf
POST /api/projects/{id}/task-tree legt einen ganzen
Teilbaum an oder bringt ihn auf den beschriebenen Stand — etwa eine
Roadmap mit Phasen, Schritten und Meilensteinen. Jeder Knoten trägt
einen selbst gewählten Schlüssel ref: fehlt er im
Projekt, entsteht die Aufgabe; gibt es ihn, wird sie angeglichen. Ein
zweiter Lauf mit demselben Inhalt schreibt nichts. Mit
?dry_run=1 rechnet der Server alles durch und schreibt
nichts.
curl -sS -X POST "https://app.gantt400.com/api/projects/24/task-tree?dry_run=1" \
-H @"$HOME/.config/g400/header" \
-H "Content-Type: application/json" \
-H "X-Gantt400-Today: $(date +%F)" \
-d '{"nodes":[
{"ref":"roadmap/q1","name":"Q1: Pilot","children":[
{"ref":"roadmap/q1/setup","name":"Einrichtung",
"start_date":"2026-11-02","end_date":"2026-11-13"},
{"ref":"roadmap/q1/go","name":"Go-live",
"start_date":"2026-11-20","end_date":"2026-11-20",
"is_milestone":true}]},
{"ref":"roadmap/q2","name":"Q2: Ausrollen"}]}'
Benötigte Rechte: tasks:create,
tasks:update und tasks:read. Höchstens 500
Knoten und Tiefe 16 je Aufruf; alles läuft in einer Transaktion.
Ändert sich ein Termin, rücken abhängige Aufgaben mit — wie beim
Ziehen im Gantt.
4. Referenz
Alle beschriebenen Routen mit Feldern, Rechten und Fehlercodes stehen
in der API-Referenz (englisch).
Die Beschreibung als OpenAPI 3.1 liegt unter
/developers/openapi.json
— damit lassen sich Klienten erzeugen oder Werkzeuge wie Postman
füttern. Weitere Routen kommen schrittweise dazu.
Fragen
Schreib uns an info@gantt400.com.