Endpoint: SOAT de un vehículo en Perú por placa

Devuelve el SOAT (seguro obligatorio de accidentes de tránsito) de un vehículo peruano por placa, desde el registro central de las aseguradoras: si hay una póliza vigente y hasta cuándo, qué aseguradora la emitió, y el historial de pólizas con estado, vigencia, número de póliza, código único, código SBS de la aseguradora, uso y clase del vehículo, marca, modelo, asientos y tipo de certificado. Las fechas salen en ISO (YYYY-MM-DD). Una placa sin SOAT registrado es una respuesta válida y cobra. No incluye datos del asegurado.

POST/api/soat-pe1 crédito

SOAT (seguro obligatorio de accidentes de tránsito) de un vehículo peruano por placa, desde el registro central de las aseguradoras. Devuelve si hay una póliza vigente y hasta cuándo, la aseguradora que la emitió, y el histórico de pólizas (del más reciente al más viejo) con estado, vigencia (inicio y fin), número de póliza, código único, código SBS de la aseguradora, uso y clase del vehículo, marca, modelo, número de asientos y tipo de certificado. status es ok con póliza vigente, warn si solo hay historial vencido e info sin pólizas. Una placa sin SOAT registrado es una respuesta válida (certificados vacío, vigente: false) y cobra. No incluye datos del asegurado. Cuesta 1 crédito.

Cuerpo de la solicitud

body (JSON)
{
  "placa": "ABC123"
}
Parámetros del cuerpo de la solicitud
CampoTipoQué es
placaobligatoriostringPlaca peruana. Se aceptan guiones (`ABC-123`).
refreshbooleanIgnora la caché y vuelve a consultar la fuente oficial. Ojo: una consulta refrescada con datos siempre cobra (el hit de caché no).

Ejemplos por lenguaje

cURL
curl -X POST 'https://placapi.com/api/soat-pe' \
  -H 'x-api-key: pk_live_TU_CLAVE' \
  -H 'content-type: application/json' \
  -d '{"placa":"ABC123"}'
JavaScript (fetch)
const res = await fetch("https://placapi.com/api/soat-pe", {
  method: "POST",
  headers: {
    "x-api-key": "pk_live_TU_CLAVE",
    "content-type": "application/json",
  },
  body: JSON.stringify({"placa":"ABC123"}),
});
const data = await res.json();
Python (requests)
import requests

res = requests.post(
    "https://placapi.com/api/soat-pe",
    headers={"x-api-key": "pk_live_TU_CLAVE"},
    json={"placa":"ABC123"},
)
data = res.json()

Respuesta exitosa

200 OK — ejemplo (placas y documentos ficticios)
{
  "source": "soat",
  "status": "ok",
  "data": {
    "pais": "PE",
    "placa": "ABC123",
    "vigente": true,
    "vigenteHasta": "2027-07-08",
    "aseguradoraVigente": "Protecta",
    "certificados": [
      {
        "aseguradora": "Protecta",
        "estado": "VIGENTE",
        "vigenciaInicio": "2026-07-08",
        "vigenciaFin": "2027-07-08",
        "numeroPoliza": "000000000000070071834570",
        "codigoUnicoPoliza": "2090000000000000700718345701",
        "codigoSbsAseguradora": "209",
        "uso": "CARGA/TRANSPORTE",
        "clase": "CAMION",
        "marca": "HYUNDAI",
        "modelo": "EX 10",
        "asientos": 3,
        "tipoCertificado": "DIGITAL"
      }
    ]
  },
  "portalUrl": "https://www.apeseg.org.pe/consultas-soat/",
  "mode": "live",
  "fetchedAt": "2026-07-24T15:04:05.000Z",
  "cost": 1
}

Errores y cobro

Cuesta 1 crédito cuando devuelve datos. Códigos posibles: 400 401 402 404 429 500 502 — qué significa cada uno, cuál reintentar y cuál cobra, en errores y rate limits. Autenticación por x-api-key: cómo generar la clave.

Última revisión: 2 de septiembre de 2026 · PlacApi opera desde Colombia. PlacApi no es una entidad oficial del Gobierno.

Contacto