Chapi

POST /api/rut-to-name

Devuelve los datos asociados a un RUT (nombre completo y RUT canónico).

Headers requeridos

HeaderValor
AuthorizationToken <token> (si no usas cookie auth)
Content-Typeapplication/json

Request body

CampoTipoRequeridoDescripción
rutstringRUT a consultar. Patrón: \d{1,2}\.?\d{3}\.?\d{3}-[\dkK]$. Ver Convenciones.

Ejemplo válido

{ "rut": "12345678-5" }

Respuestas

200 OK

Devuelve un array de coincidencias. Schema: RUT[].

[
  { "rut": "12345678-5", "full_name": "Juan Pérez González" }
]

RUT

CampoTipoDescripción
rutstring (read-only)RUT en formato canónico.
full_namestring nullable (≤ 255)Nombre completo asociado. Puede ser null.
Nota. La respuesta es una lista. Aunque un RUT identifica a una única persona o empresa, el shape array permite contemplar casos en que existan registros con el mismo RUT en diferentes fuentes. En la práctica esperarás 0 o 1 elementos.

Errores

CódigomessageCausa
400Invalid RUTRUT inválido o ausente.
402Insufficient balanceSaldo insuficiente.
404No data foundSin coincidencias para ese RUT.

Ejemplos

curl

curl -X POST https://app.chapi.cl/api/rut-to-name \
  -H "Authorization: Token TU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"rut": "12345678-5"}'

Python (requests)

import requests

def rut_to_name(rut: str, token: str) -> str | None:
    r = requests.post(
        "https://app.chapi.cl/api/rut-to-name",
        headers={"Authorization": f"Token {token}"},
        json={"rut": rut},
        timeout=30,
    )
    if r.status_code == 404:
        return None
    r.raise_for_status()
    matches = r.json()
    return matches[0]["full_name"] if matches else None

print(rut_to_name("12345678-5", "TU_TOKEN"))

JavaScript (fetch)

const resp = await fetch("https://app.chapi.cl/api/rut-to-name", {
  method: "POST",
  headers: {
    "Authorization": "Token TU_TOKEN",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ rut: "12345678-5" }),
});
if (resp.status === 404) {
  console.log("Sin coincidencias.");
} else if (!resp.ok) {
  throw new Error(`HTTP ${resp.status}`);
} else {
  const matches = await resp.json();
  console.log(matches[0]?.full_name ?? "—");
}