# Qconcursos — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.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 explore thousands of Brazilian public exam questions filtered by discipline, examining board, and subject to help prepare for concursos. Access detailed information about specific questions and browse the complete catalog of available exam topics and institutions.

**Category:** Education | **Website:** [www.qconcursos.com/questoes-de-concursos/questoes](https://www.qconcursos.com/questoes-de-concursos/questoes) | **Docs:** [parse.bot/marketplace/fbc8408d-a2ba-405f-ab4b-0d2e17ffe363/qconcursos-com-api](https://parse.bot/marketplace/fbc8408d-a2ba-405f-ab4b-0d2e17ffe363/qconcursos-com-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/qconcursos/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Get question

Get details of a single exam question by its unique slug identifier. Returns the full question including enunciation, alternatives, metadata (year, banca, institution, exam), and answer when publicly available.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `slug` | string | Yes | Question slug identifier (e.g. '10131b30-79'). Obtained from search_questions results. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/qconcursos/get-question \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"slug":"<string>"}'
```

### List disciplines

List all available disciplines (subject areas) that can be used to filter questions. Each discipline has an ID and a name in Portuguese.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/qconcursos/list-disciplines \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### List examining boards

List all available examining boards (bancas) that can be used to filter questions. Each board has an ID, acronym, and full name.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/qconcursos/list-examining-boards \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### List subjects

List subjects (topics) available within one or more disciplines. Subjects are hierarchical with nested sub-subjects. Returns a flat list of all subjects across the specified disciplines.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `discipline_ids` | string | Yes | Comma-separated discipline IDs to get subjects for (e.g. '26' or '26,21'). IDs from list_disciplines endpoint. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/qconcursos/list-subjects \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"discipline_ids":"<string>"}'
```

### Search questions

Search and filter public exam questions. Supports keyword search, filtering by discipline, subject, examining board, institution, job, year, scholarity level, modality, and difficulty. Returns 20 questions per page. Results are ordered by most recent by default.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `difficulty` | string | No | Comma-separated difficulty levels: 1 (Muito Fácil), 2 (Fácil), 3 (Médio), 4 (Difícil), 5 (Muito Difícil). |
| `discipline_ids` | string | No | Comma-separated discipline IDs to filter by (e.g. '26' or '26,21'). IDs from list_disciplines endpoint. |
| `examining_board_ids` | string | No | Comma-separated examining board IDs to filter by. IDs from list_examining_boards endpoint. |
| `institute_ids` | string | No | Comma-separated institution/organization IDs to filter by. |
| `job_ids` | string | No | Comma-separated job/position IDs to filter by. |
| `keyword` | string | No | Free-text keyword to search in question content. |
| `modality_ids` | string | No | Comma-separated modality IDs: 1 (Múltipla Escolha), 2 (Certo ou Errado). |
| `page` | integer | No | Page number for pagination. |
| `scholarity_ids` | string | No | Comma-separated scholarity level IDs: 1 (Fundamental), 2 (Médio), 3 (Superior). |
| `subject_ids` | string | No | Comma-separated subject IDs to filter by. IDs from list_subjects endpoint. |
| `year` | string | No | Comma-separated publication years to filter by (e.g. '2024' or '2023,2024'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/qconcursos/search-questions \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"difficulty":"<string>","discipline_ids":"<string>","examining_board_ids":"<string>","institute_ids":"<string>","job_ids":"<string>","keyword":"<string>","modality_ids":"<string>","page":"<integer>","scholarity_ids":"<string>","subject_ids":"<string>","year":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://beta.paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://beta.paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://beta.paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://beta.paywithlocus.com/agent/index.md): every Locus agent page.