¡SesLab ya está en la App Store! Descarga la app y gira la ruleta gratis cada día para ganar créditos.Gira la ruleta gratis y gana créditos.

Descargar en la App StoreDescargar
REST API

Documentación de la API

Generación de vídeo, síntesis de voz, generación de imágenes y clon de voz. Una sola clave de API, una sola URL base: https://seslab.com.tr/api/v1

Primeros pasos (3 pasos)

1
Consigue tu clave de API

Abre una cuenta y genera una clave nueva desde la página «Mis claves» del panel. Tu clave empieza por sk_ (p. ej. sk_a1b2c3…) y solo se muestra una vez: cópiala y guárdala en un lugar seguro.

2
Envía tu primera petición

Añade la cabecera Authorization: Bearer sk_… a cada petición y envía los datos en JSON. La primera petición más sencilla: GET /me — devuelve tu cuenta y tu saldo.

3
Recoge el resultado

Las imágenes y los vídeos pueden tardar: primero recibes un id y luego consultas el estado con ese id. Los créditos se cobran al completarse y se devuelven automáticamente si falla.

Autenticación

Añade la cabecera Authorization: Bearer sk_… a cada petición. La clave se genera en el panel; una clave inválida o ausente devuelve 401 y demasiados intentos fallidos devuelven 429. Con una clave válida no hay límite de peticiones por minuto.

curl https://seslab.com.tr/api/v1/me \
  -H "Authorization: Bearer sk_YOUR_API_KEY"

Token de la app de escritorio

Regla: sk_ se usa únicamente para el intercambio; nunca se guarda de forma permanente dentro de la app de escritorio. La app de escritorio usa la clave sk_ solo en la primera petición de intercambio. Guarda el token dsk_ de la respuesta de POST /api/desktop/auth/token de forma segura en el Llavero de macOS o en el Administrador de credenciales de Windows. En la base de datos de SesLab solo se conserva un hash de ese token.

curl -X POST https://seslab.com.tr/api/desktop/auth/token \
  -H "Authorization: Bearer sk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"device_label":"Ufuk Mac M4","app_version":"1.0.0"}'

# Respuesta: { "desktop_token": "dsk_...", "expires_in": 2592000 }

Endpoints

POST
/videoInicia una generación de vídeo (asíncrona, 202 + id)según el nivel
GET
/video?id=IDConsulta el estado / resultado de un vídeogratis
POST
/ttsConvierte texto en voz (síncrono si está listo en ≤45 s; si no, 202 + id)1,0 cr/carácter · v3: 1,5 cr/carácter
GET
/tts?id=IDConsulta el estado / audio de un trabajo de TTSgratis
POST
/api/image-generateInicia una generación de imagen (asíncrona, 202 + id)según el modelo
GET
/api/image-generate/status?id=IDConsulta un trabajo de imagen de larga duracióngratis
GET
/voicesCatálogo de voces disponiblesgratis
POST
/voice-cloneCrea un clon de voz (multipart/form-data)gratis
GET
/voice-cloneLista tus clones de voz y sus voice_idgratis
DELETE
/voice-clone?voice_id=IDElimina un clon de vozgratis
GET
/meDatos de la cuenta y saldogratis
GET
/creditsSaldo de créditosgratis
GET
/statusEstado del sistema (no requiere auth)gratis
POST
/desktop/auth/tokenCambia una clave sk_ por un token dsk_ de corta duración para la app de escritoriogratis

Generación de vídeo

POST /video

Devuelve 202 (asíncrono). Consulta el resultado con GET /video?id=. En los trabajos fallidos los créditos se devuelven automáticamente.

CampoTipoEstadoDescripción
promptstring (10–1000)
obligatorio
Describe lo que quieres ver en el vídeo. Los prompts en inglés suelen dar mejores resultados.
modelstring
opc. · pred. standard-video
Paquete de vídeo: standard-video (Rápido) o hd-video (Premium). Si lo dejas vacío se usa standard-video. Los nombres de paquete antiguos se han retirado; si envías uno recibirás un error claro indicando cuál usar.
resolutionstring
opc. · pred. 720p
Resolución: 720p (predeterminada) o 1080p. 1080p consume más créditos dentro del mismo paquete.
aspect_ratiostring
opc. · pred. 16:9
Solo se admite vídeo horizontal 16:9.
durationnumber
opc. · pred. 8
La duración es fija: todos los paquetes de vídeo generan 8 s y el valor que envíes se ignora.

Niveles de calidad y créditos

Nivelmodel =CréditosNotas
Rápido
predeterminado
standard-video19.50016:9 · 720p · 8 s
Rápido (1080p)standard-video29.25016:9 · 1080p · 8 s · envía resolution=1080p
Premiumhd-video25.50016:9 · 720p · 8 s
Premium (1080p)hd-video38.25016:9 · 1080p · 8 s · envía resolution=1080p

Nota: el endpoint de vídeo admite por ahora solo 16:9 horizontal. Si dejas aspect_ratio vacío se usa 16:9.

Síntesis de voz (TTS)

POST /tts

Si está listo en 45 segundos o menos, recibes un audio_url síncrono. Los textos largos devuelven 202 + id; consúltalos con GET /tts?id=. Para ElevenLabs envía uno de los paquetes voice-natural, o voice-economy como opción económica.

CampoTipoEstadoDescripción
textstring (1–31000)
obligatorio
El texto que se convertirá en voz.
voice_idstring
obligatorio
Con qué voz se leerá. Obtén la lista con GET /voices y pon aquí el id correspondiente.
voice_packagestring
opc. · pred. voice-natural
ElevenLabs: voice-natural, voice-natural-fast, voice-natural-live o voice-natural-latest. Opción económica: voice-economy.
languagestring
opcional
Idioma del texto, p. ej. tr (turco). Solo válido para voice-natural y voice-fast.
voice_settingsobject
opcional
Ajuste fino (solo voice-natural): stability 0–100, similarity_boost 0–100, speed 0,7–1,2, style 0–100, use_speaker_boost: true/false.

Generación de imágenes

POST /api/image-generate

Endpoint compatible con SesLab. Ahora mismo solo está abierto el modelo de imagen activo verificado. Devuelve 202 + id; consulta el resultado con el endpoint de estado. Si falla, los créditos se devuelven automáticamente.

CampoTipoEstadoDescripción
promptstring (1–20000)
obligatorio
¿Qué debe aparecer en la imagen? Descríbelo libremente (también puedes escribir en turco).
modelstring
obligatorio
ID del modelo: ahora mismo solo nano-banana-2-lite está activo. image-standard se acepta como alias antiguo.
aspect_ratiostring
opcional
Elección de proporción para el modelo activo.
resolutionstring
desactivado
El modelo activo funciona de forma nativa a 1K; las demás resoluciones están desactivadas.
modestring
desactivado
Los servicios de imagen que no están activos están desactivados.
qualitystring
desactivado
Los servicios de imagen que no están activos están desactivados.
image_inputstring[]
opcional
Imágenes de referencia: data URI en base64 o URL http(s). Alias: reference_images. Hasta 4 en el modelo activo.
negative_promptstring
opcional
Elementos que hay que evitar.

Modelos de imagen

nano-banana-2-liteNano Banana 2 Lite2000 crmodelo activo verificado · 1K · 4 referencias
predeterminado

GET /api/image-generate/status?id=ID

Devuelve los campos status, image_url, image_urls y error de los trabajos de imagen de larga duración.

Clon de voz

POST /voice-clone — multipart/form-data

Gratis. Devuelve un voice_id, que se usa en las llamadas de TTS.

CampoTipoEstadoDescripción
filearchivo
obligatorio
La muestra de voz que se va a clonar — MP3/M4A/WAV/OGG/FLAC, máximo 10 MB (de 10 segundos a 5 minutos de grabación limpia).
voice_namestring (≤100)
obligatorio
El nombre que le das al clon (visible solo para ti).
language_tagstring
opc. · pred. Turkish
Idioma de la voz, p. ej. Turkish.
gender_tagstring
opc. · pred. female
Género de la voz: female o male.

GET /voice-clone

Lista todos los clones de voz de tu cuenta, del más reciente al más antiguo, con sus campos voice_id. No admite parámetros.

{
  "success": true,
  "voices": [
    {
      "id": "b7c1e0a2-4f10-4a91-9c2e-1d5b7a0e33af",
      "voice_id": "2630054",
      "cloned_voice_id": "2630054",
      "name": "Mi voz",
      "created_at": "2026-08-12T09:14:22.000Z"
    }
  ]
}

Locución con un clon: envía el voice_id (o el id) que obtienes aquí como voice_id en tu llamada a POST /tts; no hace falta el campo de paquete/modelo y se ignora en las voces clonadas. El límite de texto es de 5000 caracteres.

DELETE /voice-clone?voice_id=ID

Elimina el clon. El parámetro de consulta voice_id es obligatorio; si no se encuentra el clon se devuelve un 404.

Ejemplos de código

# Comprobación básica de autenticación
curl https://seslab.com.tr/api/v1/me \
  -H "Authorization: Bearer sk_YOUR_API_KEY"

# Inicia un vídeo — paquetes: standard-video (Rápido) / hd-video (Premium), 16:9, 720p|1080p, 8 s
curl -X POST https://seslab.com.tr/api/v1/video \
  -H "Authorization: Bearer sk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Presentación cinematográfica de producto, movimiento de cámara suave",
    "aspect_ratio": "16:9",
    "model": "standard-video",
    "resolution": "720p"
  }'

# Consulta el estado del vídeo (gratis, consúltalo repetidamente)
curl "https://seslab.com.tr/api/v1/video?id=VIDEO_ID" \
  -H "Authorization: Bearer sk_YOUR_API_KEY"

# Convierte texto en voz
curl -X POST https://seslab.com.tr/api/v1/tts \
  -H "Authorization: Bearer sk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hola, esta voz se ha generado con Seslab.",
    "voice_id": "VOICE_ID",
    "voice_package": "voice-natural",
    "language": "es"
  }'

# Genera una imagen — devuelve 202 + id; consulta el resultado en el endpoint de estado
curl -X POST https://seslab.com.tr/api/image-generate \
  -H "Authorization: Bearer sk_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Foto de producto premium con luz azul sobre fondo oscuro",
    "aspect_ratio": "1:1",
    "model": "nano-banana-2-lite"
  }'

Códigos de error

401UnauthorizedFalta la cabecera Authorization o la clave es incorrecta.
402Insufficient CreditsCréditos insuficientes. Recarga desde el panel.
422Validation ErrorCuerpo de la petición incorrecto o valor no admitido.
429Too Many AttemptsMás de 10 intentos de autenticación fallidos en un minuto.
404Not FoundNo se ha encontrado la generación consultada (id).
503Service Not ReadyEl servicio de generación no está activo en este momento.
500Server ErrorError inesperado: vuelve a intentarlo; en los trabajos fallidos se devuelven los créditos.

¿Listo para empezar?

Abre una cuenta, genera tu clave de API y envía tu primera petición en cuestión de minutos.

Soporte por WhatsApp
No olvides seguir el canal para anuncios y novedades
Canal de Anuncios