Skip to Content

Beta

Ejecuta programas de beta privada y gestiona su lista de testers. Requiere que la función de beta esté activada para el proyecto.

Programas

GET/v1/beta/programs

ParameterTypeDescription
statusstringFiltrar por estado: draft, active o closed.
limitintegerTamaño de página. Por defecto 25.
offsetintegerNúmero de elementos a omitir. Por defecto 0.

GET/v1/beta/programs/:id

POST/v1/beta/programs

ParameterTypeDescription
namerequiredstringNombre del programa. El slug de la URL se deriva de él y se hace único dentro del proyecto.
versionstringVersión semver en prueba (X.Y.Z).
summarystringBreve descripción de la beta.
access_urlstringDónde acceden los testers a la compilación (p. ej. un enlace de TestFlight).
access_instructionsstringCómo se configuran los testers.
statusstringdraft, active o closed. Por defecto draft.
allow_public_signupbooleanPermitir la inscripción pública mediante el enlace del portal. Por defecto false.
feedback_deadlinestringMarca de tiempo ISO-8601 tras la cual se cierra el feedback.

PATCH/v1/beta/programs/:id

ParameterTypeDescription
namestringNombre del programa.
versionstringVersión semver en prueba (X.Y.Z).
summarystringBreve descripción de la beta.
access_urlstringDónde acceden los testers a la compilación.
access_instructionsstringCómo se configuran los testers.
statusstringdraft, active o closed.
allow_public_signupbooleanPermitir la inscripción pública mediante el enlace del portal.
feedback_deadlinestringMarca de tiempo ISO-8601 tras la cual se cierra el feedback.

DELETE/v1/beta/programs/:id

Testers

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

ParameterTypeDescription
statusstringFiltrar por estado: invited, joined, declined o revoked.
limitintegerTamaño de página. Por defecto 25.
offsetintegerNúmero de elementos a omitir. Por defecto 0.

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

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

ParameterTypeDescription
emailrequiredstringCorreo del tester a añadir.

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

Las escrituras requieren acceso a la API de un plan de pago Pro. El slug se deriva del name del programa y se hace único dentro del proyecto. Añadir un tester es idempotente respecto al correo y devuelve el token de aceptación — la API no envía correos, así que úsalo para construir el enlace de unión del portal (/beta/join?token=...) y entrégalo tú mismo. DELETE devuelve 204; eliminar un programa elimina en cascada sus testers y su feedback, y eliminar un tester es permanente.

Listar programas

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 } }

Crear un programa

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" } }

Actualizar un programa

Solo se cambian los campos que envías; los campos omitidos quedan intactos.

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" } }

Eliminar un programa

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

Devuelve 204 No Content. Elimina en cascada los testers del programa y su feedback.

Listar testers

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 } }

Añadir un tester

Idempotente respecto al correo: añadir una dirección que ya está en el programa devuelve su registro existente con 200 en lugar de 201.

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 } }

Usa el token devuelto para construir el enlace de unión del portal (/beta/join?token=...) y envíalo tú mismo.

Quitar un tester

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

Devuelve 204 No Content. Quitar un tester es permanente y elimina su feedback de beta.

Last updated on