OpenSource QnA API

Checking...

Introduction

This API is free to use, build awesome stuff with it. You get access to ~14,700 questions covering JEE Advanced, BITSAT, WBJEE and more. We have a support server too.

Rate Limits

To ensure fair usage and system stability, the API implements rate limiting mechanisms. No authentication tokens are required for basic access.

Core Endpoints

The following endpoints constitute the core functionality of the QnA API. All endpoints return data in JSON format.

GET Health Check

Verifies the operational status of the API.

/health
GET /health

Response:
{
  "status": "healthy"
}
          

GET List All Modules

Retrieves a list of all available modules in the system.

/modules
GET /modules

Response:
{
  "modules": [ "Module A", "Module B", "Module C" ]
}
          

GET List Chapters

Retrieves a list of chapters, optionally filtered by module name.

/chapters
GET /chapters
Query Parameters:
  module_name (optional) - filter chapters by module name

Response:
{
  "chapters": [ "Chapter 1", "Chapter 2", "Chapter 3" ]
}
          

GET List Tags

Retrieves all available tags for categorizing questions.

/tags
GET /tags

Response:
{
  "tags": [ "easy", "calculus", "advanced", "geometry" ]
}
          

GET Retrieve Questions

Retrieves a paginated list of questions with comprehensive filtering options.

/questions
GET /questions
Query Parameters:
  - question_id (optional)
  - module_name (optional)
  - chapter_name (optional)
  - type (optional)
  - level (optional, 1-10)
  - min_level (optional)
  - max_level (optional)
  - tags (optional, multiple allowed)
  - search (optional)
  - page (optional, default: 1)
  - per_page (optional, default: 10, max: 100)
  - sort_by (optional, default: "question_ID")
  - sort_order (optional, "asc" or "desc", default: "asc")

Response:
{
  "total": 100,
  "page": 1,
  "per_page": 10,
  "total_pages": 10,
  "data": [ ... ]
}
          

GET Retrieve Specific Question

Retrieves detailed information about a specific question by its ID.

/question/{question_id}
GET /question/{question_id}

Response:
{
  "question_ID": "Q001",
  "module_name": "Module A",
  "chapter_name": "Chapter 1",
  "question_text": "Sample question text",
  "explanation": "Detailed explanation",
  "answer": "Correct answer",
  "type": "MCQ",
  "level": 3,
  "tags": "easy,algebra"
}