API de precios e insignia de precio
Dos direcciones te dan los precios actuales de UberLLM sin una API key ni una cuenta:
- Precios en formato JSON:
GET https://api.uberllm.dev/api/v1/public/prices - Una insignia de precio:
https://api.uberllm.dev/api/v1/public/badge/<model-id>.svg
Ambos muestran el mismo precio que la página del modelo en uberllm.dev: el precio más bajo del vendedor en este momento. Los precios se vuelven a leer cada 30 segundos.
Precios como JSON
curl "https://api.uberllm.dev/api/v1/public/prices?model=deepseek/deepseek-v4-flash"
{
"updated_at": "2026-11-13T06:40:12Z",
"models": [
{
"id": "deepseek/deepseek-v4-flash",
"name": "DeepSeek V4 Flash",
"type": "text",
"input_per_m": 0.0091,
"output_per_m": 0.0182,
"list_input_per_m": 0.09,
"list_output_per_m": 0.18,
"discount_pct": 89.9,
"unit": "1M tokens",
"price_text": "$0.0091/M in · $0.0182/M out",
"page_url": "https://uberllm.dev/models/deepseek/deepseek-v4-flash"
}
]
}
Los números anteriores se leyeron el 13 de noviembre de 2026. Los tuyos serán diferentes, porque los precios cambian.
Lo que puedes solicitar
Todos estos son opcionales. Si no especificas ninguno, obtendrás todos los modelos que puedes llamar ahora mismo.
| Parámetro | Qué hace |
|---|---|
model |
Un ID de modelo, por ejemplo deepseek/deepseek-v4-flash. |
type |
Solo modelos text, image, video o audio. Música, text to speech y speech to text son audio. |
q |
Palabras a buscar en el ID o el nombre. Cada palabra debe coincidir: q=claude opus. |
limit |
Como máximo esta cantidad de modelos, de 1 a 1000. |
Si model nombra un modelo que no existe, o uno que nadie ofrece en este momento,
models es una lista vacía y la respuesta sigue siendo 200. Un ID de modelo antiguo que ha sido
renombrado responde con el modelo en el que se convirtió.
Lo que se devuelve
Todos los precios están en dólares estadounidenses. Un campo sin valor se omite.
| Campo | Significado |
|---|---|
id, name |
El ID de modelo que envías en una solicitud, y su nombre. |
type |
text, image, video o audio. |
input_per_m, output_per_m |
Modelos de texto: el precio actual por 1 millones de input tokens y 1 millones de output tokens. |
list_input_per_m, list_output_per_m |
Modelos de texto: el precio de lista publicado del modelo para lo mismo. |
price |
Modelos de imagen, video y audio: el precio actual por un unit. |
list_price |
Modelos de imagen, video y audio: el precio oficial por un unit. Se envía solo cuando está por encima de price. |
discount_pct |
Cuánto está el precio actual por debajo del precio de lista, de 1 a 100. Para un modelo de texto, es el menor de los recortes de input y output. Se omite cuando no hay precio de lista o el precio no está por debajo de él. |
unit |
Lo que compra un precio: 1M tokens, image, megapixel, second, video, track, minute, 1k characters o request. |
price_text |
El precio en palabras, en inglés, listo para mostrar: $0.0091/M in · $0.0182/M out, $0.059 / sec, about $0.0315 per image. |
page_url |
La página del modelo en uberllm.dev. |
updated_at |
Cuándo se leyeron estos precios. |
Una solicitud puede costar más que el precio mostrado cuando los vendedores más baratos están ocupados. Consulta Precios para saber cómo se factura una solicitud.
Desde una página web
Cualquier sitio web puede leer los precios directamente desde el navegador:
const res = await fetch("https://api.uberllm.dev/api/v1/public/prices?type=text&limit=10");
const { models } = await res.json();
for (const m of models) console.log(m.name, m.price_text);
Insignia de precio
Una pequeña imagen con el nombre del modelo y su precio actual. Se actualiza automáticamente.
Markdown, para un README:
[](https://uberllm.dev/models/deepseek/deepseek-v4-flash?utm_source=embed&utm_medium=referral&utm_campaign=price-badge)
HTML:
<a href="https://uberllm.dev/models/deepseek/deepseek-v4-flash?utm_source=embed&utm_medium=referral&utm_campaign=price-badge">
<img src="https://api.uberllm.dev/api/v1/public/badge/deepseek/deepseek-v4-flash.svg"
alt="DeepSeek V4 Flash price on UberLLM" height="20">
</a>
- Pon el ID del modelo en la dirección tal cual, incluyendo las barras, y termínalo con
.svg. - La insignia también indica cuánto está el precio por debajo del precio de lista. Añade
?discount=0para mostrar solo el precio. - Si nadie ofrece el modelo en este momento, la insignia dirá "no disponible ahora mismo" y no mostrará precio. Volverá a mostrar el precio cuando un vendedor regrese.
- Un ID de modelo que no existe responde
404. - El enlace lleva
utm_source=embed, así podemos saber que una visita provino de una insignia. No registra nada sobre tus lectores. Quítalo si lo prefieres.
Límites y caché
- 300 solicitudes por minuto desde una dirección IP en la dirección JSON. Si se supera ese límite, obtendrás
429con un headerRetry-After. - Las insignias no tienen límite de solicitudes, y una insignia para un modelo real es siempre una imagen: si los precios no se pueden leer por un momento, dirá "no disponible en este momento" en lugar de fallar.
- Las respuestas JSON pueden guardarse en caché durante 60 segundos, las insignias durante 5 minutos. Los sitios que hacen proxy de imágenes (como GitHub) pueden mantener una insignia un poco más.
- Los modelos creados para contenido para adultos quedan fuera de ambos. Se encuentran en
GET /v1/models, marcados como"nsfw": true.
Errores
| Estado | error.code |
Motivo |
|---|---|---|
400 |
invalid_type, invalid_limit, invalid_request |
Un parámetro tiene un valor no permitido. El mensaje indica cuál. |
404 |
model_not_found, not_found |
Solo para insignias: no existe tal modelo, o la dirección no termina en .svg. |
429 |
rate_limited |
Solo JSON: demasiadas solicitudes desde tu dirección IP. Espera un minuto. |
503 |
unavailable |
Solo JSON: los precios no pudieron leerse en este momento. Intenta de nuevo en unos segundos. |
Relacionados
GET /v1/models: la lista completa de modelos en formato OpenAI, con tamaños de contexto y lo que cada modelo soporta.- MCP server: los mismos precios como herramientas para un asistente de IA.
- OpenAPI spec: ambas direcciones están en ella.