Source: https://ailoot.ai/models/es-mx/kat-coder-pro-v1/
Canonical: https://ailoot.ai/models/es-mx/kat-coder-pro-v1/
Language: es-mx

# kat-coder-pro-v1

[Markdown](https://ailoot.ai/models/es-mx/kat-coder-pro-v1/index.md) · [JSON](https://ailoot.ai/models/es-mx/kat-coder-pro-v1/facts.json)

## [kat-coder-pro-v1](https://ailoot.ai/models/es-mx/kat-coder-pro-v1/)

KAT-Coder es la familia de modelos de programación de Kuaishou para tareas de desarrollo que consideran el repositorio. El flujo del fabricante combina inspección asistida por herramientas, generación de parches, revisión basada en ejecución y reflexión, produciendo código o explicaciones vinculados al comportamiento real del proyecto.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `KAT-Coder-Pro-V1`](https://ailoot.ai/models/es-mx/kat-coder-pro-v1/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `KAT-Coder-Pro-V1`](https://ailoot.ai/models/es-mx/kat-coder-pro-v1/#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.

KAT-Coder es la familia de modelos de programación de Kuaishou para tareas de ingeniería de software en un entorno con herramientas habilitadas. La versión original del fabricante se centra en seguir una solicitud de desarrollo a través de inspección del repositorio, creación de parches y revisión. Su entrenamiento cubre implementación y mejora de funciones, corrección de errores, refactorización, trabajo de rendimiento, creación de pruebas, comprensión de código y tareas relacionadas con configuración. Los entregables útiles son código y texto conectados con el comportamiento real del proyecto.

#### Proporciona el problema y el contexto relevante del proyecto

Establece el comportamiento que debe lograrse, la implementación actual y las condiciones que definen la finalización. Incluye los archivos o pasajes fuente necesarios para comprender el problema y los comandos u observaciones ya disponibles del entorno. Un encargo original de corrección de errores puede identificar la entrada que falla, el resultado esperado y la función cuyo comportamiento difiere. Una solicitud de función puede indicar el resultado visible para el usuario y las interfaces que deben permanecer coherentes.

El entrenamiento con agentes del productor usa descripciones de problemas, código de ramas, entornos ejecutables y condiciones verificables de tareas. Mantén alineadas esas partes en una tarea asistida por la aplicación. La propuesta del modelo debe responder a la copia de trabajo real y a la evidencia proporcionada, mientras la aplicación realiza operaciones de archivos o ejecución y devuelve los resultados. Conserva el resultado de cada operación de importancia junto con la continuación.

#### Herramientas y desarrollo de varios turnos

El fabricante documenta el seguimiento de instrucciones, el uso de herramientas y la interacción prolongada como partes centrales del desarrollo de esta familia. La receta publicada de agente de programación proporciona operaciones de lectura y edición de archivos y una acción de finalización. El modelo puede inspeccionar información, solicitar un cambio y continuar a partir de la observación devuelta. Su función es elegir y describir el siguiente paso; el entorno que lo integra establece lo que ocurrió realmente.

La versión original también describe las solicitudes paralelas de herramientas como una capacidad observada después del entrenamiento con agentes. Usa operaciones independientes únicamente cuando sus resultados puedan mantenerse asociados con la solicitud correcta. Una explicación del repositorio puede combinar información de varios archivos, mientras que un parche necesita el contenido y el comportamiento actuales del código afectado. No sustituyas una observación faltante por un resultado plausible del entorno.

#### Revisa deliberadamente los cambios candidatos

La receta de agente publicada por el productor separa generación de parches, filtrado, selección y reflexión. El filtrado combina deduplicación semántica con comprobaciones basadas en ejecución; la selección evalúa los candidatos restantes; la reflexión utiliza los resultados anteriores para guiar una ronda posterior. Esas etapas pertenecen al flujo documentado de programación y no son una garantía automática asociada con cada respuesta de texto normal.

Para una tarea práctica de código, conserva juntos el parche propuesto, las comprobaciones realmente ejecutadas y sus resultados. Una comparación de correcciones candidatas debe explicar la condición que las distingue, especialmente cuando cada una parezca plausible a partir únicamente de las diferencias de código. Una comprobación fallida puede dar al siguiente turno un problema específico que resolver, en lugar de provocar una reescritura sin relación.

#### Diferencias entre familia y ediciones

La versión original del fabricante distingue KAT-Coder del modelo abierto independiente KAT-Dev-32B. Los análisis de entrenamiento y las demostraciones de flujo no convierten todos los perfiles identificados de una familia en un mismo punto de control. Conserva el perfil seleccionado y las instrucciones proporcionadas del proyecto junto con el resultado, y utiliza la interfaz específica del productor o la receta del entorno para sus operaciones.

Un traspaso útil puede contener una implementación puntual, una explicación de un defecto o una refactorización con la evidencia que respalda su comportamiento. Revisa la lógica modificada y las salidas reales del entorno antes de considerar terminada una tarea. El propósito de ingeniería de software de KAT-Coder resulta más útil cuando permanece conectado con una solicitud concreta de desarrollo, el código relevante y un entregable final verificable.

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `KAT-Coder-Pro-V1`

[`KAT-Coder-Pro-V1`](https://ailoot.ai/models/es-mx/#m=KAT-Coder-Pro-V1&route=Ultra&caller=KAT-Coder-Pro-V1&fmt=chat)

Kuaishou /`KAT-Coder-Pro-V1`

### Inicio

KAT-Coder es la familia de modelos de programación de Kuaishou para tareas de desarrollo que consideran el repositorio. El flujo del fabricante combina inspección asistida por herramientas, generación de parches, revisión basada en ejecución y reflexión, produciendo código o explicaciones vinculados al comportamiento real del proyecto.

Entradas aceptadas

Texto

Resultados

Texto

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

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

Entrada

`text`

Salida

`text`

Formato de salida

json o SSE

| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
| --- | --- | --- | --- | --- |
| Campo`model` | Tipo`string` | RequisitoObligatorio | Valores y límites KAT-Coder-Pro-V1 | Predeterminado— |
| Campo`messages` | Tipo`message[]` | RequisitoObligatorio | Valores y límites Número mínimo de elementos: 1 | Predeterminado— |
| Campo`messages[].role` | Tipo`string` | RequisitoObligatorio | Valores y límites Depende del modelo | Predeterminado— |
| Campo`messages[].content` | Tipo`string` | RequisitoOpcional | Valores y límites Se aplica cuando: Conversación textual | Predeterminado— |
| Campo`stream` | Tipo`boolean` | RequisitoOpcional | Valores y límites | Predeterminadofalse |

Combinaciones de materiales de entrada

**Texto** · Texto UTF8

`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 |
| Parámetro`material_types` | Contratotext |
| Parámetro`messages` | Contratomatriz de mensajes con estructura role/content |
| Parámetro`file_material` | Contratodocumento real en UTF-8 insertado como texto literal; no se deduce ningún ID de archivo |
| Parámetro`optional_controls` | Contratostream |
| Parámetro`control_scope` | ContratoConversación textual; stream es un booleano y su valor predeterminado es false. |
| Parámetro`output_modalities` | Contratotext |
| Parámetro`hosted_operations` | Contratofalse |
| Parámetro`multimodal_input_binding` | Contratonull |

Alias de método: `/chat/completions`

Ciclo de vida: `synchronous_or_streamed`

Envía el ID exacto del modelo junto con messages.

La longitud del contexto no es un límite máximo de salida.

Un archivo de texto puede aportar texto literal; las entradas de imagen, audio u objetos de archivo requieren una vinculación exacta.

### 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.00114** / 1K tokens Salida · Tokens de salida **$0.00456** / 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 · OpenAI Chat

curlPython SDK

```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":"KAT-Coder-Pro-V1","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'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
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="KAT-Coder-Pro-V1", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

### Recibir y guardar resultados

#### Ailoot Ultra · OpenAI Chat

json o SSE

##### Conserva todos los resultados completados

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

Conserva cada alternativa y su contenido, llamadas de herramientas y razonamiento. En SSE, ensambla los fragmentos incrementales por índice de alternativa/herramienta y conserva el motivo final de terminación y el uso.

##### 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`choices[].index` | Tipointeger |
| Campo`choices[].message.content` | Tipostring\|null |
| Campo`choices[].message.tool_calls` | Tipotool\_call\[\] |
| Campo`choices[].message.reasoning_content` | Tipostring |
| Campo`choices[].message.reasoning_details` | Tipoobject\|array |
| Campo`choices[].finish_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** [`KAT-Coder-Pro-V1`](https://ailoot.ai/models/es-mx/#m=KAT-Coder-Pro-V1&route=Ultra&caller=KAT-Coder-Pro-V1&fmt=chat)

#### Alias de rutas de métodos

`/chat/completions`

#### ID de modelo relacionados

[`KAT-Coder-Pro-V1`](https://ailoot.ai/models/es-mx/#m=KAT-Coder-Pro-V1&route=Ultra&caller=KAT-Coder-Pro-V1&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `KAT-Coder-Pro-V1`

[`KAT-Coder-Pro-V1`](https://ailoot.ai/models/es-mx/#m=KAT-Coder-Pro-V1&route=Ultra&caller=KAT-Coder-Pro-V1&fmt=messages)

Kuaishou /`KAT-Coder-Pro-V1`

### Inicio

KAT-Coder es la familia de modelos de programación de Kuaishou para tareas de desarrollo que consideran el repositorio. El flujo del fabricante combina inspección asistida por herramientas, generación de parches, revisión basada en ejecución y reflexión, produciendo código o explicaciones vinculados al comportamiento real del proyecto.

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 KAT-Coder-Pro-V1 | 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.00114** / 1K tokens Salida · Tokens de salida **$0.00456** / 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": "KAT-Coder-Pro-V1",
  "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': 'KAT-Coder-Pro-V1', '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': 'KAT-Coder-Pro-V1', '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** [`KAT-Coder-Pro-V1`](https://ailoot.ai/models/es-mx/#m=KAT-Coder-Pro-V1&route=Ultra&caller=KAT-Coder-Pro-V1&fmt=messages)

#### Alias de rutas de métodos

`/chat/completions`

#### ID de modelo relacionados

[`KAT-Coder-Pro-V1`](https://ailoot.ai/models/es-mx/#m=KAT-Coder-Pro-V1&route=Ultra&caller=KAT-Coder-Pro-V1&fmt=messages)

FAQ · kat-coder-pro-v1

¿Qué entradas y resultados están disponibles?

`POST /v1/chat/completions` · `KAT-Coder-Pro-V1`: `text` → `text` `POST /v1/messages` · `KAT-Coder-Pro-V1`: `text` → `json`, `sse`

¿Qué campos utiliza la solicitud?

`POST /v1/chat/completions` · `KAT-Coder-Pro-V1`: `model`, `messages`, `stream` `POST /v1/messages` · `KAT-Coder-Pro-V1`: `model`, `messages`, `max_tokens`, `stream`

¿Qué límites se aplican?

`POST /v1/chat/completions` · `KAT-Coder-Pro-V1`: `messages.min_items`: `1`

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.
