Discover/QConcursos API
live

QConcursos APIqconcursos.com

Access Brazilian public exam questions from QConcursos. Search by keyword, discipline, banca, year, and difficulty. Get question details, subjects, and examining boards.

Endpoint health
verified 3h ago
list_examining_boards
list_disciplines
search_questions
get_question
list_subjects
5/5 passing latest checkself-healing
Endpoints
5
Updated
3h ago

What is the QConcursos API?

The QConcursos API exposes 5 endpoints for accessing Brazilian concurso público (public exam) questions, covering search with multi-dimensional filters, full question detail retrieval, and reference lists for disciplines, examining boards, and subjects. The search_questions endpoint alone supports eight filter parameters including difficulty level, modality, year, and institution, returning 20 questions per page with total count and pagination metadata.

Try it
Page number for pagination.
Comma-separated publication years to filter by (e.g. '2024' or '2023,2024').
Comma-separated job/position IDs to filter by.
Free-text keyword to search in question content.
Comma-separated difficulty levels: 1 (Muito Fácil), 2 (Fácil), 3 (Médio), 4 (Difícil), 5 (Muito Difícil).
Comma-separated subject IDs to filter by. IDs from list_subjects endpoint.
Comma-separated modality IDs: 1 (Múltipla Escolha), 2 (Certo ou Errado).
Comma-separated institution/organization IDs to filter by.
Comma-separated discipline IDs to filter by (e.g. '26' or '26,21'). IDs from list_disciplines endpoint.
Comma-separated scholarity level IDs: 1 (Fundamental), 2 (Médio), 3 (Superior).
Comma-separated examining board IDs to filter by. IDs from list_examining_boards endpoint.
api.parse.bot/scraper/08cf3fe4-249a-41cf-b993-4854ddccbcd7/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/08cf3fe4-249a-41cf-b993-4854ddccbcd7/search_questions?page=1&year=2024&keyword=administra%C3%A7%C3%A3o' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace qconcursos-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.


"""Walkthrough: QConcursos SDK — search Brazilian public exam questions."""
from parse_apis.qconcursos_com_api import QConcursos, QuestionNotFound

client = QConcursos()

# List available disciplines to find the right ID for filtering
for disc in client.disciplines.list(limit=5):
    print(disc.id, disc.name)

# Search questions filtered by discipline and year
for question in client.questions.search(discipline_ids="3", year="2024", limit=3):
    print(question.year, question.banca, question.enunciation[:80])
    for alt in question.alternatives:
        print(f"  {alt.letter}: {alt.text[:60]}")

# Drill-down: fetch a single question by slug
first = client.questions.search(keyword="constituição", limit=1).first()
if first:
    detail = client.questions.get(slug=first.slug)
    print(detail.discipline, detail.orgao, detail.prova)

# List examining boards for reference
for board in client.examining_boards.list(limit=3):
    print(board.acronym, board.name)

# Typed error handling: catch a missing question
try:
    client.questions.get(slug="nonexistent-slug-000")
except QuestionNotFound as exc:
    print(f"Question not found: {exc.slug}")

print("exercised: disciplines.list / questions.search / questions.get / examining_boards.list")
All endpoints · 5 totalmissing one? ·

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.

Input
ParamTypeDescription
pageintegerPage number for pagination.
yearstringComma-separated publication years to filter by (e.g. '2024' or '2023,2024').
job_idsstringComma-separated job/position IDs to filter by.
keywordstringFree-text keyword to search in question content.
difficultystringComma-separated difficulty levels: 1 (Muito Fácil), 2 (Fácil), 3 (Médio), 4 (Difícil), 5 (Muito Difícil).
subject_idsstringComma-separated subject IDs to filter by. IDs from list_subjects endpoint.
modality_idsstringComma-separated modality IDs: 1 (Múltipla Escolha), 2 (Certo ou Errado).
institute_idsstringComma-separated institution/organization IDs to filter by.
discipline_idsstringComma-separated discipline IDs to filter by (e.g. '26' or '26,21'). IDs from list_disciplines endpoint.
scholarity_idsstringComma-separated scholarity level IDs: 1 (Fundamental), 2 (Médio), 3 (Superior).
examining_board_idsstringComma-separated examining board IDs to filter by. IDs from list_examining_boards endpoint.
Response
{
  "type": "object",
  "fields": {
    "page": "integer",
    "total": "integer",
    "questions": "array of question objects",
    "total_pages": "integer"
  },
  "sample": {
    "data": {
      "page": 1,
      "total": 7737,
      "questions": [
        {
          "id": "2524206",
          "slug": "e9b62ae1-39",
          "year": "2024",
          "banca": "CESPE / CEBRASPE",
          "orgao": "Câmara de Maceió - AL",
          "prova": "CESPE / CEBRASPE - 2024 - Câmara de Maceió - AL - Apoio Legislativo",
          "answer": "",
          "subjects": [
            "Organização dos Poderes"
          ],
          "banca_slug": "cespe-cebraspe",
          "discipline": "Direito Constitucional",
          "enunciation": "Acerca do contencioso administrativo...",
          "alternatives": [
            {
              "text": "Certo",
              "letter": ""
            },
            {
              "text": "Errado",
              "letter": ""
            }
          ],
          "discipline_id": "3",
          "comments_count": 22
        }
      ],
      "total_pages": 387
    },
    "status": "success"
  }
}

About the QConcursos API

Search and Filter Exam Questions

The search_questions endpoint is the primary entry point for finding questões de concursos. It accepts a keyword for free-text search and a range of structured filters: discipline_ids, subject_ids, institute_ids, job_ids, year (comma-separated for multi-year ranges), difficulty (1–5 scale from Muito Fácil to Muito Difícil), and modality_ids (1 for Múltipla Escolha, 2 for Certo ou Errado). Results default to most-recent ordering and return a questions array alongside total, total_pages, and page fields for cursor-based pagination.

Full Question Detail

The get_question endpoint takes a slug (obtained from search results, e.g. '10131b30-79') and returns the complete question record. Response fields include id, slug, year, banca, banca_slug, orgao, prova, discipline, subjects (array of subject names), and answer when publicly available. This gives enough context to reconstruct which exam the question belongs to and where it sits in the subject hierarchy.

Reference Lists for Filter IDs

Three lookup endpoints provide the IDs required by the search filters. list_disciplines returns all available disciplines with id and name in Portuguese. list_examining_boards returns all bancas with id, acronym, and full name. list_subjects requires one or more discipline_ids (comma-separated) and returns a flat list of subjects with id, name, discipline_id, discipline_name, and nested_subjects for hierarchical navigation. These reference endpoints carry no required inputs except list_subjects, which needs at least one discipline ID.

Reliability & maintenanceVerified

The QConcursos API is a managed, monitored endpoint for qconcursos.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when qconcursos.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official qconcursos.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3h ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a study platform that lets users filter practice questions by banca (e.g. CESPE, FCC) and discipline using list_examining_boards and search_questions.
  • Track year-over-year question distribution for a specific examining board by querying search_questions with different year values.
  • Generate topic-specific question sets by combining list_subjects with subject_ids in search_questions for targeted practice sessions.
  • Classify questions by difficulty (1–5) to build adaptive quizzes that adjust based on user performance.
  • Retrieve full question text and official answers via get_question to populate a question bank for a mobile exam-prep app.
  • Map the subject hierarchy for a given discipline using list_subjects nested_subjects field to display a structured syllabus browser.
  • Filter questions by modality to separate multiple-choice (modality_ids=1) from true/false (modality_ids=2) sets for different test formats.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does QConcursos have an official developer API?+
QConcursos does not publish a public developer API or documentation for third-party access. The Parse API provides structured access to the question data available on qconcursos.com.
What does `get_question` return and when is the answer available?+
It returns the full question record including enunciation, alternatives, year, banca, orgao, prova, discipline, and a subjects array. The answer field is populated only when QConcursos makes the gabarito publicly available for that question; it will be absent or null for questions without a published answer.
Does `search_questions` return the full question text, or just metadata?+
The search results return question objects with enough content to identify each question (including enunciation text and metadata), but for the complete alternative list and confirmed answer you should follow up with get_question using the slug from the search result.
Is there a way to filter by institution or job position, and where do those IDs come from?+
Yes — search_questions accepts institute_ids and job_ids as comma-separated strings. However, the current API does not include dedicated list endpoints for institutions or job positions the way it does for disciplines, examining boards, and subjects. You can fork the API on Parse and revise it to add those lookup endpoints.
Does the API cover question comments, user statistics, or ranked lists?+
No. The API covers question content, metadata, disciplines, subjects, and examining board references. User-generated content such as comments, personal performance statistics, and ranked lists are not exposed. You can fork the API on Parse and revise it to add those endpoints if that data is accessible.
Page content last updated . Spec covers 5 endpoints from qconcursos.com.
Related APIs in EducationSee all →
jcconcursos.com.br API
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.
sporcle.com API
Access Sporcle quizzes by slug, keyword search, or category. Retrieve quiz titles, questions, multiple-choice answers, hints, user ratings, and average scores.
scholarshipportal.com API
Search and discover scholarships, degree programmes, and universities across StudyPortals' global education database, with the ability to filter by countries, disciplines, and other criteria. Get detailed information about specific scholarships and programmes to compare educational opportunities that match your academic interests.
portalcompraspublicas.com.br API
Search and access detailed information about public tenders, bids, and procurement documents from Brazilian municipalities and states. Retrieve tender items, clarification logs, winner details, and all related documentation to monitor and analyze public purchasing activity across Brazil.
funtrivia.com API
Search and browse thousands of trivia questions and quizzes across multiple categories, with the ability to filter by topic, difficulty, or find random challenges to test your knowledge. Discover trending topics, top-rated quizzes, and the latest additions to build custom trivia games or enhance your learning experience.
alertalicitacao.com.br API
Search and browse Brazilian government procurement opportunities (licitações) by keyword or state to find relevant bidding announcements. Access detailed information about individual procurement listings and discover available opportunities across different Brazilian states.
quantguide.io API
Access interview questions, company statistics, learning playlists, competitive leaderboards, and community discussions from QuantGuide.io, with full support for mathematical notation. Search questions by company, topic, and difficulty; retrieve leaderboard rankings; organize study playlists; and browse community discussions for quantitative finance interview preparation.
licitaja.com.br API
Search Brazilian government procurement bids by keyword and filter by specific agencies to find tender opportunities, with access to details like estimated values, bid timelines, descriptions, and itemized lots. Get AI-generated summaries and direct links to bid documents (edital) to help you quickly evaluate procurement opportunities.
QConcursos API – Brazilian Exam Questions · Parse