Endpoint: pico y placa por placa y ciudad

Con la placa y la ciudad responde si el vehículo tiene restricción hoy y mañana, qué dígitos están restringidos y en qué horario. Distingue carro de moto, porque no todas las ciudades miran el mismo dígito de la placa para cada uno.

POST/api/pico-y-placa1 crédito

Restricción de pico y placa por ubicación y tipo de vehículo. Filtra por ciudad o por lat/lng (geolocaliza la ciudad; manda sobre ciudad). tipoVehiculo = carro (default) o moto. Qué dígito de la placa se evalúa lo fija el decreto de cada ciudad y viene en digitoPlaca: por defecto el último para carro y el primero para moto, pero no en todas: varias ciudades restringen también la moto por el último, así que hay que leer digitoPlaca en vez de asumir la regla. La placa es opcional: con placa indica si aplica hoy/mañana; sin placa devuelve qué dígitos restringen. Sin ubicación devuelve todas las ciudades monitoreadas. En festivo nacional no hay pico y placa en ninguna ciudad: digitosHoy sale vacío, hoyAplica en false y el bloque festivo trae el nombre del día. También viene incluido en consulta-full, con el mismo filtro por ubicación y el tipo de vehículo detectado solo desde el RUNT. Placa blanca: los vehículos de servicio público no reciben el pico y placa de particulares. Si no envías tipoVehiculo, el tipo se resuelve solo con la placa —primero con lo que ya sabemos del vehículo, y si hace falta consultando el registro—; deteccionServicio dice de dónde salió y vale no_determinado cuando no se pudo saber y se asumió carro.

Para qué sirve, quién lo usa y cuánto cuesta: API pico y placa.

Cuerpo de la solicitud

body (JSON)
{
  "ciudad": "Bogotá",
  "placa": "ABC123"
}
Parámetros del cuerpo de la solicitud
CampoTipoQué es
ciudadstringCiudad a consultar (ej. Bogotá).
latnumberLatitud; requiere lng. Geolocaliza la ciudad y manda sobre `ciudad`.
lngnumberLongitud; requiere lat.
placastringPlaca; agrega hoyAplica/manianaAplica.
tipoVehiculostringcarro | moto | taxi | publico. El dígito que se evalúa lo decide cada ciudad y se devuelve en `digitoPlaca`. taxi y publico (placa blanca) no tienen reglas cargadas en ninguna ciudad: devuelven tienePicoYPlaca:false con el motivo en `nota`. Si no lo envías se deriva de `clase` y `servicio`; sin ninguno de los tres, carro.
serviciostringServicio del RUNT (Particular | Público | Oficial | Diplomático). Con Público el vehículo se evalúa como placa blanca. Este endpoint no consulta el RUNT, así que es la única forma de decírselo.
clasestringClase del RUNT (AUTOMOVIL, BUS, MOTOCICLETA…). Junto con `servicio` decide el tipo: en servicio público, AUTOMOVIL/CAMIONETA/CAMPERO son taxi y el resto publico.

Ejemplos por lenguaje

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

res = requests.post(
    "https://placapi.com/api/pico-y-placa",
    headers={"x-api-key": "pk_live_TU_CLAVE"},
    json={"ciudad":"Bogotá","placa":"ABC123"},
)
data = res.json()

Respuesta exitosa

200 OK — ejemplo (placas y documentos ficticios)
{
  "source": "pico-y-placa",
  "status": "ok",
  "ubicacion": {
    "matched": true,
    "source": "ciudad",
    "consulta": {
      "ciudad": "Bogotá"
    },
    "ciudad": "Bogotá",
    "departamento": "Bogotá D.C."
  },
  "festivo": {
    "hoy": null,
    "maniana": null
  },
  "deteccionServicio": "bd",
  "data": [
    {
      "ciudad": "Bogotá",
      "departamento": "Bogotá D.C.",
      "tipoVehiculo": "carro",
      "digitoPlaca": "ultimo",
      "tienePicoYPlaca": true,
      "esquema": "parImpar",
      "hoyAplica": false,
      "manianaAplica": true,
      "digitosHoy": [
        1,
        2,
        3,
        4,
        5
      ],
      "digitosManiana": [
        6,
        7,
        8,
        9,
        0
      ],
      "diasSemana": [],
      "horarios": "L–V, 6:00–21:00",
      "nota": null,
      "vigencia": "Vigente en julio de 2026",
      "fuente": "https://www.movilidadbogota.gov.co/pico-y-placa"
    }
  ],
  "mode": "live",
  "fetchedAt": "2026-07-24T15:04:05.000Z"
}

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: 20 de agosto de 2026 · PlacApi opera desde Colombia. PlacApi no es una entidad oficial del Gobierno.

Contacto