REST API
API de valoraciones
Integra el tasador ARST en tu flujo con una llamada HTTP. Autenticación por API key, respuesta JSON, sin SDK propietario. Pagas por valoración con tokens de compra única — no hay suscripción.
Empezar en 5 minutos
De cero a tu primera valoración. Los cuatro primeros pasos no cuestan ni un token.
- 01
Crea tu cuenta
Alta gratuita en dos campos. Al registrarte recibes 5 créditos de bienvenida para probar con datos reales.
- 02
Verifica tu correo
Te llega un enlace de verificación con 24 horas de validez. Es obligatorio: sin verificar no se puede iniciar sesión.
- 03
Crea una key de sandbox
En Mi cuenta → API Keys, marca la casilla Sandbox y pulsa crear. La clave empieza por sk_test_ y se muestra en claro UNA sola vez: cópiala en ese momento.
- 04
Haz tu primera llamada
Pega el curl de la derecha sustituyendo la clave. El sandbox devuelve valoraciones reales del motor y no descuenta tokens (tope: 1.000 llamadas al día).
- 05
Pasa a producción
Crea otra key con la casilla Sandbox desmarcada: empieza por sk_live_ y cada valoración descuenta 1 token de tu saldo. Mismo código, solo cambia la clave.
Tu primera petición
curl -X POST 'https://rv.arstdata.com/api/v1/valuation' \
-H 'Authorization: Bearer sk_test_TU_CLAVE' \
-H 'Content-Type: application/json' \
-d '{
"country": "ES",
"brand": "BMW",
"model": "320D",
"year": 2020,
"km": 65000,
"fuel": "diesel",
"current_price": 25000,
"version": "320d xDrive M Sport",
"power_cv": 190,
"transmission": "automatic"
}'Respuesta (abreviada)
{
"country": "ES",
"brand": "BMW",
"model": "320D",
"year": 2020,
"km": 65000,
"fuel": "diesel",
"currency": "EUR",
"p10": 22500,
"p50": 26800,
"p90": 31200,
"confidence": "high",
"sample_size": 847,
"model_recognized": true,
"rv_conservative": 21900,
"horizons": {
"0": { "price": 26800, "price_low": 22500, "price_high": 31200,
"pct": 59.4, "pct_low": 49.9, "pct_high": 69.2 },
"12": { "price": 25100, "price_low": 21100, "price_high": 29200,
"pct": 55.6, "pct_low": 46.8, "pct_high": 64.7 },
"72": { "price": 14200, "price_low": 11900, "price_high": 16500,
"pct": 31.5, "pct_low": 26.4, "pct_high": 36.6 }
},
"tokens_remaining": 5
}La respuesta completa trae los 13 horizontes: 0 (hoy) y luego cada 6 meses hasta 72. Cada horizonte lleva precio mediano, banda P10/P90 y el mismo trío en porcentaje sobre precio de nuevo.
El único cambio entre sandbox y producción es el valor de la cabecera Authorization. Ni la URL ni el cuerpo ni la forma de la respuesta cambian.
Autenticación
Toda la API (salvo el estado del servicio) exige una API key en la cabecera Authorization. No hay parámetro de query ni clave en la URL.
Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Key de producción
Prefijo sk_live_ — descuenta tokens de tu saldo.
Key de sandbox
Prefijo sk_test_ — datos reales, no descuenta tokens. Tope de 1.000 llamadas al día que se reinicia a las 00:00 UTC.
Formato
Bearer token. Hasta 10 keys activas por cuenta; puedes revocar cualquiera sin afectar a las demás.
Alternativa
Sesión web (cookie arst_token) para llamadas desde el navegador con tu cuenta ya iniciada.
Genera y revoca tus keys en Mi cuenta → API Keys. Guardamos solo un hash: si pierdes el valor en claro hay que crear una key nueva.
Cómo funciona el pago
No hay suscripción, ni cuota mensual, ni permanencia. Compras un pack de tokens cuando lo necesitas y ese saldo no caduca por el paso de un mes.
Packs de tokens · compra única
5 tokens
14,99 € IVA incluido
3 €/token
15 tokens
39,99 € IVA incluido
2,67 €/token
40 tokens
95,99 € IVA incluido
2,40 €/token
100 tokens
216,99 € IVA incluido
2,17 €/token
Precios para empresas, sin IVA. Para particulares, debajo, con el 21 % incluido. El saldo se suma al que ya tengas.
Ver packs y comprar
Packs de tokens · compra única
Límites de ritmo
| Endpoints | Por minuto | Por día |
|---|---|---|
/valuation · /comparable | 60 | sin tope |
/batch · /batch/async | 12 | sin tope |
/pdf | 10 | 300 |
/pvpr · /catalog/* · /market-index | 600 | 10.000 |
/usage · /batch/async/{job_id} | 120 | 5.000 |
Total por key (rutas con clave) | 300 | sin tope |
Key de sandbox (sk_test_) | igual | 1.000 |
Son límites operacionales, iguales para todo el mundo: protegen el servicio de bucles desbocados, no son un producto. Se aplican ANTES de tocar tu saldo, así que una petición frenada nunca te cuesta un token. Todo 429 llega con cabecera Retry-After y los cupos diarios se reinician a las 00:00 UTC.
Endpoints
Trece rutas en producción. El coste es siempre el mismo: valorar cuesta tokens, consultar no.
| Método | Endpoint | Tokens | Qué hace |
|---|---|---|---|
| POST | /valuation | 1 | Valora un vehículo: banda de precio hoy y proyección a 72 meses. |
| POST | /batch | 1 / vehículo | Valora hasta 50 vehículos en una sola llamada, en el momento. |
| POST | /batch/async | 1 / vehículo | Encola un lote y devuelve un identificador de trabajo. |
| POST | /comparable | 1 | Vehículos comparables al tuyo en el mercado actual. |
| GET | /batch/async/{job_id} | 0 | Consulta el estado y el resultado de un lote encolado. |
| POST | /pdf | 0 | Convierte una valoración ya calculada en un informe PDF. |
| GET | /pvpr | 0 | Precio de vehículo nuevo recomendado para marca/modelo/año. |
| GET | /catalog/brands | 0 | Marcas con oferta viva en un país, ordenadas por volumen. |
| GET | /catalog/models | 0 | Modelos de una marca en un país, ordenados por volumen. |
| GET | /catalog/versions | 0 | Versiones de un modelo con su precio de nuevo y años cubiertos. |
| GET | /market-index | 0 | Índice mensual del mercado de ocasión, por país. |
| GET | /usage | 0 | Tu saldo de tokens y tu consumo por tipo de endpoint. |
| GET | /healthSin key | 0 | Estado del servicio y de cada país. Sin autenticación. |
| GET | /countriesSin key | 0 | Los mercados disponibles y el estado de su modelo. Sin autenticación. |
Detalle de peticiones
Cuerpo, parámetros y respuesta real de cada endpoint. Despliega el que te interese.
Errores comunes
Todos los errores devuelven JSON con el campo detail. Los tres primeros son los que verás mientras integras.
| HTTP | Qué ha pasado y cómo se arregla |
|---|---|
401 | Falta la cabecera Authorization, o la key es inválida, está revocada o tiene un formato que no reconocemos. Revisa que mandas "Bearer " delante de la clave. |
402 | Saldo agotado: la llamada necesita más tokens de los que te quedan. El detalle dice cuántos hacen falta y cuántos tienes. Compra un pack y la misma petición funciona sin cambios. |
422 | Parámetros inválidos. El caso más frecuente al empezar es olvidar current_price, que es obligatorio; también lo devuelve un país o un combustible fuera de la lista, o una combinación de marca y modelo que no existe en ese mercado. El detalle señala el campo exacto. |
429 | Has superado el ritmo permitido o el cupo diario de ese tipo de endpoint. Espera los segundos que indica la cabecera Retry-After y reintenta: no se te ha descontado ningún token. |
413 | Cuerpo demasiado grande (solo en la generación de PDF). Manda el JSON de la valoración tal cual, sin adjuntar nada más. |
503 | Ese país no tiene modelo disponible en este momento, o el servicio está recargando artefactos. Es temporal: reintenta en unos minutos. |
Ejemplo rápido
curl -X POST 'https://rv.arstdata.com/api/v1/valuation' \
-H 'Authorization: Bearer sk_test_TU_CLAVE' \
-H 'Content-Type: application/json' \
-d '{
"country": "ES",
"brand": "BMW",
"model": "320D",
"year": 2020,
"km": 65000,
"fuel": "diesel",
"current_price": 25000,
"version": "320d xDrive M Sport",
"power_cv": 190,
"transmission": "automatic"
}'De un vistazo
Crear API key
Mi cuenta → API Keys → casilla Sandbox
Comprar tokens
Packs de compra única, sin suscripción