ABlyft integrierenReference

REST API

Verwalte Experiments und lies Results programmatisch mit der ABlyft REST API aus.

Mit der REST API können Skripte und andere Systeme mit ABlyft arbeiten: Projects und Experiments auflisten, Experiments anlegen oder ändern, starten und pausieren sowie Results auslesen. Requests und Responses verwenden JSON.

Die Base-URL ist https://app.ablyft.com/api. Eine vollständige, interaktive Reference aller Endpoints mit ihren Parametern findest du unter https://app.ablyft.com/docs/api.

Authentication

Jeder Request braucht ein API token im Authorization-Header:

Authorization: Bearer YOUR_TOKEN
Accept: application/json

Ein Token erstellen

  1. Öffne deine persönlichen Einstellungen und gehe zu API Tokens.

  2. Klicke auf Create token.

  3. Gib einen Name ein (wird in deiner Token-Liste angezeigt) und wähle die Permissions:

    PermissionErlaubt
    Read onlyDaten lesen (GET-Requests)
    Read & writeDaten lesen, anlegen, ändern und löschen
  4. Kopiere das Token aus dem Dialog. Es wird nur einmal angezeigt.

Die Token-Liste zeigt für jedes Token Name, Abilities, wann es zuletzt verwendet und wann es erstellt wurde. Mit Revoke löschst du ein Token. Ein Token läuft nicht von selbst ab.

Ein Token funktioniert für alle Teams, in denen du Mitglied bist, mit den Permissions deiner Rolle im jeweiligen Team, siehe Rollen & Berechtigungen. Ein Request mit fehlender Ability liefert 403 mit der Meldung "Missing required ability: read" (oder write).

Halte Tokens geheim

Lege ein Token niemals in Frontend-Code oder in einem öffentlichen Repository ab. Siehe Security.

Rate limit

Requests sind pro User und Minute begrenzt. Standardmäßig kann ein User 60 Requests pro Minute senden. Wenn du das Limit überschreitest, antwortet die API mit dem HTTP-Status 429. Warte einen Moment und versuche es erneut. Kontaktiere den ABlyft-Support, wenn du ein höheres Limit brauchst.

Endpoints

IDs in Pfaden sind numerisch. {project} ist die Project-ID, {experiment} die Experiment-ID.

ResourceMethode und PfadZweck
TeamsGET /teamsTeams, zu denen du gehörst
GET /teams/{team}/projectsProjects eines Teams
ProjectsGET /projects/{project}Ein Project anzeigen
PUT/PATCH /projects/{project}name, description, significance, min_conversions, min_runtime_days aktualisieren
DELETE /projects/{project}Ein Project löschen
POST /projects/{project}/{model}/find-by-nameEin Element anhand seines exakten name finden. {model} ist experiments, audiences, pages, goals oder environments
ExperimentsGET /projects/{project}/experimentsExperiments auflisten (optional ?variations=lite)
POST /projects/{project}/experimentsEin Experiment anlegen
GET /projects/{project}/experiments/{experiment}Ein Experiment anzeigen
PUT/PATCH /projects/{project}/experiments/{experiment}Name, API Name, Beschreibung, Beispiel-URL, Traffic Allocation sowie zugeordnete Audiences, Pages, Goals und Environments aktualisieren
DELETE /projects/{project}/experiments/{experiment}Ein Experiment löschen
POST /projects/{project}/experiments/{experiment}/cloneEin Experiment klonen
PATCH /projects/{project}/experiments/{experiment}/statusDen Status ändern
PATCH /projects/{project}/experiments/{experiment}/publishDas Project publishen
Variations/projects/{project}/experiments/{experiment}/variationsAuflisten, anlegen, anzeigen, aktualisieren, löschen
Audiences/projects/{project}/audiencesAuflisten, anlegen, anzeigen, aktualisieren, löschen
Pages/projects/{project}/pagesAuflisten, anlegen, anzeigen, aktualisieren, löschen
Goals/projects/{project}/goalsAuflisten, anlegen, anzeigen, aktualisieren, löschen
EnvironmentsGET /projects/{project}/environments und .../{environment}Nur lesend
ResultsGET /projects/{project}/experiments/{experiment}/resultsStatistiken pro Goal
GET .../results/infoShare-Token und Share-URL der Results
GET .../results/goal/{goal}Event-Serie eines Goals
GET .../results/goal/{goal}/downloadDasselbe als CSV-Datei

Für die Standard-Resources (Variations, Audiences, Pages, Goals) gelten die üblichen Methoden: GET zum Auflisten oder Anzeigen, POST zum Anlegen, PUT/PATCH zum Aktualisieren und DELETE zum Löschen. Anlegen, Aktualisieren und Löschen erfordert ein Read & write-Token und die Permission deiner Rolle.

Es gibt keinen Endpoint, der alle Projects auf einmal auflistet. Lies zuerst deine Teams und dann die Projects jedes Teams.

Den Status eines Experiments ändern

Sende eines von draft, preview, running, pause oder archive als status:

curl -X PATCH https://app.ablyft.com/api/projects/12345678/experiments/23456789/status \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"status": "running"}'

Die Response enthält das aktualisierte Experiment. Stelle sicher, dass das Experiment mindestens eine Variation, Page und ein Goal hat, bevor du es startest, wie in der App, siehe Before you can preview or start.

Die Response reduzieren

Hänge bei Experiment-Requests ?fields=id,name,status an, um nur diese Felder zu erhalten.

Beispiele

Teams und Projects auflisten

curl https://app.ablyft.com/api/teams \
  -H "Authorization: Bearer YOUR_TOKEN" -H "Accept: application/json"
[
  { "id": 1234, "name": "My company", "created_at": "2025-01-15T09:30:00.000000Z", "updated_at": "2025-06-01T12:00:00.000000Z" }
]
curl https://app.ablyft.com/api/teams/1234/projects \
  -H "Authorization: Bearer YOUR_TOKEN" -H "Accept: application/json"

Die Response listet jedes Project mit Feldern wie id, name, storage, snippet_revision und snippet_version.

Experiments auflisten

curl "https://app.ablyft.com/api/projects/12345678/experiments?fields=id,name,status" \
  -H "Authorization: Bearer YOUR_TOKEN" -H "Accept: application/json"
[
  { "id": 23456789, "name": "Product page: bigger buy button", "status": "running" }
]

Ohne fields enthält jedes Experiment zusätzlich description, example_url, traffic_allocation, audiences_match_type, tags, js, reset_js, css und die variations.

Results lesen

curl https://app.ablyft.com/api/projects/12345678/experiments/23456789/results \
  -H "Authorization: Bearer YOUR_TOKEN" -H "Accept: application/json"

Die Response ist eine Liste mit einem Eintrag pro Goal (hier verkürzt). variationStatistics ist nach Variation-ID geschlüsselt:

[
  {
    "id": 34567890,
    "type": "custom",
    "name": "Newsletter signup",
    "api_name": "newsletter-signup",
    "variationStatistics": {
      "87654321": { "id": 87654321 }
    }
  }
]

Das Statistik-Objekt jeder Variation enthält Participants, Conversions, Werte und die Signifikanzwerte, die die Results-Seite anzeigt. Die Felder sind in der interaktiven Reference aufgeführt. Die optionalen Query-Parameter startDate, endDate und deviceTypes filtern die Results. Hat ein Experiment noch keine Results, antwortet die API mit 404 und "No result found for this experiment".

Fehler

StatusBedeutung
401Fehlendes oder ungültiges Token
403Dem Token fehlt die Ability, oder deine Rolle erlaubt die Aktion nicht
404Das Element existiert nicht, oder du kannst es nicht sehen
422Validierung fehlgeschlagen. Die Response listet die Felder auf
429Rate limit erreicht

Nächste Schritte

On this page