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

# sora-2

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

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

O Sora 2 cria vídeo com diálogos sincronizados, efeitos sonoros e áudio de fundo a partir de texto ou de uma imagem de referência. O perfil normal permite exploração visual e clips conceptuais, com fluxos separados do produtor para personagens não humanas reutilizáveis, continuação e edições de vídeo específicas.

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

Sobre o modelo

Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.

O Sora 2 é o modelo da OpenAI para geração de vídeo e áudio, destinado a clips dinâmicos criados a partir de uma descrição escrita da cena ou de uma imagem de referência. Gera a sequência visual juntamente com fala, efeitos e som de fundo sincronizados. O perfil normal do Sora 2 destina-se à exploração visual, ao desenvolvimento de conceitos, a protótipos e a montagens preliminares. O Sora 2 Pro é uma edição separada, orientada para maior fidelidade visual e acabamento em resolução superior.

#### Descreva um plano que se possa ver e ouvir

O guia de instruções do fabricante organiza um bom briefing em torno do enquadramento, sujeito, ação, cenário e luz. Dê à cena um estilo visual coerente e descreva o movimento em momentos claros. Um conceito original de produto pode mostrar um pequeno objeto mecânico a dar uma volta numa bancada enquanto a câmara se aproxima lentamente, com luz suave de uma janela e um som discreto de motor. Indique o que o espectador deve notar e como termina a ação.

Mantenha compreensíveis o movimento da câmara e a ação do sujeito em cada plano. Uma sequência complexa pode ser dividida em blocos de planos distintos, cada um com o seu enquadramento, ação e iluminação. Preserve os mesmos pormenores do sujeito e a paleta quando vários clips se destinam a formar uma sequência. O guia salienta que os planos mais curtos tendem a seguir as instruções de forma mais fiável e que a geração repetida do mesmo pedido produz diferentes tomadas.

O lançamento do modelo descreve melhorias no comportamento físico e na continuidade entre planos, incluindo estilos realistas, cinematográficos e anime. São capacidades pretendidas que devem ser dirigidas e inspecionadas. Reveja o movimento, o contacto entre objetos, as proporções e a continuidade, em vez de assumir que um primeiro fotograma plausível garante uma sequência coerente. Se uma ação for pouco clara, simplifique-a e dê-lhe um início e um fim visíveis.

#### Dirija o diálogo e o som separadamente

Especifique as falas separadamente da descrição visual e identifique os interlocutores de forma consistente. Mantenha o diálogo suficientemente curto para caber na ação e na duração pretendida do clip. Numa animação com duas personagens, alterne uma pergunta e uma resposta breves, em vez de pedir a um plano curto que comporte um discurso longo. O guia avisa que diálogos complexos e extensos podem prejudicar o ritmo e a sincronização.

Descreva o ambiente sonoro adequado à cena: o som de um pequeno movimento, a ambiência da sala ou o ritmo de um efeito ambiental. Explique que som deve coincidir com a ação. Ouça a fala e os efeitos resultantes juntamente com a imagem, verificando a atribuição das vozes, as palavras e os tempos. O áudio sincronizado faz parte do clip gerado, em vez de ser uma resposta de texto separada.

#### Dimensões, duração e abertura orientada por imagem

As dimensões de saída documentadas para o modelo normal são 720×1280 na vertical e 1280×720 na horizontal. As dimensões de maior resolução do perfil Pro não devem ser atribuídas ao Sora 2 normal. As dimensões e a duração são definições explícitas do pedido; escrever dimensões diferentes ou pedir um filme mais longo no texto não altera essas definições. A referência de criação enumera durações de clip de 4, 8 e 12 segundos, pelo que deve escolher um momento curto e definido ao preparar um plano. O fluxo alargado do produtor também documenta durações de 16 e 20 segundos.

Uma imagem de referência fixa o primeiro fotograma, e o texto descreve o que acontece a seguir. O produtor aceita referências JPEG, PNG e WebP e exige que a imagem corresponda às dimensões de destino do vídeo. Prepare o sujeito, o ambiente e a composição nessa imagem inicial e peça um movimento específico. É uma referência para o fotograma inicial, não uma garantia de que todos os pormenores se mantêm ao longo do clip.

#### Personagens não humanas reutilizáveis

O fluxo alargado do produtor permite criar um recurso de personagem reutilizável a partir de um pequeno vídeo de referência de um animal, mascote ou objeto. As instruções de preparação pedem um clip MP4 de cerca de dois a quatro segundos, entre 720p e 1080p, em 16:9 ou 9:16. Fazer coincidir as proporções da fonte e da saída ajuda a evitar um aspeto esticado. A geração pode referenciar até duas personagens.

Conserve o identificador da personagem e mencione o seu nome no pedido; passar apenas o identificador não constitui a preparação completa indicada pelo guia. Os recursos de personagem podem acompanhar uma geração orientada por imagem, mas as extensões de vídeo não os aceitam. Por predefinição, o produtor bloqueia o carregamento de personagens com semelhança humana e rejeita imagens de referência com rostos humanos no fluxo documentado da API. As funcionalidades de personagens pessoais da aplicação Sora constituem um fluxo de produto separado.

#### Continue ou edite um clip concluído

Uma extensão recebe um vídeo de origem concluído e um pedido de continuação, utilizando o clip completo como contexto para o movimento, a direção da câmara e a continuidade da cena. O guia descreve acréscimos de até 20 segundos por extensão. A entrada documentada para a extensão é o vídeo de origem e texto; referências adicionais de personagens ou imagens ficam excluídas desse modo. Descreva como prossegue a ação existente, em vez de introduzir uma cena sem relação nem transição.

A edição de vídeo visa uma alteração clara num clip existente. Uma revisão específica pode alterar a cor de um objeto ou a paleta da cena, conservando o resto do plano. O guia do produtor recomenda uma alteração bem definida de cada vez e distingue a edição de um vídeo gerado do carregamento de filmagens arbitrárias, sujeito a uma condição de elegibilidade separada. Conserve a fonte concluída e identifique a revisão exata necessária antes de fazer outra edição.

#### Tarefas de renderização e vídeo terminado

O fluxo de vídeo documentado pelo produtor é assíncrono: uma tarefa submetida pode ficar em fila ou em curso antes de ser concluída ou falhar. Uma tarefa concluída fornece um vídeo MP4; as miniaturas e as folhas de sprites permitem pré-visualizações e navegação. Mantenha a identidade da tarefa associada ao pedido, às referências e aos recursos devolvidos. Uma resposta inicial à tarefa não é o vídeo final reproduzível.

O fluxo normal de transferência descreve uma validade de uma hora para o URL de transferência. O fluxo alargado em lote prepara pedidos independentes de renderização em JSON com identificadores de item estáveis, referências carregadas e um resultado associado a cada plano; os seus recursos concluídos têm um período de transferência separado de até 24 horas. Guarde rapidamente o clip terminado e inspecione a imagem e o som reais antes de o considerar uma tomada selecionada.

As restrições de conteúdo documentadas para a API do produtor exigem material adequado a públicos com menos de 18 anos e rejeitam personagens ou música protegidas por direitos de autor e a geração de pessoas reais. Prepare a cena e as referências em conformidade. O resultado direto do modelo é vídeo com áudio, não imagens fixas geradas, uma resposta de ferramenta de conversação ou um filme ilimitado. Conserve a identidade exata do modelo normal e o clip de origem aceite ao continuar um conceito visual.

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

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

Outro /`sora-2`

### Introdução

O Sora 2 cria vídeo com diálogos sincronizados, efeitos sonoros e áudio de fundo a partir de texto ou de uma imagem de referência. O perfil normal permite exploração visual e clips conceptuais, com fluxos separados do produtor para personagens não humanas reutilizáveis, continuação e edições de vídeo específicas.

Entradas aceites

Texto

Resultados

json · sse

### Disponível no Ailoot · entradas e métodos

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

Entrada

`text`

Saída

`json`, `sse`

Formato de saída

JSON ou text/event-stream

| Campo | Tipo | Requisito | Valores e limites | Predefinição |
| --- | --- | --- | --- | --- |
| Campo`model` | Tipo`string` | RequisitoObrigatório | Valores e limites sora-2 | Predefinição— |
| Campo`messages` | Tipo`message[]` | RequisitoObrigatório | Valores e limites | Predefinição— |
| Campo`messages[].role` | Tipo`string` | RequisitoObrigatório | Valores e limites | Predefinição— |
| Campo`messages[].content` | Tipo`string` | RequisitoObrigatório | Valores e limites | Predefinição— |
| Campo`stream` | Tipo`boolean` | RequisitoOpcional | Valores e limites | Predefiniçãofalse |

Combinações de materiais de entrada

**owned\_text\_messages**

Parâmetros e ciclo de vida do método

| Parâmetro | Contrato |
| --- | --- |
| Parâmetro`content_type` | Contratoapplication/json |
| Parâmetro`required` | Contratomodel, messages |
| Parâmetro`material_types` | Contratotext |
| Parâmetro`messages` | Contratomatriz de mensagens com role e content como cadeia literal |
| Parâmetro`file_material` | ContratoO material UTF-8 real pode ser inserido como conteúdo de cadeia literal; não se deduz qualquer referência a ficheiro. |
| Parâmetro`optional_controls` | Contratostream |

Ciclo de vida: `synchronous_json_or_sse`

### Tarifários

As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.

Modo rápido

Não especificado Quando o modo rápido está selecionado

Modo flex

Não especificado Quando o modo flex está selecionado

Esforço máximo de raciocínio

Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)

#### Tarifas Ailoot

#### Preços por configuração

| Configuração | Tabela de tarifas | Custo |
| --- | --- | --- |
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Custo Entrada · Tokens de entrada **$0** / 1K tokens Saída · Tokens de saída **$0.2** / 1K tokens Entrada · Leitura da cache **$0** / 1K tokens Entrada · Escrita na cache **$0** / 1K tokens Entrada · Escrita na cache, 1 hora **—** / 1K tokens |

O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. [Como funcionam a reserva e a liquidação →](https://ailoot.ai/docs/pt-pt/billing/reserve/)

### Exemplos de pedidos

#### Ailoot Ultra · Chat Completions

curl · resposta JSON completaPython SDK · resposta JSON completacurl · preserve o fluxo 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
```

### Receber e guardar os resultados

#### Ailoot Ultra · Chat Completions

JSON ou text/event-stream

##### Guardar todos os resultados concluídos

Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.

Conserve todos os bytes JSON ou SSE, os cabeçalhos da resposta, a utilização devolvida e todos os campos de resultado fornecidos. Não é afirmada qualquer família de resultados específica do modelo.

##### Se for necessário verificar a resposta original

Conserve a resposta original e a identidade da tentativa; não se deduz qualquer consulta periódica de nova tarefa ou reenvio.

Campos da resposta

| Campo | Tipo | Significado |
| --- | --- | --- |
| Campo`complete response JSON` | Tipoobject | SignificadoConserve todos os campos devolvidos sem presumir uma família de resultados específica do modelo. |
| Campo`SSE data events` | Tipostream | SignificadoConserve todos os eventos devolvidos e marcadores terminais sem selecionar apenas os campos de texto. |

### Aliases

#### Aliases do modelo

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

#### Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

#### IDs de chamada relacionados

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

Outro /`sora-2`

### Introdução

O Sora 2 cria vídeo com diálogos sincronizados, efeitos sonoros e áudio de fundo a partir de texto ou de uma imagem de referência. O perfil normal permite exploração visual e clips conceptuais, com fluxos separados do produtor para personagens não humanas reutilizáveis, continuação e edições de vídeo específicas.

Entradas aceites

Texto

Resultados

json · sse

### Disponível no Ailoot · entradas e métodos

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

Entrada

`text`

Saída

`json`, `sse`

Formato de saída

JSON ou SSE

| Campo | Tipo | Requisito | Valores e limites | Predefinição |
| --- | --- | --- | --- | --- |
| Campo`model` | Tipo`string` | RequisitoObrigatório | Valores e limites sora-2 | Predefinição— |
| Campo`messages` | Tipo`message[]` | RequisitoObrigatório | Valores e limites | Predefinição— |
| Campo`messages[].role` | Tipo`string` | RequisitoObrigatório | Valores e limites user, assistant | Predefinição— |
| Campo`messages[].content` | Tipo`string` | RequisitoObrigatório | Valores e limites | Predefinição— |
| Campo`max_tokens` | Tipo`integer` | RequisitoObrigatório | Valores e limites | Predefinição— |
| Campo`stream` | Tipo`boolean` | RequisitoOpcional | Valores e limites | Predefiniçãofalse |

Combinações de materiais de entrada

**Texto** · Texto UTF-8

`Cadeia de caracteres messages[].content`

Parâmetros e ciclo de vida do método

| 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` | ContratoLeia o documento UTF-8 real e coloque o texto na entrada indicada ou na cadeia de conteúdo da mensagem. |

Ciclo de vida: `synchronous_or_streamed`

### Tarifários

As referências tarifárias não acrescentam opções ao pedido. Os parâmetros suportados constam do método selecionado.

Modo rápido

Não especificado Quando o modo rápido está selecionado

Modo flex

Não especificado Quando o modo flex está selecionado

Esforço máximo de raciocínio

Não especificado Quando o esforço máximo de raciocínio usa o ajuste predefinido (default)

#### Tarifas Ailoot

#### Preços por configuração

| Configuração | Tabela de tarifas | Custo |
| --- | --- | --- |
| ConfiguraçãoTarifas base dos tokens | Tabela de tarifasTarifa base | Custo Entrada · Tokens de entrada **$0** / 1K tokens Saída · Tokens de saída **$0.2** / 1K tokens Entrada · Leitura da cache **$0** / 1K tokens Entrada · Escrita na cache **$0** / 1K tokens Entrada · Escrita na cache, 1 hora **—** / 1K tokens |

O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. [Como funcionam a reserva e a liquidação →](https://ailoot.ai/docs/pt-pt/billing/reserve/)

### Exemplos de pedidos

#### Ailoot Ultra · Anthropic Messages

Corpo JSON mínimo completocurl · use o seu documento UTF-8Python · guarde o 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))
```

### Receber e guardar os resultados

#### Ailoot Ultra · Anthropic Messages

JSON ou SSE

##### Guardar todos os resultados concluídos

Guarde cada resposta, ficheiro e parte de conteúdo devolvidos na íntegra.

Conserve todos os blocos de conteúdo, as assinaturas de raciocínio e os ID reais de utilização de ferramentas. Junte todos os deltas de blocos SSE; o primeiro bloco de texto não é a saída completa.

##### Se for necessário verificar a resposta original

Conserve os ID e cabeçalhos de pedido/resposta. Não é fornecido um URL genérico para obter uma tarefa textual.

Campos da resposta

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

Erros e passos seguintes

| Resposta | Condição | Passo seguinte |
| --- | --- | --- |
| Resposta400 · `invalid_request_error` | CondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidos | Passo seguinteCorrija os campos indicados antes de um novo pedido de criação. |

### Aliases

#### Aliases do modelo

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

#### Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

#### IDs de chamada relacionados

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

FAQ · sora-2

Que entradas e resultados estão disponíveis?

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

Que campos utiliza o pedido?

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

Ligue o Ailoot ao Claude Code, OpenCode, Hermes ou à sua aplicação.

## A empresa e a sua carteira de projetos

A empresa e a sua carteira de projetos: milhões de clientes; vendas mensais na ordem dos milhares de milhões.

## Compre tokens com desconto.

Desconto por subscrição para trabalho regular. Códigos promocionais — até 50% na compra de tokens.

Subscrição

Escolha um plano com desconto para os pedidos regulares.

Código promocional até 50%

Introduza o código na compra. O preço é recalculado conforme a campanha em vigor.

Custos no histórico

O modelo, os tokens e o montante são guardados para cada pedido.

[Escolher subscrição](https://ailoot.ai/docs/pt-pt/billing/subscriptions/) · [Ver preços dos modelos](https://ailoot.ai/models/pt-pt/)

## Ligue a API ao produto que vende.

SaaS, aplicações e bots — ao abrigo da oferta e do contrato de licença Ailoot. Para revenda, peça uma licença de revendedor.

Aplicação comercial

Integre geração de texto, imagens, vídeo e som nas funcionalidades pagas do seu serviço.

Licença de revendedor

Envie uma descrição do projeto e do modelo de acesso. Peça condições escritas de utilização e revenda.

Documentos no site

A oferta, o contrato de licença e a política de tratamento de dados estão disponíveis antes da ligação.

[Pedir licença de revendedor](mailto:support@ailoot.ai) · [Oferta e contrato de licença](https://ailoot.ai/legal/offer?lang=pt-pt)

## Ailoot · A empresa e a sua carteira de projetos





A Ailoot assenta numa experiência operacional consolidada, numa ampla base de clientes, num serviço estável e no acompanhamento contínuo dos KPI.





A empresa e a sua carteira de projetos: milhões de clientes; vendas mensais na ordem dos milhares de milhões.





A Ailoot aplica essa experiência operacional ao acesso por API a funcionalidades de IA nos produtos dos clientes, agentes, aplicações e automatizações.
