API Gateway v1.2  ·  https://qapi.otunac.com/api

Base
de Questões de Concurso Público.

Simples, rápido e confiável.

exemplo.py
# pip install requests
import requests
 
BASE = "https://qapi.otunac.com/api"
KEY  = "qb_SuaChaveAqui"
H    = {"Q-Api-Key": KEY}
 
# buscar questões
r = requests.get(
    f"{BASE}/questions",
    params={"banca":"FGV", "ano":2024},
    headers=H
)
print(r.json()["total"])
 
$ python exemplo.py
100% Read-only
9 Endpoints
R$1 / 1.000 req
JWT + API Key
recursos

Tudo que você precisa para integrar em minutos

🔑

API Key única

Cada conta recebe uma chave prefixada qb_ gerada com 40 caracteres aleatórios seguros.

📊

Dashboard em tempo real

Gráfico de barras com consumo diário dos últimos 30 dias, custo mensal e histórico de pagamentos.

🔒

Somente leitura

O gateway bloqueia PUT, POST e DELETE. Apenas GET é permitido, protegendo integralmente a base de dados.

Token cacheado

O acesso à API privada usa token com cache de 23h — zero overhead de autenticação por requisição.

🛡️

CPF único por conta

Cadastro exige CPF válido e único, prevenindo criação de múltiplas contas por um mesmo usuário.

💳

Billing transparente

Pagamento mensal via PIX com QR Code no último dia do mês. Histórico de pagamentos disponível na dashboard.

documentação

Referência completa da API

Base URL: https://qapi.otunac.com/api  ·  Header obrigatório: Q-Api-Key: qb_SuaChave

Questões

Endpoint principal para consulta de questões com filtros opcionais e paginação. Limite máximo de 100 itens por página.

GET /api/questions Q-Api-Key
Parâmetros
ParâmetroTipoReq.Descrição
pageintegerPágina (padrão: 1)
sizeintegerItens por página (máx: 100)
bancastringEx: FGV, CESPE
orgaostringEx: TJ/SE, CONDER
cargostringEx: Analista de Sistemas
materiastringEx: Língua Portuguesa
assuntostringEx: Compreensão de Texto
anointegerEx: 2024
Request
GET https://qapi.otunac.com/api/questions?page=1&size=10&banca=FGV&ano=2024
Q-Api-Key: qb_SuaChaveAqui
Response 200
{
  "page": 1, "size": 10, "pages": 63, "total": 624,
  "questoes": [{
    "_id": "69a8224af6d9445ec04dad9c",
    "orgao": "TJ/SE", "banca": "FGV", "ano": 2023,
    "cargo": "Analista Judiciário - Análise de Sistemas",
    "materia": "Conhecimento Específico",
    "assunto": "Arquitetura de Computadores",
    "enunciado": "...",
    "opcaoA": "throughput;", "opcaoB": "tempo de espera;",
    "opcaoC": "tempo de turnaround;", "opcaoD": "tempo de processador;",
    "opcaoE": "utilização do processador.",
    "gabarito": "A", "comentario": "...", "texto": ""
  }]
}
Textos

Recupera o texto completo referenciado pelo campo texto de uma questão.

GET /api/texts/:codigo Q-Api-Key
Request
GET https://qapi.otunac.com/api/texts/QTXT566467
Q-Api-Key: qb_SuaChaveAqui
Response 200
{
  "_id": "69b0cfaa20dadd7d66bfcec9",
  "codigo": "QTXT566467",
  "titulo": "A reinvenção da vírgula",
  "texto": "No começo de 1902, Machado de Assis...",
  "fonte": "Machado de Assis",
  "createdAt": "2026-03-11T02:12:58.079Z"
}
Catálogos de filtros

Use esses endpoints para listar os valores válidos dos filtros de /api/questions. Todos suportam paginação e busca por texto.

Parâmetros comuns a todos os catálogos:   page (integer)  ·  size (integer)  ·  search (string, busca parcial)
GET /api/bancas Q-Api-Key

Lista as bancas organizadoras. Use search para filtrar por nome.

GET https://qapi.otunac.com/api/bancas?page=1&size=10&search=fgv
Q-Api-Key: qb_SuaChaveAqui
{
  "bancas": ["FGV"],
  "total": 1, "page": 1, "pages": 1
}
GET /api/orgaos Q-Api-Key

Lista os órgãos. Use search para busca parcial.

GET https://qapi.otunac.com/api/orgaos?page=1&size=5&search=ces
Q-Api-Key: qb_SuaChaveAqui
{
  "orgaos": ["CESPE", "CESGRANRIO"],
  "total": 2, "page": 1, "pages": 1
}
GET /api/cargos Q-Api-Key

Lista os cargos disponíveis na base.

GET https://qapi.otunac.com/api/cargos?page=1&size=10&search=professor
Q-Api-Key: qb_SuaChaveAqui
{
  "cargos": ["Professor de Ensino Básico", "Professor Adjunto"],
  "total": 2, "page": 1, "pages": 1
}
GET /api/materias Q-Api-Key

Lista as matérias e disciplinas disponíveis.

GET https://qapi.otunac.com/api/materias?page=1&size=5&search=Direito
Q-Api-Key: qb_SuaChaveAqui
{
  "materias": ["Direito Administrativo", "Direito Constitucional", "Direito Civil"],
  "total": 3, "page": 1, "pages": 1
}
GET /api/assuntos Q-Api-Key

Lista os assuntos de uma matéria. materia é obrigatório.

ParâmetroTipoReq.Descrição
materiastring✓ SimNome exato da matéria (obter via /api/materias)
pageintegerPágina
sizeintegerItens por página
searchstringBusca parcial no nome do assunto
GET https://qapi.otunac.com/api/assuntos?materia=Tecnologia+Java&page=1&size=5&search=hibernate
Q-Api-Key: qb_SuaChaveAqui
{
  "materia": "Tecnologia Java",
  "assuntos": ["Hibernate / JPA", "Hibernate Cache"],
  "total": 2, "page": 1, "pages": 1
}
Autenticação

Endpoints para criação de conta e login. CPF brasileiro válido é obrigatório no cadastro.

POST /api/auth/register

Cria uma nova conta. Retorna a api_key gerada automaticamente.

POST https://qapi.otunac.com/api/auth/register
Content-Type: application/json

{
  "name": "João Silva",
  "email": "[email protected]",
  "cpf": "123.456.789-09",
  "password": "minhasenha123"
}
POST /api/auth/login

Autentica e retorna um JWT Bearer token.

POST https://qapi.otunac.com/api/auth/login
Content-Type: application/json

{
  "email": "[email protected]",
  "password": "minhasenha123"
}
preços

Pague apenas pelo que usar

Sem mensalidade, sem taxa de adesão. A cobrança é calculada com base no total de requisições realizadas via sua API Key no mês. O pagamento é feito no último dia de cada mês via PIX.

R$1
a cada 1.000 requisições
  • Sem mensalidade ou taxa de adesão
  • Todos os endpoints contabilizados igualmente
  • Dashboard com custo do mês em tempo real
  • Histórico de pagamentos com confirmação
  • Chave suspensa automaticamente em caso de atraso
Criar conta grátis →