Skip to Content

Beta

Betreiben Sie private Beta-Programme und verwalten Sie deren Tester. Erfordert, dass die Beta-Funktion für das Projekt aktiviert ist.

Programme

GET/v1/beta/programs

ParameterTypeDescription
statusstringNach Status filtern: draft, active oder closed.
limitintegerSeitengröße. Standard: 25.
offsetintegerAnzahl zu überspringender Elemente. Standard: 0.

GET/v1/beta/programs/:id

POST/v1/beta/programs

ParameterTypeDescription
namerequiredstringProgrammname. Der URL-Slug wird daraus abgeleitet und innerhalb des Projekts eindeutig gemacht.
versionstringGetestete Semver-Version (X.Y.Z).
summarystringKurze Beschreibung der Beta.
access_urlstringWo Tester den Build erhalten (z. B. ein TestFlight-Link).
access_instructionsstringWie Tester loslegen.
statusstringdraft, active oder closed. Standard: draft.
allow_public_signupbooleanÖffentliche Anmeldung über den Portal-Link erlauben. Standard: false.
feedback_deadlinestringISO-8601-Zeitstempel, nach dem Feedback schließt.

PATCH/v1/beta/programs/:id

ParameterTypeDescription
namestringProgrammname.
versionstringGetestete Semver-Version (X.Y.Z).
summarystringKurze Beschreibung der Beta.
access_urlstringWo Tester den Build erhalten.
access_instructionsstringWie Tester loslegen.
statusstringdraft, active oder closed.
allow_public_signupbooleanÖffentliche Anmeldung über den Portal-Link erlauben.
feedback_deadlinestringISO-8601-Zeitstempel, nach dem Feedback schließt.

DELETE/v1/beta/programs/:id

Tester

GET/v1/beta/programs/:programId/testers

ParameterTypeDescription
statusstringNach Status filtern: invited, joined, declined oder revoked.
limitintegerSeitengröße. Standard: 25.
offsetintegerAnzahl zu überspringender Elemente. Standard: 0.

GET/v1/beta/programs/:programId/testers/:id

POST/v1/beta/programs/:programId/testers

ParameterTypeDescription
emailrequiredstringE-Mail des hinzuzufügenden Testers.

DELETE/v1/beta/programs/:programId/testers/:id

Schreibvorgänge erfordern API-Zugriff eines kostenpflichtigen Tarifs Pro. Der Slug wird aus dem Programm-name abgeleitet und innerhalb des Projekts eindeutig gemacht. Das Hinzufügen eines Testers ist idempotent bezüglich der E-Mail und gibt das Annahme-token zurück – die API sendet keine E-Mail, nutzen Sie es also für den Portal-Beitrittslink (/beta/join?token=...) und stellen Sie ihn selbst zu. DELETE gibt 204 zurück; das Löschen eines Programms entfernt kaskadierend dessen Tester und Feedback, und das Löschen eines Testers ist endgültig.

Programme auflisten

curl "https://api.supdesk.app/v1/beta/programs?status=active&limit=10" \ -H "Authorization: Bearer sd_live_..."
{ "data": [ { "id": "bp_abc123", "project_id": "prj_9f2a", "name": "Mobile App v2", "version": "2.0.0", "slug": "mobile-app-v2", "summary": "Early access to the new mobile experience.", "access_url": "https://testflight.apple.com/join/abcd", "access_instructions": "Install TestFlight, then open the invite link.", "status": "active", "allow_public_signup": true, "feedback_deadline": "2026-08-01T00:00:00Z", "created_at": "2026-07-01T09:12:00Z" } ], "pagination": { "limit": 25, "offset": 0, "has_more": false } }

Programm erstellen

curl -X POST https://api.supdesk.app/v1/beta/programs \ -H "Authorization: Bearer sd_live_..." \ -H "Content-Type: application/json" \ -d '{ "name": "Mobile App v2", "version": "2.0.0", "summary": "Early access to the new mobile experience.", "status": "active", "allow_public_signup": true }'
{ "data": { "id": "bp_abc123", "project_id": "prj_9f2a", "name": "Mobile App v2", "version": "2.0.0", "slug": "mobile-app-v2", "summary": "Early access to the new mobile experience.", "access_url": null, "access_instructions": null, "status": "active", "allow_public_signup": true, "feedback_deadline": null, "created_at": "2026-07-01T09:12:00Z" } }

Programm aktualisieren

Nur die gesendeten Felder werden geändert; ausgelassene Felder bleiben unverändert.

curl -X PATCH https://api.supdesk.app/v1/beta/programs/bp_abc123 \ -H "Authorization: Bearer sd_live_..." \ -H "Content-Type: application/json" \ -d '{ "status": "closed" }'
{ "data": { "id": "bp_abc123", "project_id": "prj_9f2a", "name": "Mobile App v2", "version": "2.0.0", "slug": "mobile-app-v2", "summary": "Early access to the new mobile experience.", "access_url": null, "access_instructions": null, "status": "closed", "allow_public_signup": true, "feedback_deadline": null, "created_at": "2026-07-01T09:12:00Z" } }

Programm löschen

curl -X DELETE https://api.supdesk.app/v1/beta/programs/bp_abc123 \ -H "Authorization: Bearer sd_live_..."

Gibt 204 No Content zurück. Entfernt kaskadierend die Tester des Programms und deren Feedback.

Tester auflisten

curl "https://api.supdesk.app/v1/beta/programs/bp_abc123/testers?status=invited" \ -H "Authorization: Bearer sd_live_..."
{ "data": [ { "id": "bt_def456", "beta_program_id": "bp_abc123", "email": "jamie@example.com", "token": "9d8c7b...", "source": "invite", "status": "invited", "end_user_id": null, "invited_at": "2026-07-02T10:00:00Z", "joined_at": null } ], "pagination": { "limit": 25, "offset": 0, "has_more": false } }

Tester hinzufügen

Idempotent bezüglich der E-Mail: Das Hinzufügen einer bereits im Programm vorhandenen Adresse gibt den bestehenden Eintrag mit 200 statt 201 zurück.

curl -X POST https://api.supdesk.app/v1/beta/programs/bp_abc123/testers \ -H "Authorization: Bearer sd_live_..." \ -H "Content-Type: application/json" \ -d '{ "email": "jamie@example.com" }'
{ "data": { "id": "bt_def456", "beta_program_id": "bp_abc123", "email": "jamie@example.com", "token": "9d8c7b...", "source": "invite", "status": "invited", "end_user_id": null, "invited_at": "2026-07-02T10:00:00Z", "joined_at": null } }

Nutzen Sie das zurückgegebene token für den Portal-Beitrittslink (/beta/join?token=...) und versenden Sie ihn selbst.

Tester entfernen

curl -X DELETE https://api.supdesk.app/v1/beta/programs/bp_abc123/testers/bt_def456 \ -H "Authorization: Bearer sd_live_..."

Gibt 204 No Content zurück. Das Entfernen eines Testers ist endgültig und löscht dessen Beta-Feedback.

Last updated on