# Pncp — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and retrieve detailed information about Brazil's public procurement contracts, including bidding results, price registries, and annual contracting plans from the official PNCP portal. Monitor government procurement activities by looking up specific contracts, procurement processes, and procurement records all in one place.

**Category:** Government & Public Data | **Website:** [pncp.gov.br/](https://pncp.gov.br/) | **Docs:** [parse.bot/marketplace/dc9ac4c6-6d08-4860-8a07-5a478dffc295/pncp-gov-br-api](https://parse.bot/marketplace/dc9ac4c6-6d08-4860-8a07-5a478dffc295/pncp-gov-br-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-pncp-gov-br-api-dc9ac4c6/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_contratacao_detail

Retrieve full details of a single procurement process (contratação/compra). Requires the organization CNPJ, year, and sequential number obtainable from search_contratacoes results (sequencialCompra field). Returns comprehensive procurement data including proposal dates, legal basis, and funding sources.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `ano` | string | Yes | Year of the procurement (e.g. 2025). |
| `cnpj` | string | Yes | CNPJ of the organization (e.g. 01065846000172). |
| `sequencial` | string | Yes | Sequential number of the procurement (e.g. 369). Obtainable from search_contratacoes results as sequencialCompra. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pncp-gov-br-api-dc9ac4c6/get_contratacao_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ano":"<string>","cnpj":"<string>","sequencial":"<string>"}'
```

### search_all

Flexible search across all document types (edital, ata, contrato, pcaorgao) using keywords and filters. Results are ordered by most recent. Requires a status filter.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `pagina` | integer | No | Page number. |
| `query` | string | No | Search keyword. |
| `status` | string | Yes | Filter by status. Accepted values: vigente, encerrado, todos, divulgada, revogada, anulada, suspensa, encerrada. |
| `tam_pagina` | integer | No | Results per page. |
| `tipo_documento` | string | No | Document type to filter by. Accepted values: edital, ata, contrato, pcaorgao. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pncp-gov-br-api-dc9ac4c6/search_all \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pagina":"<integer>","query":"<string>","status":"<string>","tam_pagina":"<integer>","tipo_documento":"<string>"}'
```

### search_atas

Search for Price Registration records (Atas de Registro de Preços) by validity start/end period. Returns paginated results including organization, validity dates, and procurement object.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `data_final` | string | Yes | End date in YYYYMMDD format (e.g. 20250605). |
| `data_inicial` | string | Yes | Start date in YYYYMMDD format (e.g. 20250601). |
| `pagina` | integer | No | Page number. |
| `tamanho_pagina` | integer | No | Results per page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pncp-gov-br-api-dc9ac4c6/search_atas \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"data_final":"<string>","data_inicial":"<string>","pagina":"<integer>","tamanho_pagina":"<integer>"}'
```

### search_contratacoes

Search for procurement processes (contratações) by publication date range and modality. Returns paginated results with organization, estimated/approved values, and legal basis.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `data_final` | string | Yes | End date in YYYYMMDD format (e.g. 20250605). |
| `data_inicial` | string | Yes | Start date in YYYYMMDD format (e.g. 20250601). |
| `modalidade` | integer | Yes | Procurement modality code. Known values: 1 (Leilão - Eletrônico), 2 (Diálogo Competitivo), 3 (Concurso), 4 (Concorrência - Eletrônica), 5 (Concorrência - Presencial), 6 (Pregão - Eletrônico), 7 (Pregão - Presencial), 8 (Dispensa), 9 (Inexigibilidade), 12 (Credenciamento), 13 (Pré-qualificação). |
| `pagina` | integer | No | Page number. |
| `tamanho_pagina` | integer | No | Results per page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pncp-gov-br-api-dc9ac4c6/search_contratacoes \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"data_final":"<string>","data_inicial":"<string>","modalidade":"<integer>","pagina":"<integer>","tamanho_pagina":"<integer>"}'
```

### search_contratos

Search for signed contracts (contratos/empenhos) by publication date range. Returns paginated results with contractor, values, and organization details. Page size is restricted by the upstream API to 10, 20, or 50.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `data_final` | string | Yes | End date in YYYYMMDD format (e.g. 20250605). |
| `data_inicial` | string | Yes | Start date in YYYYMMDD format (e.g. 20250601). |
| `pagina` | integer | No | Page number. |
| `tamanho_pagina` | integer | No | Results per page. Accepted values: 10, 20, 50. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pncp-gov-br-api-dc9ac4c6/search_contratos \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"data_final":"<string>","data_inicial":"<string>","pagina":"<integer>","tamanho_pagina":"<integer>"}'
```

### search_pca

Search for Annual Contracting Plans (PCA) records. Returns organization-level PCA data ordered by most recent update. Note: date parameters are accepted but filtering is performed by the search index ordering, not strict date range filtering.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `data_final` | string | Yes | End date in YYYYMMDD format (e.g. 20250210). |
| `data_inicial` | string | Yes | Start date in YYYYMMDD format (e.g. 20250201). |
| `pagina` | integer | No | Page number. |
| `tamanho_pagina` | integer | No | Results per page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-pncp-gov-br-api-dc9ac4c6/search_pca \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"data_final":"<string>","data_inicial":"<string>","pagina":"<integer>","tamanho_pagina":"<integer>"}'
```
