curl --request POST \
--url https://direct.evolink.ai/v1/chat/completions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-6.1-sol",
"messages": [
{
"role": "user",
"content": "Explica el entrelazamiento cuántico en una frase."
}
]
}
'import requests
url = "https://direct.evolink.ai/v1/chat/completions"
payload = {
"model": "gpt-6.1-sol",
"messages": [
{
"role": "user",
"content": "Explica el entrelazamiento cuántico en una frase."
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'gpt-6.1-sol',
messages: [{role: 'user', content: 'Explica el entrelazamiento cuántico en una frase.'}]
})
};
fetch('https://direct.evolink.ai/v1/chat/completions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://direct.evolink.ai/v1/chat/completions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gpt-6.1-sol',
'messages' => [
[
'role' => 'user',
'content' => 'Explica el entrelazamiento cuántico en una frase.'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://direct.evolink.ai/v1/chat/completions"
payload := strings.NewReader("{\n \"model\": \"gpt-6.1-sol\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Explica el entrelazamiento cuántico en una frase.\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://direct.evolink.ai/v1/chat/completions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-6.1-sol\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Explica el entrelazamiento cuántico en una frase.\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://direct.evolink.ai/v1/chat/completions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"gpt-6.1-sol\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Explica el entrelazamiento cuántico en una frase.\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "chatcmpl-CvJ2p8mQxK7nR4wS",
"object": "chat.completion",
"created": 1786705221,
"model": "gpt-6.1-sol",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Quantum entanglement means the states of two particles are correlated, so measuring one instantly determines the state of the other.",
"tool_calls": [
{}
]
},
"logprobs": {},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 18,
"completion_tokens": 42,
"total_tokens": 60,
"prompt_tokens_details": {
"cached_tokens": 0,
"cache_write_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 16
}
}
}{
"error": {
"code": 400,
"message": "Unsupported parameter: 'stop' is not supported with this model.",
"type": "invalid_request_error"
}
}{
"error": {
"code": 401,
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": 402,
"message": "Insufficient quota",
"type": "insufficient_quota_error",
"fallback_suggestion": "https://evolink.ai/dashboard/credits"
}
}{
"error": {
"code": 429,
"message": "Rate limit exceeded",
"type": "rate_limit_error",
"fallback_suggestion": "retry after 60 seconds"
}
}{
"error": {
"code": 500,
"message": "Internal server error",
"type": "internal_server_error",
"fallback_suggestion": "try again later"
}
}{
"error": {
"code": 503,
"message": "Service temporarily unavailable",
"type": "service_unavailable_error",
"fallback_suggestion": "retry after 30 seconds"
}
}Interfaz de todos los modelos GPT - Referencia completa de Chat Completions
- API Chat Completions compatible con OpenAI para los modelos de texto de la serie GPT; el modelo concreto se elige mediante
model(todos los valores posibles están en la tabla comparativa del parámetromodel) - Toda la serie está formada por modelos de razonamiento; la profundidad se controla con
reasoning_efforty los tokens de razonamiento se facturan como tokens de salida - La caché de prompts se aplica automáticamente: los tokens de entrada servidos desde caché se facturan a la tarifa de caché, más baja
- Admite los modos síncrono y en streaming (SSE)
- Admite entrada mixta de texto e imagen, así como llamadas a herramientas
function - Las herramientas del lado del servidor (búsqueda web, ejecución de código, búsqueda documental, MCP) solo se ofrecen en la API Responses
- Nota El alcance de compatibilidad de los parámetros de muestreo (
temperature,top_p,logprobs, etc.) varía según el modelo; consulta las notas de cada parámetro más abajo
GPT-6: gpt-6-sol / gpt-6-luna usan medium de forma predeterminada. Las llamadas a funciones en Chat Completions requieren reasoning_effort: "none" explícito. gpt-6-astra y gpt-6.1-sol no admiten none; use Responses para llamar a funciones. El nivel max de GPT-6 solo está disponible en Responses.
curl --request POST \
--url https://direct.evolink.ai/v1/chat/completions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-6.1-sol",
"messages": [
{
"role": "user",
"content": "Explica el entrelazamiento cuántico en una frase."
}
]
}
'import requests
url = "https://direct.evolink.ai/v1/chat/completions"
payload = {
"model": "gpt-6.1-sol",
"messages": [
{
"role": "user",
"content": "Explica el entrelazamiento cuántico en una frase."
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'gpt-6.1-sol',
messages: [{role: 'user', content: 'Explica el entrelazamiento cuántico en una frase.'}]
})
};
fetch('https://direct.evolink.ai/v1/chat/completions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://direct.evolink.ai/v1/chat/completions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'gpt-6.1-sol',
'messages' => [
[
'role' => 'user',
'content' => 'Explica el entrelazamiento cuántico en una frase.'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://direct.evolink.ai/v1/chat/completions"
payload := strings.NewReader("{\n \"model\": \"gpt-6.1-sol\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Explica el entrelazamiento cuántico en una frase.\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://direct.evolink.ai/v1/chat/completions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"gpt-6.1-sol\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Explica el entrelazamiento cuántico en una frase.\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://direct.evolink.ai/v1/chat/completions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"gpt-6.1-sol\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Explica el entrelazamiento cuántico en una frase.\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "chatcmpl-CvJ2p8mQxK7nR4wS",
"object": "chat.completion",
"created": 1786705221,
"model": "gpt-6.1-sol",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Quantum entanglement means the states of two particles are correlated, so measuring one instantly determines the state of the other.",
"tool_calls": [
{}
]
},
"logprobs": {},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 18,
"completion_tokens": 42,
"total_tokens": 60,
"prompt_tokens_details": {
"cached_tokens": 0,
"cache_write_tokens": 0
},
"completion_tokens_details": {
"reasoning_tokens": 16
}
}
}{
"error": {
"code": 400,
"message": "Unsupported parameter: 'stop' is not supported with this model.",
"type": "invalid_request_error"
}
}{
"error": {
"code": 401,
"message": "Invalid or expired token",
"type": "authentication_error"
}
}{
"error": {
"code": 402,
"message": "Insufficient quota",
"type": "insufficient_quota_error",
"fallback_suggestion": "https://evolink.ai/dashboard/credits"
}
}{
"error": {
"code": 429,
"message": "Rate limit exceeded",
"type": "rate_limit_error",
"fallback_suggestion": "retry after 60 seconds"
}
}{
"error": {
"code": 500,
"message": "Internal server error",
"type": "internal_server_error",
"fallback_suggestion": "try again later"
}
}{
"error": {
"code": 503,
"message": "Service temporarily unavailable",
"type": "service_unavailable_error",
"fallback_suggestion": "retry after 30 seconds"
}
}https://direct.evolink.ai, que ofrece mejor compatibilidad con modelos de texto y admite conexiones persistentes. https://api.evolink.ai es el endpoint principal para servicios multimodales y actúa como dirección de respaldo para los modelos de texto.function normales.reasoning_effort: "none" en este endpoint. Use Responses para llamadas a funciones con Astra y 6.1 Sol, o para el nivel max de GPT-6.Autorizaciones
##Todas las APIs requieren autenticación Bearer Token##
Obtener API Key:
Visita la Página de gestión de API Key para obtener tu API Key
Agregar al encabezado de la solicitud:
Authorization: Bearer YOUR_API_KEY
Cuerpo
Modelo a invocar:
| ID del modelo | Ventana de contexto | Posicionamiento |
|---|---|---|
gpt-6.1-sol | 1,050,000 | Nueva versión de Sol: rendimiento cercano a Astra a menor costo (recomendado) |
gpt-6-astra | 1.050.000 | Razonamiento insignia para tareas integrales exigentes |
gpt-6-sol | 1,050,000 | Programación compleja y flujos de trabajo con agentes |
gpt-6-luna | 1,050,000 | Clasificación y extracción de alto volumen con menor costo |
gpt-5.6-sol | 1.050.000 | Familia GPT-5.6, razonamiento de vanguardia |
gpt-5.6-terra | 1.050.000 | Familia GPT-5.6, producción equilibrada |
gpt-5.6-luna | 1.050.000 | Familia GPT-5.6, alto rendimiento y control de costes |
gpt-5.5 | 400.000 | Modelo de razonamiento de propósito general |
gpt-5.4 | 128.000 | Modelo de razonamiento de propósito general |
gpt-5.2 | 400.000 | Modelo de razonamiento de propósito general |
gpt-5.1 | 400.000 | Modelo de razonamiento de propósito general |
gpt-6.1-sol, gpt-6-astra, gpt-6-sol, gpt-6-luna, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-5.5, gpt-5.4, gpt-5.2, gpt-5.1 "gpt-6.1-sol"
Lista de mensajes de chat, admite contexto de varios turnos y entrada multimodal.
role puede ser system / developer / user / assistant / tool.
content puede ser una cadena o un array de bloques de contenido. Se admiten dos tipos de bloque: text (texto) e image_url (imagen):
"content": [
{ "type": "text", "text": "¿Qué hay en esta imagen?" },
{
"type": "image_url",
"image_url": { "url": "https://example.com/photo.png", "detail": "auto" }
}
]
Imagen
- Envía en
image_url.urlla URL pública de la imagen image_urltambién puede escribirse directamente como una cadena, equivalente a{ "url": "..." }detailcontrola la precisión del análisis de la imagen:auto(predeterminado) /low/high/original- La imagen debe poder descargarse, de lo contrario se devuelve
400
Nota Los tipos de bloque de esta API son distintos de los de la API Responses (que usa input_text / input_image). No pueden mezclarse; usarlos mal devuelve 400.
Punto de caché explícito para GPT-6 / GPT-5.6 en un bloque de contenido. Máximo cuatro escrituras por solicitud; un punto implícito ocupa una posición. prompt_cache_breakpoint: {"mode": "explicit"}.
Show child attributes
Show child attributes
[
{
"role": "system",
"content": "You are a concise assistant."
},
{
"role": "user",
"content": "Explain quantum entanglement in one sentence."
}
]
Si la respuesta se devuelve en streaming (flujo de eventos SSE, que termina con data: [DONE]). El valor predeterminado es false.
false
Máximo de tokens generados, incluido el razonamiento. Se recomienda max_completion_tokens. GPT-6 convierte el campo antiguo max_tokens; si se envían ambos, conserva max_completion_tokens y elimina max_tokens. GPT-6 Astra / Sol / Luna y GPT-6.1 Sol permiten hasta 128.000 tokens de salida.
2048
Control de la profundidad de razonamiento. Los valores posibles varían según el modelo:
| Modelo | Valores posibles |
|---|---|
gpt-6-astra / gpt-6.1-sol | low, medium, high, xhigh |
gpt-6-sol / gpt-6-luna | none, low, medium, high, xhigh |
gpt-5.6-sol / gpt-5.6-terra / gpt-5.6-luna / gpt-5.5 | none, low, medium, high, xhigh |
gpt-5.4 / gpt-5.2 / gpt-5.1 | low, medium, high, xhigh |
Los tokens de razonamiento se facturan como tokens de salida y se contabilizan en usage.completion_tokens_details.reasoning_tokens.
GPT-6 usa medium de forma predeterminada. gpt-6-astra y gpt-6.1-sol no admiten none; gpt-6-sol / gpt-6-luna sí. El nivel max de GPT-6 solo está disponible en Responses.
none, low, medium, high, xhigh "medium"
Nivel de detalle de la respuesta: low / medium / high.
GPT-6 Sol / Luna y GPT-6.1 Sol: aún no se ha confirmado la compatibilidad con este parámetro; omítalo en las solicitudes básicas.
Las siguientes reglas de modelos existentes excluyen GPT-6 Sol / Luna y GPT-6.1 Sol:
Nota Compatible con gpt-6-astra, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna y gpt-5.5; los demás modelos no admiten este parámetro.
low, medium, high "low"
Temperatura de muestreo, con valores de 0 a 2. Cuanto más bajo, más determinista es la salida.
GPT-6: omita este parámetro con gpt-6-astra y gpt-6.1-sol. Con gpt-6-sol / gpt-6-luna, solo puede ajustarse con esfuerzo de razonamiento none; omítalo en los demás niveles. Omitir el esfuerzo selecciona medium, no none.
Modelos existentes: gpt-5.5 / gpt-5.4 / gpt-5.2 / gpt-5.1 permiten ajustes; la familia gpt-5.6 solo acepta el valor predeterminado 1.
0 <= x <= 21
Parámetro de muestreo por núcleo, con valores de 0 a 1. No se recomienda ajustarlo junto con temperature.
GPT-6: omita este parámetro con gpt-6-astra y gpt-6.1-sol. Con gpt-6-sol / gpt-6-luna, solo puede ajustarse con esfuerzo de razonamiento none; omítalo en los demás niveles. Omitir el esfuerzo selecciona medium, no none.
Modelos existentes: gpt-5.5 / gpt-5.4 / gpt-5.2 / gpt-5.1 permiten ajustes; la familia gpt-5.6 solo acepta el valor predeterminado 1.
0 <= x <= 11
Penalización por frecuencia, con valores de -2 a 2. Los valores positivos penalizan los tokens según su frecuencia de aparición y reducen el contenido repetido.
GPT-6 Sol / Luna y GPT-6.1 Sol: aún no se ha confirmado la compatibilidad con este parámetro; omítalo en las solicitudes básicas.
Las siguientes reglas de modelos existentes excluyen GPT-6 Sol / Luna y GPT-6.1 Sol:
Nota Solo puede ajustarse en gpt-5.4 / gpt-5.2 / gpt-5.1; la familia gpt-5.6 y gpt-5.5 no permiten ajustarlo. GPT-6 Astra solo acepta el valor predeterminado 0; enviar cualquier otro valor devuelve 400.
-2 <= x <= 20
Penalización por presencia, con valores de -2 a 2. Los valores positivos animan al modelo a tratar temas nuevos.
GPT-6 Sol / Luna y GPT-6.1 Sol: aún no se ha confirmado la compatibilidad con este parámetro; omítalo en las solicitudes básicas.
Las siguientes reglas de modelos existentes excluyen GPT-6 Sol / Luna y GPT-6.1 Sol:
Nota Solo puede ajustarse en gpt-5.4 / gpt-5.2 / gpt-5.1; la familia gpt-5.6 y gpt-5.5 no permiten ajustarlo. GPT-6 Astra solo acepta el valor predeterminado 0; enviar cualquier otro valor devuelve 400.
-2 <= x <= 20
Si se devuelven las probabilidades logarítmicas de cada token de salida.
GPT-6: Astra y 6.1 Sol no admiten logprobs de salida. Sol / Luna solo permiten usarlos con esfuerzo none. En otros niveles, elimine logprobs, top_logprobs y message.output_text.logprobs de include en Responses.
Las siguientes reglas de modelos existentes excluyen GPT-6 Sol / Luna y GPT-6.1 Sol:
Nota Solo lo admiten gpt-5.4 / gpt-5.2 / gpt-5.1; la familia gpt-5.6 y gpt-5.5 no admiten este parámetro.
GPT-6 Astra y GPT-6.1 Sol no admiten este parámetro.
true
Número de tokens candidatos devueltos en cada posición, con valores de 0 a 20; debe usarse junto con logprobs: true.
Nota El alcance de compatibilidad es el mismo que el de logprobs.
GPT-6: Astra y 6.1 Sol no admiten logprobs de salida. Sol / Luna solo permiten usarlos con esfuerzo none. En otros niveles, elimine logprobs, top_logprobs y message.output_text.logprobs de include en Responses.
0 <= x <= 202
Número de respuestas candidatas a generar, devueltas como varios elementos del array choices. Se facturan todos los tokens (incluida la salida de cada candidata).
GPT-6 Sol / Luna y GPT-6.1 Sol: aún no se ha confirmado la compatibilidad con este parámetro; omítalo en las solicitudes básicas.
1
Semilla aleatoria. Con la misma semilla y la misma combinación de parámetros, el modelo intenta devolver resultados coherentes (en la medida de lo posible; no se garantiza una reproducibilidad total).
GPT-6 Sol / Luna y GPT-6.1 Sol: aún no se ha confirmado la compatibilidad con este parámetro; omítalo en las solicitudes básicas.
42
Control del formato de salida:
{"type": "text"}: texto libre, el valor predeterminado{"type": "json_object"}: devuelve JSON válido y exige que la palabrajsonaparezca enmessages, de lo contrario devuelve400{"type": "json_schema", "json_schema": {...}}: devuelve resultados estructurados conforme al JSON Schema indicado; combínalo con"strict": truepara forzar la conformidad con el esquema
Show child attributes
Show child attributes
Lista de herramientas, usada para Function Calling (llamadas a funciones del lado del cliente, sin coste por llamada).
Las herramientas del lado del servidor (búsqueda web, ejecución de código, etc.) no se ofrecen en esta API; utiliza en su lugar la API Responses.
GPT-6: gpt-6-sol / gpt-6-luna usan medium de forma predeterminada. Las llamadas a funciones en Chat Completions requieren reasoning_effort: "none" explícito. gpt-6-astra y gpt-6.1-sol no admiten none; use Responses para llamar a funciones. El nivel max de GPT-6 solo está disponible en Responses.
Show child attributes
Show child attributes
Control de la selección de herramientas: "auto" (predeterminado) / "none" / "required", o un objeto que indica una función concreta, como {"type": "function", "function": {"name": "get_weather"}}.
none, auto, required Si el modelo puede llamar a varias herramientas en paralelo dentro de un mismo turno. El valor predeterminado es true; con false se fuerza a llamarlas una a una.
GPT-6 Sol / Luna y GPT-6.1 Sol: aún no se ha confirmado la compatibilidad con este parámetro; omítalo en las solicitudes básicas.
true
Clave de agrupación de caché. GPT-6 / GPT-5.6 gestionan el enrutamiento automáticamente; este campo no es necesario para optimizarlo. Las claves separadas distinguen la reutilización y la contabilidad por cliente o usuario. Mantenga la misma clave para solicitudes que deban reutilizar un prefijo. En modelos anteriores, una clave estable ayuda al enrutamiento.
"app-chat-v1"
Identificador del usuario final, usado para distinguir el origen de las llamadas.
"user-1024"
Opciones de caché para GPT-6 y GPT-5.6. Los puntos implícitos son el valor predeterminado. mode: "explicit" usa solo puntos explícitos; sin ellos no hay caché.
Show child attributes
Show child attributes
{ "ttl": "30m", "mode": "implicit" }
Respuesta
Generación de la conversación correcta (objeto JSON; con stream=true, un flujo de eventos SSE que termina con data: [DONE])
Identificador único de esta conversación
"chatcmpl-CvJ2p8mQxK7nR4wS"
Tipo de respuesta
chat.completion "chat.completion"
Marca de tiempo de creación
1786705221
Nombre del modelo real utilizado
"gpt-6.1-sol"
Lista de resultados generados (su longitud es igual a n en la solicitud)
Show child attributes
Show child attributes
Estadísticas de uso de tokens. La caché de prompts se aplica automáticamente y los tokens de entrada servidos desde caché se facturan a la tarifa de caché, más baja.
GPT-6 factura por separado entrada sin caché, lectura de caché, escritura de caché y salida. Si la entrada supera 272.000 tokens, toda la solicitud se factura a 2× las tarifas de entrada y caché y 1,5× la de salida. La generación de imágenes integrada se cobra aparte. Consulte los precios actuales.
Show child attributes
Show child attributes