Lesson plans, in seconds

Every teacher deserves a great lesson plan.

Dars turns textbooks into full-term lesson plans — structured, bilingual, and aligned to NCP and provincial curricula. Your teachers ask, Dars delivers.

The Water Cycle
Grade 4 · Science · 45 min · Punjab Board
Ready
Learning Objectives
Identify and explain the three stages of the water cycle
Connect evaporation and condensation to daily weather
Describe how precipitation forms and reaches the ground
Activities
i.Opening — Where does rain come from?5 min
ii.Diagram labelling — complete the water cycle10 min
iii.Experiment — evaporation in a sealed bag20 min
iv.Exit ticket — three things I learned today5 min
I.

Everything a curriculum product needs.

i.
ch. i

Lesson Plan Generation

One API call returns a complete, structured lesson plan — objectives, activities, assessment questions. Pass grade, subject, page number. No prompts to write, no model to host.

bilingual output available →
ii.
ch. ii

Full Curriculum Tree

Dars holds structured Pakistani textbooks — chapters, topics, and pre-generated lesson plans for each. Browse the whole tree for a grade and subject, collect IDs, fetch content. Your product is one GET request away from a full term.

ICT · Punjab
iii.
ch. iii

Exam Generation

Generate curriculum-aligned exams and class assessments from any page range. Control question types, seen/unseen split, counts, answer key, and AI review — or let the defaults handle it.

seen · unseen · objective · subjective
iv.
ch. iv

Per-client API Keys

Register, set your curriculum, get a key. Each client is fully isolated — their own generation history, their own analytics. Keys are hashed at rest and shown once on creation.

hashed, shown once on creation
v.
ch. v

Async by Default

Every generation request returns immediately with a job ID. Poll for status or build on top of it. Generation typically completes in under two minutes.

202 → PENDING → READY
vi.
ch. vi

Built for Integration

REST API with predictable JSON responses. An MCP server and client SDK are on the roadmap — so your coding agent or frontend can integrate Dars with minimal boilerplate.

API · SDK · MCP — coming
II.

Don't build it. Borrow it.

LP generation, curriculum data, SLO mapping — it's all here. Connect via MCP and your agent can pull it straight into your app. Or wire up the API yourself.

i.

Register and set your curriculum

Sign up on the Dars dashboard, select your curriculum — ICT or Punjab — and copy your API key. That's the entire setup. Your curriculum determines which grades, subjects, and textbooks are available to you.

// Your key, shown once on registration
X-API-Key: dars_••••••••

// Curriculum set in Settings:
// ICT or Punjab
ii.

Browse the curriculum tree

Fetch the full breakdown for any grade and subject — chapters, topics, and pre-generated lesson plans with their IDs. Use this to build your navigation, resolve IDs, or let a teacher browse to their lesson.

GET /api/v1/curriculum?grade=3&subject=Eng

→ chapters
  → topics
    → lessons
        lesson_plan_id
        assessment_id
iii.

Fetch plans and assessments

Once you have an ID from the tree, fetch the full lesson plan or assessment content. Lesson plans come back as HTML, ready to render. Assessments include structured question JSON with an answer key.

GET /api/v1/lesson-plans/{id}
→ content (HTML, bilingual optional)

GET /api/v1/assessments/{id}
→ content_json  (structured questions)
→ answers_json  (answer key)
iv.

Generate custom lesson plans and exams

Need a plan outside the pre-built tree? Generate one on demand — pass a page number and optional topic. For exams, control every dimension: question types, seen/unseen split, counts per type, answer key, image generation, AI review.

POST /api/v1/custom-lesson-plans
{
  "grade": 3, "subject": "Maths",
  "page_number": "42"
}
→ 202 PENDING → poll → READY
v.

Tag generations with your own IDs

Every generation accepts an optional external_id — a teacher ID, student ID, or any string from your system. Filter listings by it, track who generated what, and pipe results back to the right person without Dars needing to know your data model.

POST /api/v1/custom-exam-generations
{
  "grade": 4, "subject": "Eng",
  "page_ranges": "10-20",
  "external_id": "teacher-007"
}

GET /api/v1/custom-exam-generations
  ?external_id=teacher-007

A lesson plan is not a script. It is a map — one that every teacher draws for their students.

— Principle behind Dars

Ready to give your teachers a better plan?

Log in to your dashboard and start generating curriculum-aligned lesson plans today.

Log in →