Source: https://ailoot.ai/models/es/sora-2/
Canonical: https://ailoot.ai/models/es/sora-2/
Language: es

# sora-2

[Markdown](https://ailoot.ai/models/es/sora-2/index.md) · [JSON](https://ailoot.ai/models/es/sora-2/facts.json)

## [sora-2](https://ailoot.ai/models/es/sora-2/)

Sora 2 crea vídeo con diálogos, efectos de sonido y audio de fondo sincronizados a partir de texto o de una imagen de referencia. El perfil estándar permite explorar ideas visuales y crear clips conceptuales, con flujos separados del productor para personajes no humanos reutilizables, continuaciones y ediciones de vídeo específicas.

- [**Ailoot Ultra · Chat Completions** `POST /v1/chat/completions` `sora-2`](https://ailoot.ai/models/es/sora-2/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `sora-2`](https://ailoot.ai/models/es/sora-2/#method-1)

Sobre el modelo

Esta descripción cubre las capacidades del modelo. Las entradas, salidas y opciones disponibles en Ailoot se indican a continuación para el método seleccionado.

Sora 2 es el modelo de generación de vídeo y audio de OpenAI para crear clips dinámicos a partir de la descripción escrita de una escena o de una imagen de referencia. Genera la secuencia visual junto con voces, efectos y sonido de fondo sincronizados. El perfil estándar de Sora 2 está orientado a la exploración visual, el desarrollo de conceptos, los prototipos y los primeros montajes. Sora 2 Pro es una edición separada orientada a una mayor fidelidad visual y a acabados de mayor resolución.

#### Describe un plano que pueda verse y oírse

La guía de prompts del fabricante organiza un brief útil en torno al encuadre, el sujeto, la acción, el escenario y la luz. Da a la escena un estilo visual coherente y describe después el movimiento en momentos claros. Un concepto original de producto podría mostrar un pequeño objeto mecánico que gira una vez sobre un banco de trabajo mientras la cámara se acerca lentamente, con luz suave de una ventana y un sutil sonido de motor. Indica en qué debe fijarse el espectador y cómo termina la acción.

Haz que el movimiento de cámara y la acción del sujeto de cada plano sean comprensibles. Una secuencia complicada puede dividirse en bloques de planos diferenciados, cada uno con su propio encuadre, acción e iluminación. Conserva los mismos detalles del sujeto y la misma paleta cuando varios clips deban formar una única secuencia. La guía destaca que los planos más cortos suelen seguir las instrucciones con mayor fiabilidad y que generar repetidamente con el mismo prompt produce tomas diferentes.

La presentación del modelo describe mejoras en el comportamiento físico y la continuidad entre planos, con estilos realistas, cinematográficos y de anime. Son capacidades previstas que deben dirigirse y comprobarse. Revisa el movimiento, el contacto entre objetos, las proporciones y la continuidad, en lugar de dar por hecho que un primer fotograma verosímil garantiza una secuencia coherente. Si una acción no resulta clara, simplifícala y dale un comienzo y un final visibles.

#### Dirige el diálogo y el sonido por separado

Especifica las frases habladas por separado de la descripción visual y etiqueta a los hablantes de forma coherente. Mantén el diálogo lo bastante breve para encajar en la acción y en la duración prevista del clip. Para una animación con dos personajes, alterna una pregunta y una respuesta breves en lugar de pedir que un plano corto incluya un discurso largo. La guía advierte de que un diálogo complejo y extenso puede alterar el ritmo y la sincronización.

Describe el paisaje sonoro propio de la escena: el sonido de un pequeño movimiento, el ambiente de una habitación o el ritmo de un efecto del entorno. Explica qué sonido debe coincidir con la acción. Escucha las voces y los efectos resultantes junto con la imagen y comprueba la asignación de hablantes, las palabras y la sincronización. El audio sincronizado forma parte del clip generado, en lugar de constituir una respuesta de texto separada.

#### Tamaño, duración y un inicio guiado por una imagen

Los tamaños de salida documentados para el modelo estándar son 720×1280 en vertical y 1280×720 en horizontal. Los tamaños de mayor resolución del perfil Pro no deben atribuirse a Sora 2 estándar. El tamaño y la duración son ajustes explícitos de la petición; escribir otro tamaño o pedir una película más larga en el prompt no modifica esos ajustes. La referencia de creación enumera opciones de clips de 4, 8 y 12 segundos, por lo que conviene elegir un momento breve y definido al preparar un plano. El flujo ampliado del productor también documenta opciones de clips de 16 y 20 segundos.

Una imagen de referencia fija el punto de partida del primer fotograma, y el texto describe lo que sucede después. El productor admite referencias JPEG, PNG y WebP y exige que la imagen coincida con el tamaño de vídeo de destino. Prepara el sujeto, el entorno y la composición en esa imagen inicial, y pide después un movimiento específico. Se trata de una referencia para el fotograma de apertura, no de una garantía de que todos sus detalles se mantengan durante todo el clip.

#### Personajes no humanos reutilizables

El flujo ampliado del productor puede crear un recurso de personaje reutilizable a partir de un vídeo breve de referencia de un animal, una mascota de marca o un objeto. Sus indicaciones de preparación piden un clip MP4 de unos dos a cuatro segundos, de 720p a 1080p, en 16:9 o 9:16. Hacer coincidir la relación de aspecto del origen y de la salida ayuda a evitar una apariencia estirada. La generación puede utilizar hasta dos personajes como referencia.

Conserva el identificador del personaje y menciona su nombre en el prompt; pasar solo el identificador no completa la preparación que indica la guía. Los recursos de personaje pueden acompañar una generación guiada por una imagen, pero las extensiones de vídeo no los admiten. El productor bloquea por defecto la subida de personajes con apariencia humana y rechaza las imágenes de referencia que contienen rostros humanos en el flujo de API documentado. Las funciones de personajes personales de la aplicación Sora constituyen un flujo de producto separado.

#### Continúa o edita un clip terminado

Una extensión utiliza un vídeo de origen terminado y un prompt de continuación, tomando el clip completo como contexto para el movimiento, la dirección de cámara y la continuidad de la escena. La guía describe ampliaciones de hasta 20 segundos por extensión. La entrada documentada de una extensión consiste en el vídeo de origen y el texto; ese modo excluye referencias adicionales de personajes o imágenes. Describe cómo continúa la acción existente, en lugar de introducir una escena sin relación y sin transición.

La edición de vídeo se centra en un cambio claro sobre un clip existente. Una revisión concreta puede modificar el color de un objeto o la paleta de la escena conservando el resto del plano. La guía del productor recomienda un cambio bien definido cada vez y distingue la edición de un vídeo generado de la subida de metraje arbitrario, que tiene una condición de admisión separada. Conserva el original terminado e identifica la revisión exacta necesaria antes de hacer otra edición.

#### Trabajos de renderizado y vídeo terminado

El flujo de vídeo documentado del productor es asíncrono: un trabajo enviado puede quedar en cola o en curso antes de completarse o fallar. Un trabajo completado produce un vídeo MP4; las miniaturas y las hojas de sprites sirven para las vistas previas y la exploración. Mantén la identidad del trabajo asociada al prompt, las referencias y los recursos recibidos. Una respuesta inicial del trabajo no es el vídeo final reproducible.

El flujo de descarga ordinario describe una validez de una hora para la URL de descarga. El flujo ampliado por lotes prepara peticiones de renderizado JSON independientes con identificadores estables de elementos, referencias subidas y un resultado asociado a cada plano; sus recursos completados tienen un periodo de descarga separado de hasta 24 horas. Guarda el clip terminado cuanto antes y comprueba la imagen y el sonido reales antes de considerarlo una toma seleccionada.

Las restricciones de contenido documentadas de la API del productor exigen material adecuado para menores de 18 años y rechazan personajes o música protegidos por derechos de autor, así como la generación de personas reales. Prepara la escena y las referencias de acuerdo con ello. El resultado directo del modelo es vídeo con audio, no imágenes fijas generadas, una respuesta conversacional de herramienta ni una película de duración ilimitada. Conserva la identidad exacta del modelo estándar y el clip de origen aceptado al continuar un concepto visual.

**Ailoot Ultra · Chat Completions** `POST /v1/chat/completions` `sora-2`

[`sora-2`](https://ailoot.ai/models/es/#m=sora-2&route=Ultra&caller=sora-2&fmt=chat_completions)

Otros /`sora-2`

### Primeros pasos

Sora 2 crea vídeo con diálogos, efectos de sonido y audio de fondo sincronizados a partir de texto o de una imagen de referencia. El perfil estándar permite explorar ideas visuales y crear clips conceptuales, con flujos separados del productor para personajes no humanos reutilizables, continuaciones y ediciones de vídeo específicas.

Entradas aceptadas

Texto

Resultados

json · sse

### Disponible en Ailoot · entradas y métodos

**Ailoot Ultra · Chat Completions** `POST /v1/chat/completions`

Tipos de entrada

`text`

Tipos de salida

`json`, `sse`

Formato de salida

JSON o text/event-stream

| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
| --- | --- | --- | --- | --- |
| Campo`model` | Tipo`string` | RequisitoObligatorio | Valores y límites sora-2 | Predeterminado— |
| Campo`messages` | Tipo`message[]` | RequisitoObligatorio | Valores y límites | Predeterminado— |
| Campo`messages[].role` | Tipo`string` | RequisitoObligatorio | Valores y límites | Predeterminado— |
| Campo`messages[].content` | Tipo`string` | RequisitoObligatorio | Valores y límites | Predeterminado— |
| Campo`stream` | Tipo`boolean` | RequisitoOpcional | Valores y límites | Predeterminadofalse |

Combinaciones de materiales de entrada

**owned\_text\_messages**

Parámetros del método y ciclo de vida

| Parámetro | Contrato |
| --- | --- |
| Parámetro`content_type` | Contratoapplication/json |
| Parámetro`required` | Contratomodel, messages |
| Parámetro`material_types` | Contratotext |
| Parámetro`messages` | Contratolista de mensajes con role y content como cadena literal |
| Parámetro`file_material` | ContratoEl material UTF-8 real puede insertarse como contenido de cadena literal; no se deduce ninguna referencia a archivo. |
| Parámetro`optional_controls` | Contratostream |

Ciclo de vida: `synchronous_json_or_sse`

### Planes

Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.

Modo rápido

Sin especificar Cuando se selecciona el modo rápido

Modo flex

Sin especificar Cuando se selecciona el modo flex

Esfuerzo máximo de razonamiento

Sin especificar Cuando el esfuerzo máximo de razonamiento utiliza el ajuste predeterminado (default)

#### Tarifas de Ailoot

#### Precios por configuración

| Configuración | Tabla de tarifas | Cargo |
| --- | --- | --- |
| ConfiguraciónTarifas base por token | Tabla de tarifasTarifa base | Cargo Entrada · Tokens de entrada **$0** / 1K tokens Salida · Tokens de salida **$0.2** / 1K tokens Entrada · Lectura de caché **$0** / 1K tokens Entrada · Escritura en caché **$0** / 1K tokens Entrada · Escritura en caché, 1 hora **—** / 1K tokens |

Ailoot reserva un importe estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. [Cómo funcionan la reserva y la liquidación →](https://ailoot.ai/docs/es/billing/reserve/)

### Solicitudes de ejemplo

#### Ailoot Ultra · Chat Completions

curl · respuesta JSON completaPython SDK · respuesta JSON completacurl · conserva el flujo SSE

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"sora-2","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
from pathlib import Path
print(Path("result.json").read_text(encoding="utf-8"))
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="sora-2", messages=[{"role":"user","content":"hello"}], stream=False)
import json
from pathlib import Path

data = result.to_dict(mode="json")
Path("result.json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
print(json.dumps(data, ensure_ascii=False, indent=2))
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"sora-2","messages":[{"role":"user","content":"hello"}],"stream":true}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.sse
```

### Recibir y guardar resultados

#### Ailoot Ultra · Chat Completions

JSON o text/event-stream

##### Conserva todos los resultados completados

Conserva todas las respuestas, archivos y partes de contenido completos recibidos.

Conserva todos los bytes del JSON o SSE, las cabeceras de respuesta, el uso devuelto y todos los campos de resultado proporcionados. No se establece una familia de resultados específica del modelo.

##### Si es necesario revisar la respuesta original

Conserva la respuesta original y la identidad del intento; no se deduce ninguna consulta periódica de un trabajo nuevo ni un reenvío.

Campos de respuesta

| Campo | Tipo | Significado |
| --- | --- | --- |
| Campo`complete response JSON` | Tipoobject | SignificadoConserva todos los campos devueltos sin presuponer una familia de resultados específica del modelo. |
| Campo`SSE data events` | Tipostream | SignificadoConserva todos los eventos devueltos y los marcadores terminales, sin seleccionar únicamente los campos de texto. |

### Alias

#### Alias del modelo

**Ailoot Ultra** [`sora-2`](https://ailoot.ai/models/es/#m=sora-2&route=Ultra&caller=sora-2&fmt=chat_completions)

#### Alias de rutas de métodos

Usa las rutas de método indicadas arriba.

#### ID de modelo relacionados

[`sora-2`](https://ailoot.ai/models/es/#m=sora-2&route=Ultra&caller=sora-2&fmt=chat_completions)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `sora-2`

[`sora-2`](https://ailoot.ai/models/es/#m=sora-2&route=Ultra&caller=sora-2&fmt=messages)

Otros /`sora-2`

### Primeros pasos

Sora 2 crea vídeo con diálogos, efectos de sonido y audio de fondo sincronizados a partir de texto o de una imagen de referencia. El perfil estándar permite explorar ideas visuales y crear clips conceptuales, con flujos separados del productor para personajes no humanos reutilizables, continuaciones y ediciones de vídeo específicas.

Entradas aceptadas

Texto

Resultados

json · sse

### Disponible en Ailoot · entradas y métodos

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Tipos de entrada

`text`

Tipos de salida

`json`, `sse`

Formato de salida

JSON o SSE

| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
| --- | --- | --- | --- | --- |
| Campo`model` | Tipo`string` | RequisitoObligatorio | Valores y límites sora-2 | Predeterminado— |
| Campo`messages` | Tipo`message[]` | RequisitoObligatorio | Valores y límites | Predeterminado— |
| Campo`messages[].role` | Tipo`string` | RequisitoObligatorio | Valores y límites user, assistant | Predeterminado— |
| Campo`messages[].content` | Tipo`string` | RequisitoObligatorio | Valores y límites | Predeterminado— |
| Campo`max_tokens` | Tipo`integer` | RequisitoObligatorio | Valores y límites | Predeterminado— |
| Campo`stream` | Tipo`boolean` | RequisitoOpcional | Valores y límites | Predeterminadofalse |

Combinaciones de materiales de entrada

**Texto** · Texto UTF-8

`cadena messages[].content`

Parámetros del método y ciclo de vida

| Parámetro | Contrato |
| --- | --- |
| Parámetro`content_type` | Contratoapplication/json |
| Parámetro`required` | Contratomodel, messages, max\_tokens |
| Parámetro`optional_controls` | Contratostream |
| Parámetro`material_types` | Contratotext |
| Parámetro`text_file_material` | ContratoLee el documento real en UTF-8 y coloca su texto en el campo input indicado o en la cadena de contenido del mensaje. |

Ciclo de vida: `synchronous_or_streamed`

### Planes

Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.

Modo rápido

Sin especificar Cuando se selecciona el modo rápido

Modo flex

Sin especificar Cuando se selecciona el modo flex

Esfuerzo máximo de razonamiento

Sin especificar Cuando el esfuerzo máximo de razonamiento utiliza el ajuste predeterminado (default)

#### Tarifas de Ailoot

#### Precios por configuración

| Configuración | Tabla de tarifas | Cargo |
| --- | --- | --- |
| ConfiguraciónTarifas base por token | Tabla de tarifasTarifa base | Cargo Entrada · Tokens de entrada **$0** / 1K tokens Salida · Tokens de salida **$0.2** / 1K tokens Entrada · Lectura de caché **$0** / 1K tokens Entrada · Escritura en caché **$0** / 1K tokens Entrada · Escritura en caché, 1 hora **—** / 1K tokens |

Ailoot reserva un importe estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. [Cómo funcionan la reserva y la liquidación →](https://ailoot.ai/docs/es/billing/reserve/)

### Solicitudes de ejemplo

#### Ailoot Ultra · Anthropic Messages

Cuerpo JSON mínimo completocurl · usa tu documento en UTF-8Python · guarda el resultado completo

```json
{
  "model": "sora-2",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'sora-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'sora-2', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### Recibir y guardar resultados

#### Ailoot Ultra · Anthropic Messages

JSON o SSE

##### Conserva todos los resultados completados

Conserva todas las respuestas, archivos y partes de contenido completos recibidos.

Conserva todos los bloques de contenido, las firmas de razonamiento y los ID reales de uso de herramientas. Ensambla todos los fragmentos incrementales de los bloques SSE; el primer bloque de texto no constituye la salida completa.

##### Si es necesario revisar la respuesta original

Conserva los ID de solicitud y respuesta y las cabeceras. No se proporciona una URL genérica para recuperar tareas de texto.

Campos de respuesta

| Campo | Tipo |
| --- | --- |
| Campo`id` | Tipostring |
| Campo`model` | Tipostring |
| Campo`content[]` | Tipotext\|thinking\|tool\_use\|other content block |
| Campo`stop_reason` | Tipostring\|null |
| Campo`usage` | Tipoobject |

Errores y siguientes pasos

| Respuesta | Condición | Siguiente paso |
| --- | --- | --- |
| Respuesta400 · `invalid_request_error` | CondiciónCampos obligatorios, representación del material o valor del parámetro no válidos | Siguiente pasoCorrige los campos indicados antes de una nueva solicitud de creación. |

### Alias

#### Alias del modelo

**Ailoot Ultra** [`sora-2`](https://ailoot.ai/models/es/#m=sora-2&route=Ultra&caller=sora-2&fmt=messages)

#### Alias de rutas de métodos

Usa las rutas de método indicadas arriba.

#### ID de modelo relacionados

[`sora-2`](https://ailoot.ai/models/es/#m=sora-2&route=Ultra&caller=sora-2&fmt=messages)

FAQ · sora-2

¿Qué entradas y resultados están disponibles?

`POST /v1/chat/completions` · `sora-2`: `text` → `json`, `sse` `POST /v1/messages` · `sora-2`: `text` → `json`, `sse`

¿Qué campos utiliza la solicitud?

`POST /v1/chat/completions` · `sora-2`: `model`, `messages`, `stream` `POST /v1/messages` · `sora-2`: `model`, `messages`, `max_tokens`, `stream`

Conecta Ailoot a Claude Code, OpenCode, Hermes o tu aplicación.

## La empresa y su cartera de proyectos

La empresa y su cartera de proyectos: millones de clientes; ventas por miles de millones al mes.

## Compra tokens con descuento.

Ahorro por suscripción para trabajo habitual. Códigos promocionales: hasta el 50% al comprar tokens.

Suscripción

Elige un plan con descuento para tus peticiones habituales.

Código de hasta el 50%

Introduce el código al comprar. El precio se recalcula según la promoción vigente.

Gasto en el historial

Modelo, tokens e importe quedan guardados por cada petición.

[Elegir suscripción](https://ailoot.ai/docs/es/billing/subscriptions/) · [Consultar precios de modelos](https://ailoot.ai/models/es/)

## Conecta la API al producto que vendes.

SaaS, aplicaciones y bots bajo la oferta y el acuerdo de licencia Ailoot. Solicita una licencia de reventa para redistribuir el acceso.

Aplicación comercial

Integra generación de texto, imágenes, vídeo y sonido en funciones de pago de tu servicio.

Licencia para revendedores

Envía descripción del proyecto y esquema de acceso. Solicita condiciones escritas de uso y reventa.

Documentos en la web

La oferta, el acuerdo de licencia y la política de datos están disponibles antes de conectar.

[Solicitar licencia de reventa](mailto:support@ailoot.ai) · [Oferta y acuerdo de licencia](https://ailoot.ai/legal/offer?lang=es)

## Ailoot · La empresa y su cartera de proyectos





Ailoot se apoya en la experiencia operativa acumulada, una amplia base de clientes, un servicio estable y el seguimiento continuo de KPI.





La empresa y su cartera de proyectos: millones de clientes; ventas por miles de millones al mes.





Ailoot aplica esa experiencia operativa al acceso por API a funciones de IA en productos de clientes, agentes, aplicaciones y automatizaciones.
