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

> Browse and search public job exams (concursos) across Brazil by state, view detailed exam information, and discover related job opportunities and news updates. Stay informed with the latest headlines and find upcoming, authorized, or predicted exams.

**Category:** Government & Public Data | **Website:** [jcconcursos.com.br/](https://jcconcursos.com.br/) | **Docs:** [parse.bot/marketplace/588ed77e-de5b-44f5-ac57-afd85eeda6bc/jcconcursos-com-br-api](https://parse.bot/marketplace/588ed77e-de5b-44f5-ac57-afd85eeda6bc/jcconcursos-com-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-jcconcursos-com-br-api-588ed77e/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_concurso_detail

Get full details for a specific concurso including institution, vacancies, salary range, agenda dates, education level, and registration fee. The slug is obtained from any listing endpoint's concurso results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Concurso slug from listing results (e.g. 'concurso-aeronautica-73761'). Available in the 'slug' field of concurso listing endpoints. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jcconcursos-com-br-api-588ed77e/get_concurso_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>"}'
```

### get_empregos_listing

Get private-sector job and internship listings. Returns paginated results with company names, vacancies, and related news.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jcconcursos-com-br-api-588ed77e/get_empregos_listing \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### get_latest_news_headlines

Extract news article headlines and links from the homepage. Returns up to 20 headlines with their titles and URLs. Useful for monitoring newly published concurso news without loading full articles.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jcconcursos-com-br-api-588ed77e/get_latest_news_headlines \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### get_news_article

Get the full content of a news article including headline, subtitle, and body text. The slug is extracted from headline URLs or news listing results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | News article slug (e.g. 'concurso-fundacao-florestal-sp-edital-143206'). Available from headline URLs or news listing results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jcconcursos-com-br-api-588ed77e/get_news_article \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>"}'
```

### get_news_listing

Get a paginated list of latest concursos news articles with title, summary, author, publication date, and thumbnail URL.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jcconcursos-com-br-api-588ed77e/get_news_listing \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### get_ongoing_concursos

Get in-progress public exam listings. Returns concursos currently in examination phases (proofs, results, etc.) with optional state filtering.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `state` | string | No | Brazilian state abbreviation to filter results (e.g. 'sp', 'rj', 'mg'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jcconcursos-com-br-api-588ed77e/get_ongoing_concursos \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","state":"<string>"}'
```

### get_open_concursos

Get currently open public exam listings with optional state filter. Returns paginated concurso listings including status, vacancies, salary, institution, and related news links. Each concurso carries a slug for drilling into details via get_concurso_detail.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `state` | string | No | Brazilian state abbreviation to filter results (e.g. 'sp', 'rj', 'mg'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jcconcursos-com-br-api-588ed77e/get_open_concursos \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","state":"<string>"}'
```

### get_open_concursos_by_state

Get open concursos filtered by a required state parameter. Returns aggregate stats per state alongside the listings. Same response shape as get_open_concursos but state is mandatory, guaranteeing state-specific statistics.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `state` | string | Yes | Brazilian state abbreviation (e.g. 'sp', 'rj', 'mg'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jcconcursos-com-br-api-588ed77e/get_open_concursos_by_state \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","state":"<string>"}'
```

### get_predicted_concursos

Get predicted/upcoming public exam listings. Returns paginated concursos that are expected to open in the future, with optional state filtering.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `state` | string | No | Brazilian state abbreviation to filter results (e.g. 'sp', 'rj', 'mg'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jcconcursos-com-br-api-588ed77e/get_predicted_concursos \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","state":"<string>"}'
```

### search_concursos

Generate a search URL for concursos and news matching a query. The site uses Google Custom Search Engine, so this endpoint returns the constructed search URL rather than extracted results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Search keyword (e.g. 'policia', 'enfermeiro'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jcconcursos-com-br-api-588ed77e/search_concursos \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"<string>"}'
```
