# Curitiba — Alvarás Comerciais (Business Licenses) (`guzik_andre/curitiba-alvaras-comerciais`) Actor

Consulta a Base de Alvarás de Curitiba (licença comercial/funcionamento) por bairro, atividade (CNAE) ou nome de empresa: razão social, endereço, atividade principal e secundárias. Business license registry for Curitiba, Brazil — for B2B lead generation and market mapping.

- **URL**: https://apify.com/guzik\_andre/curitiba-alvaras-comerciais.md
- **Developed by:** [Andre Guzik](https://apify.com/guzik_andre) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 resultados

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Curitiba — Alvarás Comerciais (Business Licenses)

Mapear empresas ativas em Curitiba por bairro ou ramo de atividade — pra
prospecção B2B, análise de mercado local ou verificação de fornecedor —
normalmente significa vasculhar um CSV de 544MB na mão. Este Actor consulta
a Base de Alvarás oficial da prefeitura e devolve empresa, endereço,
atividade principal (CNAE) e atividades secundárias, filtrando por bairro,
atividade ou nome — pronto pra geração de leads e mapeamento de mercado.

### O que você recebe, por empresa

- `nomeEmpresarial` / `nomeFantasia` — razão social e nome comercial
- `numeroAlvara` — número do alvará de funcionamento
- `inicioAtividade` / `dataEmissao` / `dataExpiracao` — datas ISO (`YYYY-MM-DD`)
- `endereco` / `numero` / `complemento` / `bairro` / `cep` — endereço completo
- `cnaeAtividadePrincipal` / `atividadePrincipal` — ramo principal de atividade
- `atividadesSecundarias` — lista de até 99 atividades secundárias (CNAE + descrição)

### Exemplo de saída

```json
{
  "nomeEmpresarial": "SPACECOMM MONITORAMENTO S/A",
  "nomeFantasia": "SPACECOMM MONITORAMENTO S/A",
  "numeroAlvara": "1485817",
  "inicioAtividade": "2019-10-18",
  "dataEmissao": "2020-02-21",
  "dataExpiracao": null,
  "endereco": "R. PADRE AGOSTINHO",
  "numero": "000452",
  "complemento": null,
  "bairro": "MERCÊS",
  "cep": "80410020",
  "cnaeAtividadePrincipal": "N.80.2.0-0/01-00",
  "atividadePrincipal": "ATIVIDADES DE MONITORAMENTO DE SISTEMAS DE SEGURANÇA ELETRÔNICO",
  "atividadesSecundarias": []
}
```

### Input

| Campo | Obrigatório | Descrição |
|---|---|---|
| `bairro` | Não | Filtra por bairro (busca parcial). |
| `atividadePrincipal` | Não | Filtra por termo na descrição da atividade principal. |
| `nomeEmpresarial` | Não | Filtra por nome empresarial ou fantasia (busca parcial). |
| `limite` | Não | Máximo de empresas a devolver (padrão 200, máx. 5.000). A varredura para assim que atingir o limite. |

Sem nenhum filtro, o Actor devolve as primeiras empresas do arquivo (útil
como amostra) até o `limite`.

### Fonte dos dados

Dataset **"Base de Alvarás"** do portal de dados abertos da Prefeitura de
Curitiba (`dadosabertos.curitiba.pr.gov.br`) — CSV mensal público, ~544MB,
sem login. Este Actor baixa o arquivo em streaming (nunca carrega tudo em
memória) e para a varredura assim que encontra resultados suficientes, o
que na prática corta o download antes do fim na maioria das buscas.

**Atenção ao tipo de alvará**: este é o **alvará de funcionamento**
(licença comercial, com classificação CNAE) — diferente do alvará de
**obra/construção** que o Actor `sp-alvaras-obras` cobre para São Paulo.
Curitiba não publica um relatório de obra equivalente ao Aprova Digital de
SP no seu portal de dados abertos.

### Limitações conhecidas

- O filtro `atividadePrincipal` busca só no campo de atividade *principal*
  — não varre as até 99 atividades secundárias de cada empresa.
- O arquivo mensal traz licenças ativas na data de extração — alvarás
  encerrados/cancelados antes disso não aparecem.
- Sem diferenciação de matriz/filial explícita no dado original — cada
  linha é um alvará, uma empresa com múltiplos endereços aparece mais de
  uma vez.

### Pagamento — inclusive por agente de IA (x402)

Além da cobrança normal pela sua conta Apify, este Actor aceita pagamento
via **protocolo x402**: um agente de IA pode rodar e pagar em USDC (rede
Base) **sem conta Apify, sem API key e sem aprovação humana** — recebe um
desafio HTTP 402, autoriza o pagamento a partir da própria carteira, e o
Actor roda na hora. Mesmo preço por resultado, é só mais um jeito de
pagar. Funciona tanto chamando o Actor direto pela API da Apify quanto via
MCP (`search-actors` / `call-actor`) — não precisa pré-configurar nada.

### Actors relacionados

Do mesmo desenvolvedor: **SP Alvarás de Obras — Building Permits São
Paulo** (alvará de obra, não de funcionamento), **CRF-SP**, **PROCON-SP**,
**PROCON-PR** e **ReBEC**, para outros padrões de due diligence e dados
públicos brasileiros.

# Actor input Schema

## `bairro` (type: `string`):

Filtra por bairro (busca parcial, sem diferenciar maiúsculas/minúsculas). Ex.: "Batel".

## `atividadePrincipal` (type: `string`):

Filtra por termo na descrição da atividade principal (CNAE). Ex.: "restaurante", "pintura".

## `nomeEmpresarial` (type: `string`):

Filtra por nome empresarial ou nome fantasia (busca parcial).

## `limite` (type: `integer`):

Máximo de empresas a devolver nesta execução. A varredura para assim que atingir esse número.

## Actor input object example

```json
{
  "limite": 200
}
```

# Actor output Schema

## `empresas` (type: `string`):

No description

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("guzik_andre/curitiba-alvaras-comerciais").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("guzik_andre/curitiba-alvaras-comerciais").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 '{}' |
apify call guzik_andre/curitiba-alvaras-comerciais --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,guzik_andre/curitiba-alvaras-comerciais"
        }
    }
}
```

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/pPPk5AYrPM3yBQBcf/builds/f8MmK4H4DMZIt972R/openapi.json
