Atla bietet eine REST-API und Webhooks für die programmatische Anbindung an deine eigenen Systeme, z. B. CI/CD-Pipelines, Lokalisierungs-Tools, internes Reporting oder Custom-Integrationen.
API-Zugriff aktivierst du in Settings → API & Webhooks. Falls die Sektion nicht sichtbar ist, frage deinen Workspace-Admin, er kann den Zugriff für deinen Workspace freischalten.
API-Token erstellen
- Öffne Settings → API & Webhooks → Tokens.
- Klick auf + New Token.
- Vergib einen Namen (z. B. “CI/CD Bot”).
- Wähle Scopes:
docs:read, Docs lesendocs:write, Docs erstellen / änderntranslations:read, Translations lesentranslations:write, Jobs erstellenava:invoke, Ava-Anfragenwebhooks:manage, Webhooks verwalten
- Optional: Expiry (z. B. 90 Tage).
- Token kopieren, wird nur einmal gezeigt.
Behandle API-Tokens wie Passwörter, niemals in Git committen, niemals in Slack teilen.
Authentifizierung
Sende den Token im Authorization-Header:
curl https://api.atla.so/v1/docs \
-H "Authorization: Bearer YOUR_TOKEN"Endpoints (Übersicht)
Docs
| Method | Path | Wirkung |
|---|---|---|
| GET | /v1/docs | Liste aller Docs |
| GET | /v1/docs/:id | Einzelnes Doc |
| POST | /v1/docs | Neues Doc |
| PATCH | /v1/docs/:id | Doc aktualisieren |
| DELETE | /v1/docs/:id | Doc in Trash |
| GET | /v1/docs/:id/history | Versions-Liste |
| POST | /v1/docs/:id/export | Export als MD/PDF/HTML |
Translations
| Method | Path | Wirkung |
|---|---|---|
| GET | /v1/translations | Liste aller Jobs |
| GET | /v1/translations/:id | Job-Details |
| POST | /v1/translations | Neuen Job erstellen |
| POST | /v1/translations/:id/export | Übersetzungen exportieren |
| POST | /v1/translations/:id/push-pendo | Push to Pendo |
Ava
| Method | Path | Wirkung |
|---|---|---|
| POST | /v1/ava/chat | Einzelne Chat-Anfrage |
| GET | /v1/ava/dreams | Liste aller Dreams |
| POST | /v1/ava/dreams/:id/run | Dream manuell ausführen |
| GET | /v1/ava/dreams/:id/runs | Lauf-Historie |
Workspace
| Method | Path | Wirkung |
|---|---|---|
| GET | /v1/workspace | Workspace-Info |
| GET | /v1/workspace/members | Mitglieder-Liste |
| GET | /v1/workspace/audit | Audit-Log |
Beispiel: Doc anlegen
curl -X POST https://api.atla.so/v1/docs \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"title": "API Test Doc",
"content": "# Hallo\n\nDas ist ein API-erzeugtes Doc.",
"folder_id": "fld_abc123",
"tags": ["api", "test"]
}'Response:
{
"id": "doc_xyz789",
"title": "API Test Doc",
"url": "https://dev.atla.so/d/doc_xyz789",
"created_at": "2026-05-13T10:23:00Z"
}Beispiel: Übersetzungs-Job starten
curl -X POST https://api.atla.so/v1/translations \
-H "Authorization: Bearer $TOKEN" \
-F "file=@meine-datei.xliff" \
-F "target_locales=en,es,fr" \
-F "tone=neutral"Beispiel: Ava-Anfrage
curl -X POST https://api.atla.so/v1/ava/chat \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.1",
"mode": "core",
"messages": [
{"role": "user", "content": "Fasse das Doc doc_xyz789 zusammen."}
]
}'Webhooks
Atla kann Events an deine URL pushen, sobald etwas im Workspace passiert.
Webhook anlegen
- Settings → API & Webhooks → Webhooks.
- + New Webhook.
- Target-URL angeben (HTTPS).
- Events wählen, siehe unten.
- Secret kopieren (für Signaturen).
Events
| Event | Trigger |
|---|---|
doc.created | Neues Doc |
doc.updated | Doc geändert |
doc.deleted | Doc in Trash |
doc.shared | Doc geteilt |
comment.created | Neuer Kommentar |
translation.completed | Übersetzungs-Job fertig |
translation.review_completed | Sprach-Review abgeschlossen |
dream.run | Dream-Lauf (success / error) |
member.added | Neuer Workspace-Member |
Payload
Beispiel doc.created:
{
"event": "doc.created",
"timestamp": "2026-05-13T10:23:00Z",
"workspace": "ws_abc",
"data": {
"doc_id": "doc_xyz789",
"title": "API Test Doc",
"author": "user_123",
"folder_id": "fld_abc123"
}
}Signaturen verifizieren
Atla signiert jeden Webhook mit deinem Secret:
X-Atla-Signature: sha256=<hex>Verifiziere in deinem Endpoint:
import hmac, hashlib
expected = hmac.new(
secret.encode(),
body,
hashlib.sha256
).hexdigest()
if not hmac.compare_digest(expected, sig.split('=')[1]):
abort(401)Retry
- 3 Retries bei HTTP ≥ 500 oder Timeout
- Exponentielles Backoff (10s, 60s, 5min)
- Nach 3 Fehlversuchen wird der Event als verworfen markiert
Rate Limits
| Endpoint-Gruppe | Limit |
|---|---|
/v1/docs/* | 60 req/min |
/v1/translations/* | 30 req/min |
/v1/ava/* | 10 req/min |
| Webhooks | beliebig (Push-out) |
Bei Überschreitung: HTTP 429 mit Retry-After-Header (in Sekunden).
SDK / Libraries
Atla bietet (sofern verfügbar) offizielle SDKs:
| Sprache | Status |
|---|---|
| JavaScript / TypeScript | Ja |
| Python | Ja |
| Go | Beta |
| PHP | Community |
Installation z. B. via:
npm install @atla/sdkVersionierung
Atla nutzt URL-basierte Versionierung: /v1/, /v2/. Breaking Changes erscheinen in einer neuen Version mit mindestens 6 Monaten paralleler Verfügbarkeit der alten.
Häufige Fragen
Mein Token funktioniert nicht
- Korrekt im Header?
Authorization: Bearer XYZ - Scope ausreichend für die Operation?
- Token abgelaufen?
Webhook kommt nicht an
- Target-URL erreichbar?
- HTTPS mit gültigem Zertifikat?
- Firewall blockiert Atla-IPs?
- Im Webhook-Log (Settings → Webhooks → Logs) siehst du Versuche und Antworten.
API-Doku vollständig?
Siehe https://docs.atla.so/api (sofern verfügbar) für OpenAPI-Spec.