Still in beta. For feedback, email me at aramb@aramb.dev
Comprehensive documentation for the Madinah Books API
The Madinah Books API provides access to Arabic learning content from the Madinah book series. All endpoints return JSON responses and require no authentication.
Base URL:
https://madinah.arabic.aramb.dev/api
Example Request:
GET /api/books
/api/books
Get all available books with their lessons
Response Schema:
{ "success": true, "data": [ { "id": "book1", "title": { "ar": "الكتاب الأساسي", "en": "Book 1" }, "description": { "arabic": "...", "english": "..." }, "lessons": [...], "available": true } ], "count": 3 }
/api/books/{bookId}
Get a specific book by ID
Parameters:
bookId
(string): book1, book2, or book3/api/books/{bookId}/lessons
Get all lessons for a specific book
/api/books/{bookId}/lessons/{lessonId}
Get a specific lesson from a specific book
Parameters:
bookId
(string): book1, book2, or book3lessonId
(string): lesson1, lesson2, etc./api/lessons
Get all lessons from all books
/api/lesson-titles
Get titles of all lessons across all books
/api/metadata
Get global metadata about all books and lessons
/api/books/{bookId}/metadata
Get metadata for a specific book
/api/books/{bookId}/lesson-titles
Get titles of all lessons in a specific book
/api/books/{bookId}/rule-count
Get rule statistics for a specific book
{ "id": "string", "title": { "ar": "string", "en": "string" }, "description": { "arabic": "string", "english": "string" }, "lessons": "Array<Lesson>", "available": "boolean", "comingSoon": "boolean (optional)" }
{ "id": "string", "title": { "ar": "string", "en": "string" }, "introduction": { "arabic": "string", "english": "string" }, "rules": "Array<Rule>", "vocabulary": "Array<VocabularyItem> (optional)" }
{ "name": "string", "arabicText": "string", "explanation": "string" }
{ "id": "string", "word": "string", "transliteration": "string", "translation": { "en": "string" }, "type": "string (WordType enum)", "root": "string (optional)", "plural": "string (optional)", "gender": "string (Gender enum, optional)", "conjugation": "VerbConjugation (optional)", "definition": "string", "examples": "Array<Example>", "notes": "string (optional)", "difficulty": "string (DifficultyLevel enum)", "tags": "Array<string>", "relatedWords": "Array<string> (optional)", "bookId": "string (optional)", "lessonId": "string | number (optional)" }
"noun" | "verb" | "adjective" | "adverb" | "preposition" | "pronoun" | "conjunction" | "particle" | "expression" | "number" | "proper noun"
"beginner" | "intermediate" | "advanced"
"masculine" | "feminine" | "neuter" | "dual"
{ "arabic": "string", "english": "string", "notes": "string (optional)" }
{ "past": { "singular": { "first": "string", "secondMasculine": "string", "secondFeminine": "string", "thirdMasculine": "string", "thirdFeminine": "string" }, "plural": { "first": "string", "second": "string", "thirdMasculine": "string", "thirdFeminine": "string" } }, "present": { "singular": { "first": "string", "secondMasculine": "string", "secondFeminine": "string", "thirdMasculine": "string", "thirdFeminine": "string" }, "plural": { "first": "string", "second": "string", "thirdMasculine": "string", "thirdFeminine": "string" } }, "imperative": { "singular": { "masculine": "string", "feminine": "string" }, "plural": "string" } (optional), "verbalNoun": "string (optional)", "activeParticiple": "string (optional)", "passiveParticiple": "string (optional)" }
This section provides structured information for Large Language Models (LLMs) to understand and integrate with our API.
Need help or have questions about the API? Contact us for support.