TestPrepPro

Free Developer Resource

Free ISTQB Questions API

300+ ISTQB Foundation Level questions via JSON. No auth, no rate limits, free forever.

No Auth RequiredCORS EnabledJSON300+ Questions6 Chapters

Base URL

https://testpreppro.pages.dev

Endpoints

GET/api/questions.json

All questions (without answers)

curl https://testpreppro.pages.dev/api/questions.json
GET/api/questions/random.json

10 random questions (refreshed each deploy)

curl https://testpreppro.pages.dev/api/questions/random.json
GET/api/chapters.json

Chapter list with question counts

curl https://testpreppro.pages.dev/api/chapters.json
GET/api/chapters/{n}.json

Questions for chapter N (1-6)

curl https://testpreppro.pages.dev/api/chapters/4.json
GET/api/stats.json

API stats and metadata

curl https://testpreppro.pages.dev/api/stats.json

Sample Response

Answers are excluded to prevent cheating.

{
  "id": "q001",
  "question": "Which of the following BEST describes the purpose of testing?",
  "options": { "A": "...", "B": "...", "C": "...", "D": "..." },
  "chapter": 1, "chapterTitle": "Fundamentals of Testing",
  "difficulty": "Easy", "cognitiveLevel": "K1"
}

Code Examples

JavaScript / Node.js

const res = await fetch("https://testpreppro.pages.dev/api/questions/random.json");
const { questions } = await res.json();
questions.forEach(q => console.log(q.question));

Python

import requests
data = requests.get("https://testpreppro.pages.dev/api/stats.json").json()
print(f"{data['totalQuestions']} questions across {data['totalChapters']} chapters")

Notes

  • All endpoints return JSON with CORS headers enabled
  • Answers are intentionally excluded -- use the practice quiz to check answers
  • The random endpoint is a static snapshot regenerated on each deploy
  • Data is updated regularly as new questions are added
  • Attribution appreciated but not required

Powered by

TestPrepPro

Want to practice with answers and detailed explanations?

Try Free Practice Questions