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

# sora-2

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

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

Sora 2 crea video con diálogo sincronizado, efectos de sonido y audio de fondo a partir de texto o de una imagen de referencia. El perfil estándar permite explorar propuestas visuales y crear clips de concepto, con flujos separados del productor para personajes no humanos reutilizables, continuación y ediciones de video específicas.

- [**Ailoot Ultra · Chat Completions** `POST /v1/chat/completions` `sora-2`](https://ailoot.ai/models/es-mx/sora-2/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `sora-2`](https://ailoot.ai/models/es-mx/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 video 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 voz, efectos y sonido de fondo sincronizados. El perfil estándar de Sora 2 se orienta a la exploración visual, el desarrollo de conceptos, los prototipos y los primeros montajes. Sora 2 Pro es una edición separada dirigida a una mayor fidelidad visual y a acabados de mayor resolución.

#### Describe una toma que se pueda ver y escuchar

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

Mantén comprensibles el movimiento de cámara y la acción del sujeto en cada toma. Una secuencia complicada se puede dividir en bloques de toma distintos, 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 sola secuencia. La guía destaca que las tomas más cortas suelen seguir las indicaciones con mayor fiabilidad y que generar repetidamente con el mismo prompt produce tomas diferentes.

El lanzamiento del modelo describe mejoras en el comportamiento físico y la continuidad entre tomas, incluidos estilos realistas, cinematográficos y de anime. Son capacidades previstas que debes dirigir y revisar. Examina el movimiento, el contacto entre objetos, las proporciones y la continuidad, en lugar de suponer que un primer fotograma creíble garantiza una secuencia coherente. Si una acción no queda clara, simplifícala y dale un inicio y un final visibles.

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

Especifica las líneas de diálogo por separado de la descripción visual y etiqueta a los hablantes de forma consistente. Mantén el diálogo lo bastante corto para ajustarse a la acción y a 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 una toma corta incluya un discurso largo. La guía advierte que un diálogo complejo y extenso puede alterar el ritmo y la sincronización.

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

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

Los tamaños de salida documentados del modelo estándar son 720×1280 en vertical y 1280×720 en horizontal. Los tamaños de mayor resolución del perfil Pro no se deben atribuir a Sora 2 estándar. El tamaño y la duración son ajustes explícitos de la solicitud; 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 duraciones de clip de 4, 8 y 12 segundos, así que elige una acción breve y definida al preparar una toma. El flujo ampliado del productor también documenta duraciones de clip de 16 y 20 segundos.

Una imagen de referencia fija el 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 del video de destino. Prepara el sujeto, el entorno y la composición en esa imagen inicial; después pide un movimiento específico. Se trata de una referencia para el fotograma inicial, no de una garantía de que cada detalle se mantendrá durante todo el clip.

#### Personajes no humanos reutilizables

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

Conserva el identificador del personaje y menciona su nombre en el prompt; pasar únicamente el identificador no cumple toda la preparación indicada en la guía. Los recursos de personaje pueden acompañar una generación guiada por imagen, pero las extensiones de video no los aceptan. El productor bloquea por defecto las cargas de personajes con apariencia humana y rechaza imágenes de referencia que contengan rostros humanos en el flujo de API documentado. Las funciones de personajes personales de la app de Sora corresponden a otro flujo de producto.

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

Una extensión toma un video de origen terminado y un prompt de continuación, y usa el clip de origen completo como contexto para el movimiento, la dirección de cámara y la continuidad de la escena. La guía describe adiciones de hasta 20 segundos por extensión. La entrada documentada de la extensión es el video 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 vez de introducir una escena sin relación y sin transición.

La edición de video se centra en un cambio claro de un clip existente. Una revisión específica puede modificar el color de un objeto o la paleta de la escena y conservar el resto de la toma. La guía del productor recomienda un cambio bien definido a la vez y distingue entre editar un video generado y subir metraje arbitrario, lo cual tiene una condición de elegibilidad separada. Conserva el original terminado e identifica la revisión exacta que necesitas antes de hacer otra edición.

#### Trabajos de renderizado y el video terminado

El flujo de video documentado del productor es asíncrono: un trabajo enviado puede quedar en cola o en curso antes de completarse o fallar. Un trabajo completado entrega un video MP4; las miniaturas y las hojas de sprites permiten generar vistas previas y explorar los resultados. Mantén la identidad del trabajo asociada con el prompt, las referencias y los recursos devueltos. Una respuesta inicial del trabajo no es el video reproducible terminado.

El flujo habitual de descarga describe una vigencia de una hora para la URL de descarga. El flujo ampliado por lotes prepara solicitudes de renderizado JSON independientes, con identificadores de elemento estables, referencias cargadas y un resultado vinculado a cada toma; sus recursos terminados tienen un periodo de descarga separado de hasta 24 horas. Conserva el clip terminado cuanto antes e inspecciona la imagen y el sonido reales antes de considerarlo una toma seleccionada.

Las restricciones de contenido documentadas para la API del productor exigen material apto para públicos menores de 18 años y rechazan personajes o música con derechos de autor y la generación de personas reales. Prepara la escena y las referencias de acuerdo con ello. El resultado directo del modelo es video con audio, no imágenes fijas generadas, una respuesta conversacional de herramienta ni una película 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-mx/#m=sora-2&route=Ultra&caller=sora-2&fmt=chat_completions)

Otros /`sora-2`

### Inicio

Sora 2 crea video con diálogo sincronizado, efectos de sonido y audio de fondo a partir de texto o de una imagen de referencia. El perfil estándar permite explorar propuestas visuales y crear clips de concepto, con flujos separados del productor para personajes no humanos reutilizables, continuación y ediciones de video específicas.

Entradas aceptadas

Texto

Resultados

json · sse

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

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

Entrada

`text`

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` | Contratoarreglo de mensajes con role y content como cadena literal |
| Parámetro`file_material` | ContratoEl contenido UTF-8 real puede insertarse como cadena literal en content; no se deduce ninguna referencia a un archivo. |
| Parámetro`optional_controls` | Contratostream |

Ciclo de vida: `synchronous_json_or_sse`

### Tarifas

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

Modo fast

Sin especificar Cuando se selecciona el modo fast

Modo flex

Sin especificar Cuando se selecciona el modo flex

Esfuerzo máximo de razonamiento

Sin especificar Cuando el esfuerzo máximo de razonamiento usa el ajuste 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 monto 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-mx/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 JSON o SSE, los encabezados de respuesta, el uso devuelto y todos los campos del resultado proporcionados. No se afirma que exista una familia de salida 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 de trabajos nuevos ni un reenvío.

Campos de respuesta

| Campo | Tipo | Significado |
| --- | --- | --- |
| Campo`complete response JSON` | Tipoobject | SignificadoConserva todos los campos devueltos sin suponer una familia de resultados específica del modelo. |
| Campo`SSE data events` | Tipostream | SignificadoConserva cada evento devuelto y marcador final sin seleccionar únicamente los campos de texto. |

### Alias

#### Alias del modelo

**Ailoot Ultra** [`sora-2`](https://ailoot.ai/models/es-mx/#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-mx/#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-mx/#m=sora-2&route=Ultra&caller=sora-2&fmt=messages)

Otros /`sora-2`

### Inicio

Sora 2 crea video con diálogo sincronizado, efectos de sonido y audio de fondo a partir de texto o de una imagen de referencia. El perfil estándar permite explorar propuestas visuales y crear clips de concepto, con flujos separados del productor para personajes no humanos reutilizables, continuación y ediciones de video específicas.

Entradas aceptadas

Texto

Resultados

json · sse

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

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

Entrada

`text`

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`

### Tarifas

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

Modo fast

Sin especificar Cuando se selecciona el modo fast

Modo flex

Sin especificar Cuando se selecciona el modo flex

Esfuerzo máximo de razonamiento

Sin especificar Cuando el esfuerzo máximo de razonamiento usa el ajuste 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 monto 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-mx/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 los encabezados. 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-mx/#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-mx/#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-mx/billing/subscriptions/) · [Consultar precios de modelos](https://ailoot.ai/models/es-mx/)

## 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-mx)

## 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.
