> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usecroma.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Registros Públicos SUNARP

> Busque nos Registros Públicos do Peru (SUNARP) por partida, placa ou ficha, e leia os asientos de uma partida com cada página em PDF.

A SUNARP (Superintendencia Nacional de los Registros Públicos) mantém os
Registros Públicos do Peru: imóveis, veículos, empresas, pessoas, mineração,
embarcações e aeronaves. Cada bem ou entidade registrada tem uma partida, o
registro que reúne seus asientos. Busque no registro de um cartório por partida,
placa ou ficha e depois leia os asientos de uma partida com cada página em PDF.

## Conecte sua conta

A SUNARP só responde a uma pessoa com sessão iniciada: um DNI peruano, com o dígito verificador e a data de emissão impressos no cartão. Cada consulta roda com a conexão própria da sua organização, então registre uma antes da sua primeira consulta. A SUNARP permite a cada DNI cinco logins por dia; a Croma mantém cada sessão aberta enquanto a SUNARP permitir, então cinco logins cobrem muitas consultas.

`POST /pe/sunarp/connections/v1` Registre uma conexão uma vez. A Croma a verifica com a fonte antes de salvá-la e responde com seu id e um nome mascarado.

| Campo | Tipo | Notas |
| - | - | - |
| `document_number` | string | **Obrigatório.** The DNI of the person whose account this is: eight digits. |
| `check_digit` | string | **Obrigatório.** The verification digit printed after the DNI number on the card. |
| `issue_date` | string | **Obrigatório.** The issue date printed on the DNI card, `yyyy-mm-dd`. |
| `authorized` | boolean | **Obrigatório.** `true`: você confirma que é o titular da conta ou que tem a autorização do titular para usá-la. |

```bash theme={"dark"}
curl https://api.croma.run/pe/sunarp/connections/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "document_number": "12345678",
        "check_digit": "1",
        "issue_date": "2020-01-01",
        "authorized": true
      }'
```

```json theme={"dark"}
{
  "data": {
    "id": "conn_2f8Kq1xVb7Lm0Pz9Rt4Wc3",
    "source": "sunarp",
    "status": "active",
    "display_name": "J*** P*** G***",
    "usage": {
      "sign_ins_today": 1,
      "daily_limit": 5,
      "resets_at": "2026-10-01T05:00:00.000Z"
    },
    "available_again_at": null,
    "created_at": "2026-09-30T20:00:00.000Z",
    "last_used_at": "2026-09-30T20:00:00.000Z"
  }
}
```

A partir daí, cada consulta roda como uma das conexões da sua organização. A Croma escolhe uma, mantém sua sessão aberta entre as consultas e passa para a próxima quando uma atinge sua cota diária (5 logins por dia, reinicia à meia-noite, America/Lima). Registre mais de uma para ter mais capacidade por dia. Para usar uma específica, envie seu id como `connection_id`.

Como o fluxo funciona, passo a passo: [Conexões](/pt/connections).

Liste e exclua:

```bash theme={"dark"}
curl https://api.croma.run/pe/sunarp/connections/v1 -H "Authorization: Bearer $CROMA_API_KEY"
curl -X DELETE https://api.croma.run/pe/sunarp/connections/v1/conn_2f8Kq1xVb7Lm0Pz9Rt4Wc3 -H "Authorization: Bearer $CROMA_API_KEY"
```

Por [MCP](/pt/mcp-server), os mesmos verbos são as ferramentas `sunarp_connect`, `sunarp_list_connections`, `sunarp_delete_connection`, assim um agente pode conectar a conta do usuário na conversa.

Quando uma consulta não pode rodar com nenhuma conexão:

| Status | Código | Significado |
| - | - | - |
| 409 | `connection_required` | A organização ainda não tem uma conexão para esta fonte. |
| 422 | `connection_rejected` | A fonte não aceita mais as credenciais da conexão. |
| 429 | `connections_exhausted` | Todas as conexões usaram sua cota diária. `Retry-After` indica quando uma volta a estar disponível. |
| 409 | `connection_exists` | A mesma conta já está conectada (ao registrar). |
| 422 | `connection_limit_reached` | A organização já tem 5 conexões para esta fonte (ao registrar). |

<Note>
  As credenciais são criptografadas assim que chegam à Croma, ficam vinculadas à sua organização e só podem ser abertas pelo serviço isolado que faz login na fonte em seu nome. A API nunca as devolve nem as mostra a ninguém. Excluir uma conexão a destrói permanentemente.
</Note>

## Busca de partidas

`POST /pe/sunarp/registry-search/v1`

| Campo | Tipo | Notas |
| - | - | - |
| `office` | string | **Obrigatório.** O cartório de registro pelo nome, p. ex. `LIMA`, `AREQUIPA`, `CUSCO`. Maiúsculas e acentos são ignorados. |
| `registry_area` | enum | **Obrigatório.** `real_estate`, `non_land_property`, `legal_entities`, `natural_persons`, `vehicles`, `mining`, `vessels` ou `aircraft`. |
| `search_by` | enum | `partida`, `plate` para veículos ou `ficha` para os demais registros. Por padrão `partida`. |
| `number` | string | **Obrigatório.** A partida, placa ou ficha. Uma partida que começa com P se escreve `P12345678`. |
| `connection_id` | string | Optional. Run as this connection (`conn_…`). Empty lets Croma pick among your organization's connections, moving to the next one when one reaches its daily allowance. |

```bash theme={"dark"}
curl https://api.croma.run/pe/sunarp/registry-search/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "office": "LIMA",
        "registry_area": "vehicles",
        "search_by": "plate",
        "number": "ABC123"
      }'
```

## Resposta

| Campo | Notas |
| - | - |
| `found` | `false` quando o cartório não tem partida com esse número. |
| `office` | O cartório consultado, como a SUNARP o nomeia. |
| `registry_area`, `search_by`, `number` | Repetem a solicitação (o número em maiúsculas, sem espaços nem hifens). |
| `count` | Quantidade de partidas retornadas. |
| `theft_alert` | Aviso de veículo roubado que a SUNARP anexa ao resultado, ou `null`. |
| `entries[]` | As partidas encontradas (abaixo). |

Cada partida tem `registry_zone`, `office`, `partida_number` (passe-o ao endpoint de partida), `status` (`open`, `closed`, `extinguished`, ou `null` em partidas veiculares), `moved_to_partida` (o número a buscar quando a SUNARP renumerou a partida), `plate` e `vehicle_status` (só veículos), e `ficha_number`, `volume`, `folio`, `book` e `registry` quando a partida vem de fichas ou livros anteriores.

```json theme={"dark"}
{
  "data": {
    "found": true,
    "office": "LIMA",
    "registry_area": "vehicles",
    "search_by": "plate",
    "number": "ABC123",
    "count": 1,
    "theft_alert": null,
    "entries": [
      {
        "registry_zone": "ZONA REGISTRAL IX - SEDE LIMA",
        "office": "LIMA",
        "partida_number": "12345678",
        "status": null,
        "moved_to_partida": null,
        "plate": "ABC123",
        "vehicle_status": "En Circulación",
        "ficha_number": null,
        "volume": null,
        "folio": null,
        "book": null,
        "registry": null
      }
    ]
  }
}
```

<Note>
  As partidas mudam pouco, então uma resposta pode ter até 30 dias. Depois
  desse prazo, uma nova consulta a lê novamente.
</Note>

<Note>
  Esta consulta pode demorar mais que uma solicitação típica. É um
  [trabalho assíncrono](/pt/async-jobs). Por padrão, a solicitação espera de forma síncrona e
  retorna `{ data }`, ou você pode fazer polling / usar um `callback_url`.
</Note>

## Partida registral

`POST /pe/sunarp/registry-entry/v1`

| Campo | Tipo | Notas |
| - | - | - |
| `office` | string | **Obrigatório.** O cartório de registro pelo nome, como na busca. |
| `registry_area` | enum | **Obrigatório.** O registro ao qual a partida pertence, como na busca. |
| `partida_number` | string | **Obrigatório.** O número da partida de um resultado de busca. |
| `connection_id` | string | Optional. Run as this connection (`conn_…`). Empty lets Croma pick among your organization's connections, moving to the next one when one reaches its daily allowance. |

```bash theme={"dark"}
curl https://api.croma.run/pe/sunarp/registry-entry/v1 \
  -H "Authorization: Bearer $CROMA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "office": "LIMA",
        "registry_area": "real_estate",
        "partida_number": "12345678"
      }'
```

## Resposta

| Campo | Notas |
| - | - |
| `found` | `false` quando o cartório não tem essa partida nesse registro. |
| `registry_zone`, `status`, `plate`, `vehicle_status` | Como na busca. |
| `has_images` | `false` quando a SUNARP não mostra páginas da partida. Partidas veiculares não são mostradas. |
| `page_count` | Páginas retornadas. |
| `pages_truncated` | `true` quando a partida tem mais páginas do que uma consulta retorna. |
| `inscriptions[]` | Cada asiento, do mais recente ao mais antigo: `number`, `act`, `registered_at`, `title_number`, `year`, `section` e `section_name` (rubro), e suas `pages[]`. |
| `cards[]` | Fichas anteriores das quais a partida continua, com suas `pages[]`. |
| `folios[]` | Tomos e folhas (`volume`, `folio`) dos quais a partida continua. |
| `checked_at` | Quando a SUNARP foi lida. |

O `document_url` de cada página é a nossa cópia do PDF que a SUNARP serve, idêntica byte a byte, e continua disponível depois da consulta.

```json theme={"dark"}
{
  "data": {
    "found": true,
    "office": "LIMA",
    "registry_area": "real_estate",
    "partida_number": "12345678",
    "registry_zone": "ZONA REGISTRAL IX - SEDE LIMA",
    "status": "open",
    "plate": null,
    "vehicle_status": null,
    "has_images": true,
    "moved_to_partida": null,
    "page_count": 3,
    "pages_truncated": false,
    "inscriptions": [
      {
        "number": "7",
        "act": "COMPRA VENTA  ( PROPIEDAD )",
        "registered_at": "2024-08-23T15:30",
        "title_number": "02440831",
        "year": "2024",
        "section": null,
        "section_name": null,
        "pages": [
          { "page": 1, "document_url": "https://.../sunarp/registry-entries/.../7-1.pdf" }
        ]
      }
    ],
    "cards": [
      { "ficha_number": "0001234567", "pages": [{ "page": 1, "document_url": "https://.../cards/0001234567-1.pdf" }] }
    ],
    "folios": [
      { "volume": "001926", "folio": "000304", "document_url": "https://.../folios/001926-000304.pdf" }
    ],
    "checked_at": "2026-09-30T20:00:00.000Z"
  }
}
```

<Note>
  As partidas mudam pouco, então uma resposta pode ter até 30 dias. Depois
  desse prazo, uma nova consulta a lê novamente.
</Note>

<Note>
  Esta consulta pode demorar mais que uma solicitação típica. É um
  [trabalho assíncrono](/pt/async-jobs). Por padrão, a solicitação espera de forma síncrona e
  retorna `{ data }`, ou você pode fazer polling / usar um `callback_url`.
</Note>

<Card title="Referência completa" icon="code" href="/pt/api-reference/overview">
  Esquemas, todos os campos de resposta e um playground interativo.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.