# Obras Públicas do Brasil API - Consulta por UF (`brasildados/obras-publicas-brasil-api`) Actor

Consulte obras públicas e projetos de infraestrutura no Brasil por UF e situação. Encontre projetos em execução, paralisados ou concluídos, com município, órgão responsável, valores, datas, execução física e geolocalização. Retorno em JSON via Batch ou Standby.

- **URL**: https://apify.com/brasildados/obras-publicas-brasil-api.md
- **Developed by:** [BrasilDados.org](https://apify.com/brasildados) (community)
- **Categories:** Real estate, Integrations, Automation
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $100.00 / 1,000 por obra listadas

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🏗️ Obras Públicas do Brasil API — Consulta Obras por UF e Situação

Consulte **obras públicas no Brasil** e projetos de infraestrutura por estado, município e situação. Esta API de obras públicas retorna projetos em execução, paralisados, concluídos, inacabados, cancelados ou cadastrados, com dados de investimento, órgãos responsáveis, executores, datas, localização e andamento da obra.

Ideal para inteligência de mercado, fornecedores da construção civil, acompanhamento de obras públicas, controle social, jornalismo de dados, pesquisas de infraestrutura e prospecção B2G.

### 🔎 O que você encontra

- Obras públicas e projetos de infraestrutura em todo o Brasil.
- Filtros por uma ou várias UFs e situação da obra.
- Nome, descrição, endereço, CEP, órgão responsável e CNPJ público do órgão.
- Datas previstas e efetivas, população beneficiada e empregos gerados.
- Repassadores, tomadores, executores, fontes de investimento, PPAs e eixos do projeto.
- Coordenadas geográficas e áreas de restrição quando disponíveis.
- JSON organizado para planilhas, BI, CRM, automações e integrações.

### ⚙️ Como consultar obras públicas

Todos os campos são opcionais. Sem filtros, a consulta retorna projetos de todo o Brasil. O formulário já vem preenchido com uma busca simples por obras em execução.

```json
{
  "busca": "construção",
  "ufs": ["SP","RJ"],
  "situacoes": ["Em execução"],
  "naturezas": ["Obra","Projeto"],
  "maxResultados": 100
}
```

| Campo | Obrigatório | Descrição |
|---|:---:|---|
| `busca` | Não | Palavra-chave no nome e na descrição da obra. Exemplos: `construção`, `pavimentação`, `creche`, `hospital`, `ponte` ou `escola`. |
| `ufs` | Não | Uma ou mais UFs. Omitido ou vazio consulta todas as UFs. |
| `situacoes` | Não | `Cadastrada`, `Cancelada`, `Concluída`, `Em execução`, `Inacabada` ou `Paralisada`. |
| `naturezas` | Não | Tipo de intervenção: `Obra`, `Projeto`, `Estudo` ou `Outros`. |
| `anoCadastro` | Não | Ano em que o projeto foi cadastrado, de 2000 a 2100. |
| `maxResultados` | Não | Máximo de 1 a 1000 projetos. O padrão é 100. |

#### Exemplos de filtros

```json
{"busca":"ponte","ufs":["SC"],"situacoes":["Paralisada"],"naturezas":["Obra"],"anoCadastro":2025,"maxResultados":50}
```

```json
{"busca":"creche","ufs":["BA","PE","CE"],"situacoes":["Em execução","Concluída"],"naturezas":["Obra","Projeto"],"anoCadastro":2024,"maxResultados":200}
```

### 📦 Dados retornados

Cada item é uma obra pública ou projeto de investimento. Campos sem informação na fonte retornam `null`.

| Grupo | Campos principais |
|---|---|
| Identificação | `idProjeto`, `nomeProjeto`, `situacao`, `uf`, `municipio`, `cep`, `endereco` |
| Obra | `descricao`, `funcaoSocial`, `metaGlobal`, `naturezaIntervencao`, `especieIntervencao`, `projetoEstruturante` |
| Responsáveis | `orgaoResponsavel`, `cnpjOrgaoResponsavel`, `sistemaResponsavel`, `repassadores`, `tomadores`, `executores` |
| Valores e impacto | `investimentos`, `populacaoBeneficiada`, `descricaoPopulacaoBeneficiada`, `empregosGerados` |
| Prazos | `inicioPrevisto`, `fimPrevisto`, `inicioEfetivo`, `fimEfetivo`, `cadastradoEm`, `atualizadoEm` |
| Planejamento | `possuiEstudoViabilidade`, `usaBim`, `ppas`, `eixos`, `areasRestricao` |
| Localização | `latitude`, `longitude` |

#### Exemplo de resultado

```json
{
  "idProjeto": "34863.31-06",
  "nomeProjeto": "Obra de Implantação do Campus Iturama - 3ª Etapa",
  "situacao": "Concluída",
  "uf": "MG",
  "municipio": null,
  "cep": "38280-000",
  "endereco": "Av. Antônio Baiano, nº 150, Iturama-MG",
  "descricao": "Construção de edifício para salas de aula, laboratório e área de convivência.",
  "funcaoSocial": "Ensino, pesquisa e extensão.",
  "metaGlobal": "Implantação do Campus Iturama.",
  "naturezaIntervencao": "Obra",
  "especieIntervencao": "Construção",
  "projetoEstruturante": null,
  "orgaoResponsavel": "UNIVERSIDADE FEDERAL DO TRIÂNGULO MINEIRO",
  "cnpjOrgaoResponsavel": null,
  "sistemaResponsavel": "CIPI",
  "possuiEstudoViabilidade": "SIM",
  "populacaoBeneficiada": null,
  "descricaoPopulacaoBeneficiada": null,
  "empregosGerados": null,
  "usaBim": false,
  "inicioPrevisto": "2020-02-03",
  "fimPrevisto": "2021-01-29",
  "inicioEfetivo": null,
  "fimEfetivo": null,
  "cadastradoEm": "2024-02-29",
  "atualizadoEm": null,
  "observacoes": null,
  "latitude": -19.7402700113265,
  "longitude": -50.17944,
  "repassadores": [{"nome":"MINISTÉRIO DA EDUCAÇÃO","cnpj":null}],
  "tomadores": [{"nome":"UNIVERSIDADE FEDERAL DO TRIÂNGULO MINEIRO","cnpj":null}],
  "executores": [{"nome":"UNIVERSIDADE FEDERAL DO TRIÂNGULO MINEIRO","cnpj":null}],
  "investimentos": [{"valor":1362715.25,"fonte":"Federal"}],
  "ppas": [{"tipo":"Federal","descricao":"PPA 2020-2023 - Programa 5013 - Educação Superior"}],
  "eixos": [{"eixo":"Social","tipo":"Educação","subtipo":"Educação"}],
  "areasRestricao": []
}
```

### 🚀 API Batch e Standby

#### Batch — consultas, exportações e automações

Use Batch para resultados maiores, exportação em JSON/CSV/Excel e execuções agendadas. A chamada abaixo aguarda a execução e devolve diretamente os itens do Dataset.

```bash
curl -X POST "https://api.apify.com/v2/acts/brasildados~obras-publicas-brasil-api/run-sync-get-dataset-items" \
  -H "Authorization: Bearer SEU_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"busca":"construção","ufs":["SP","RJ"],"situacoes":["Em execução"],"naturezas":["Obra","Projeto"],"maxResultados":100}'
```

Para integrações que precisam apenas do JSON final, este é o endpoint recomendado. Para agendamentos ou controle do ciclo de vida do run, use a execução tradicional na Console ou a API de runs da Apify e leia o Dataset ao final.

#### Standby — consulta de obras públicas em tempo real

Use o endpoint Standby quando precisar receber o JSON diretamente na resposta HTTP.

```bash
curl -X POST "https://brasildados--obras-publicas-brasil-api.apify.actor/obras" \
  -H "Authorization: Bearer SEU_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"busca":"hospital","ufs":["MG"],"situacoes":["Concluída"],"naturezas":["Obra"],"anoCadastro":2025,"maxResultados":10}'
```

Nunca envie seu token no corpo da requisição ou em URLs compartilhadas.

### 💳 Cobrança por obra retornada

O Actor usa Pay per event. O evento `obra-publica-encontrada` é cobrado **uma vez para cada obra ou projeto efetivamente entregue** no Dataset ou na resposta Standby. Consultas sem resultados não geram cobrança.

### ℹ️ Fonte, atualização e limitações

Os dados são públicos, auditáveis e atualizados pelos órgãos gestores responsáveis pelos projetos. A disponibilidade e o preenchimento dos campos podem variar por obra; por isso, valores `null` indicam que aquela informação não foi disponibilizada na fonte.

### 🔗 Outros Actors BrasilDados

- [CNO — Cadastro Nacional de Obras API](https://apify.com/brasildados/cno-cadastro-nacional-de-obras-api?fpr=t5lwzq)
- [Consulta de Contratos do Governo por CNPJ](https://apify.com/brasildados/consulta-contratos-governo-cnpj?fpr=t5lwzq)
- [BrasilDados no Apify](https://apify.com/brasildados?fpr=t5lwzq)

# Actor input Schema

## `busca` (type: `string`):

Opcional. Pesquise palavras do nome da obra, por exemplo: construção, pavimentação, creche, ponte, hospital ou escola.

## `ufs` (type: `array`):

Opcional. Selecione um ou mais estados; vazio retorna todo o Brasil.

## `situacoes` (type: `array`):

Opcional. Filtra por situação do projeto.

## `naturezas` (type: `array`):

Opcional. Selecione o tipo de item que deseja consultar.

## `anoCadastro` (type: `integer`):

Opcional. Retorna projetos cadastrados no ano informado.

## `maxResultados` (type: `integer`):

Quantidade máxima de obras retornadas.

## Actor input object example

```json
{
  "busca": "construção",
  "ufs": [
    "SP",
    "RJ"
  ],
  "situacoes": [
    "Em execução"
  ],
  "naturezas": [
    "Obra",
    "Projeto"
  ],
  "anoCadastro": 2025,
  "maxResultados": 100
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset com uma linha para cada obra civil encontrada.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "busca": "construção",
    "ufs": [
        "SP",
        "RJ"
    ],
    "situacoes": [
        "Em execução"
    ],
    "naturezas": [
        "Obra",
        "Projeto"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("brasildados/obras-publicas-brasil-api").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "busca": "construção",
    "ufs": [
        "SP",
        "RJ",
    ],
    "situacoes": ["Em execução"],
    "naturezas": [
        "Obra",
        "Projeto",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("brasildados/obras-publicas-brasil-api").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "busca": "construção",
  "ufs": [
    "SP",
    "RJ"
  ],
  "situacoes": [
    "Em execução"
  ],
  "naturezas": [
    "Obra",
    "Projeto"
  ]
}' |
apify call brasildados/obras-publicas-brasil-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,brasildados/obras-publicas-brasil-api"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/cUNzM5OdDITE0vATH/builds/orlIPlhuxmEgAW64o/openapi.json
