Datacar API

DATACAR API · DOCUMENTACIÓN TÉCNICA v2

API para consulta de Información de Vehículos en la República Argentina

Datacar es el referente en Informes de Historial Automotor de Argentina desde el año 2013.

Datacar API es la primera API de información de Vehículos del país, enriqueciendo flujos de aseguradoras, cotizadores, concesionarios, entidades financieras, insurtechs, empresas de logística y seguridad, fintechs, marketplaces, autopartistas y estacionamientos desde el año 2015.

1.Introducción

Datacar API permite consultar información vehicular a partir de una matrícula/patente. Dada una patente, el servicio devuelve la información del vehículo agrupada en distintos scopes, de acuerdo al servicio contratado por cada usuario.

A los efectos de este documento, se describe en detalle el scope principal id, correspondiente a la identificación del vehículo (marca, modelo, año, tipo, origen). Para conocer más acerca de otros scopes disponibles consulte con nuestro Equipo Comercial.

2.Características de la solución

Infraestructura pensada para integrarse a procesos productivos que requieren respuestas rápidas y estables.

99,9%
Alta disponibilidad

Uptime mensual objetivo de 99,9%, con redundancia, autoescalado y monitoreo continuo de las capas críticas.

120ms
Baja latencia

Wall time promedio de 120ms
Respuesta de baja latencia para toda consulta, cualquiera sea el momento del día o la carga del servicio.

E2E
Encriptación extremo a extremo y en reposo

El tráfico entre el cliente y la base de datos viaja encriptado en ambos sentidos, en todo momento.
Tambíen utilizamos cifrado de datos en reposo.

3.Especificación del Servicio

ProtocoloHTTPS (TLS >= 1.2)
Base URLhttps://api.datacar.com.ar
AutenticaciónAPI Key (Bearer)
ArquitecturaREST
FormatoJSON

4.Autenticación

Datacar API se autentica mediante API Key enviada como Bearer Token en el header Authorization.

Authorization: Bearer dca0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz01234

Las API Keys son de longitud fija (80 caracteres) y siempre comienzan con el prefijo dca (Data Car Api), lo que permite identificarlas fácilmente en tus configuraciones y sistemas de gestión de secretos.

Nota: Contamos también con Basic Auth (usuario/contraseña), este se mantiene por compatibilidad con integraciones existentes. Si estás utilizando este método te recomendamos cambiar a API Key para mayor versatilidad y posibilidad de gestión de tus credenciales.

Creación de Usuario

El alta de usuario y API Key debe ser solicitado a nuestro Equipo Comercial, recibirás un email de bienvenida con todo lo necesario para comenzar con tu integración. ¿Aún no tenés tu API Key? Solicitala.

Seguridad de la conexión

ÍtemDetalle
TLSTodas las conexiones requieren TLS 1.2 o superior. No se aceptan versiones anteriores.
IP whitelistingNo se recomienda de manera de evitar fricción operativa (bloqueos ante cambios de infraestructura del lado del cliente). Se implementa únicamente a pedido explícito, sobre direcciones IP individuales o rangos CIDR — solo IPv4.
Certificate / public key / IP pinningNo soportado. No implementes ningún tipo de pinning contra Datacar API en tus integraciones, nos reservamos la posibilidad de modificar nuestra infraestructura con el objetivo de mejorar la calidad y seguridad de nuestra solución.

5.Consulta de vehículo

Identificación de cualquier automóvil o motovehículo registrado en Argentina, patente formato anterior o Mercosur actual.

GET/vehicle/:plate

Devuelve la información del vehículo asociada a la patente consultada, agrupada por scope según el servicio contratado.

Parámetros

NombreTipoRequeridoDescripción
platealfanuméricoPatente del vehículo a consultar. Se admiten todos los formatos de chapa patente de automotores y motovehículos de Argentina (formato anterior y Mercosur), sin espacios ni guiones. No distingue mayúsculas/minúsculas.

Ejemplo

curl -X GET "https://api.datacar.com.ar/vehicle/ai535ya" \
  -H "Authorization: Bearer dca0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz01234" \
  -H "Accept: application/json"

Probá la demo interactiva y obtené ejemplos de código en Node.js, Python o PHP.

6.Códigos de respuesta HTTP

CódigoNombreDescripción
200OKRespuesta exitosa.
401UnauthorizedNo se envió el header Authorization, o la API Key enviada es inválida o no tiene acceso al servicio.
403ForbiddenEl usuario autenticado agotó su crédito mensual.
405Method Not AllowedVerificá que estás usando el método correcto (GET).
404Not FoundVerificá que estás usando el endpoint correcto (/vehicle/:plate).
400Bad RequestVerificá el formato de la patente enviada. No incluyas espacios ni guiones.
418I'm a teapotLa patente consultada no está disponible en el entorno de testing. Usá una de las patentes de prueba provistas. Ver sección 9.
429Too Many RequestsSe excedió el rate limit. Ver sección 10.
503Service UnavailableCódigo reservado para actualizaciones. En la práctica, al tratarse de una solución de alta disponibilidad, las actualizaciones se realizan en caliente, este código se reserva exclusivamente para actualizaciones estructurales que sí requieran una ventana de corte, y en ese caso se notifica previamente al contacto técnico de la cuenta.
500Internal Server ErrorExcepción interna inesperada.

Estructura de la respuesta exitosa

ClaveTipoDescripción
successbooleanIndica si se encontraron datos de la patente consultada de acuerdo a los scopes habilitados. Si hay al menos un dato disponible devuelve true junto con la clave data; caso contrario, devuelve false y la clave data no está presente.
dataobjectContiene todos los datos encontrados para la patente, agrupados por scope según el plan contratado.
balanceintegerCrédito mensual remanente del usuario. Cada consulta descuenta crédito solo si success es true.

Cada clave de la respuesta, tanto a nivel de scope como dentro de cada scope, puede estar ausente si no hay datos disponibles para esa patente. Es responsabilidad del cliente validar la existencia de cada clave antes de utilizarla.

7.Scopes y estructura de datos

Este documento detalla el scope principal id correspondiente a la identificación del vehículo.

Scope: id — Identificación del vehículo

ClaveTipoDescripción
idalfanuméricoIdentificador de marca y modelo del vehículo, conocido como código "fmm" (fábrica-marca-modelo) de la DNRPA.
brandstringMarca del vehículo.
modelstringModelo del vehículo.
yearintegerAño del vehículo.
typestringDescripción del tipo de vehículo.
manufacturerstringRazón social del fabricante, para vehículos de fabricación nacional.
domesticbooleanOrigen del vehículo: true para nacionales, false para importados.
GET /vehicle/ai535ya
Authorization: Bearer dca0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz01234
{
  "success": true,
  "data": {
    "id": {
      "id": "03453A2",
      "brand": "VOLKSWAGEN",
      "model": "AMAROK COMFORTLINE V6 AT 4X4 G2",
      "year": 2026,
      "type": "PICK-UP",
      "manufacturer": "VOLKSWAGEN ARGENTINA S.A.",
      "domestic": true
    }
  },
  "balance": 99
}

8.Gestión de API Keys

Datacar API provee endpoints para rotar tus API Keys con o sin downtime.
Si aún no estás productivo podes utilizar el endpoint rotate-key de manera segura.
Una vez en producción recomentadamos usar los siguientes endpoints en este orden: creá una nueva key con create-key, opcionalmente verificala con verify-key, migrá tus sistemas a la nueva key y recién ahí eliminá la anterior con delete-key.
La frecuencia y la lógica de rotación quedan a criterio de cada cliente — Datacar no impone una política de rotación.

POST/auth/rotate-key

Invalida la API Key con la que se autenticó el request y emite una nueva en su lugar. Siempre rota "la key actual" — la enviada en el header Authorization — no una key arbitraria. No recibe payload.

POST /auth/rotate-key
Authorization: Bearer dca0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz01234
{
  "success": true,
  "data": {
    "new_key": "dca43210zyxwvutsrqponmlkjihgfedcba9876543210zyxwvutsrqponmlkjihgfedcba9876543210"
  }
}

Implica downtime: La key anterior se invalida de inmediato al rotar. Cualquier sistema que siga usándola empezará a recibir 401 Unauthorized hasta que se actualice con la nueva key.

POST/auth/create-key

Genera una nueva API Key para la cuenta, además de las que ya tenga activas. Se autentica con el Bearer de una API Key ya existente. No recibe payload.

POST /auth/create-key
Authorization: Bearer dca0123456789abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz01234
{
  "success": true,
  "data": {
    "new_key": "dca43210zyxwvutsrqponmlkjihgfedcba9876543210zyxwvutsrqponmlkjihgfedcba9876543210",
    "total_keys": 2
  }
}

Límite: Cada cuenta puede tener hasta 10 API Keys activas. Al intentar crear la key número 11, la API devuelve 400 Bad Request.

GET/auth/verify-key

Confirma si la API Key con la que se autenticó el request es válida y está activa, sin consumir crédito de consultas. Devuelve 200 en caso de éxito o 401 Unauthorized en caso de fallo.

GET /auth/verify-key
Authorization: Bearer dca43210zyxwvutsrqponmlkjihgfedcba9876543210zyxwvutsrqponmlkjihgfedcba9876543210
{
  "success": true
}
DELETE/auth/delete-key

Elimina la API Key con la que se autenticó el request — siempre "la key actual", no otra. No recibe payload.

DELETE /auth/delete-key
Authorization: Bearer dca43210zyxwvutsrqponmlkjihgfedcba9876543210zyxwvutsrqponmlkjihgfedcba9876543210
{
  "success": true,
  "data": {
    "remaining_keys": 1
  }
}

Restricción: No se puede eliminar una key si es la única activa en la cuenta. La API devuelve 400 Bad Request para asegurar que siempre quede al menos una key activa.

9.Entorno de Testing

Preferimos que evalues el servicio sin fricción y con acceso a todas las carácteristas de la solución, es por esto que, al solicitar tu usuario, proveemos una cuenta productiva. Una vez en producción, en caso de requerirlo, contamos con Ambiente Bajo de Testing para ser disponibilizado. El mismo se encuentra limitado a un set de patentes de prueba.

10.Rate limiting

Los límites protegen la estabilidad del servicio para todos los usuarios. Al excederlos, la API responde 429 Too Many Requests.

SOFT LIMITS

  • 5 requests por segundo
  • 100 requests por minuto

HARD LIMITS

  • Basados en el abono contratado y acuerdo comercial
  • Analizan patrones de consumo

11.Uso no permitido

Estas condiciones aplican a todas las cuentas y API Keys, independientemente del plan contratado.

  • Exponer la integración a internet sin protección
    No está permitido exponer un formulario o endpoint propio que dispare consultas a Datacar API sin proteger el request con suficientes mecanismos antibot (captcha, rate limiting propio, autenticación de usuario, etc) que desalienten la extracción no autorizada de datos.
  • Procesamiento batch o masivo
    No está permitido utilizar la API para procesar padrones o listados completos de patentes de forma masiva. Para ese uso, contactá a nuestro Equipo Comercial solicitando una cotización diferencial.
  • Compartir o revender credenciales con terceros no relacionados
    Las API Keys son intransferibles. No está permitido compartir una key ni el acceso a la cuenta con otra empresa que no forme parte del mismo grupo económico contratante.
  • Almacenamiento indebido de datos
    Los datos obtenidos no pueden ser almacenados con el objetivo de utilizarlos en otro caso de uso diferente al declarado en el momento de la contratación del servicio.

Importante: Monitoreamos activamente estas condiciones, el incumplimiento puede derivar en la suspensión o revocación de las API Keys asociadas a la cuenta.