> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hawkings.education/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Hawkings is the infrastructure for AI-native education. One API to build courses, lessons, quizzes, AI tutors, and grading.

## Why Hawkings

Building educational software has always meant building the same boring
plumbing over and over: a course tree, a lesson editor, a quiz engine, a
gradebook, a SCORM exporter, an LMS sync. Then, one day, the team that
just shipped that plumbing is asked to "add AI." A year of prompt
engineering later they have a tutor that hallucinates and a grader nobody
trusts.

We did the boring plumbing for you, and we did the AI plumbing for you,
and we made one boring API out of both.

Hawkings is what you'd reach for if you were building [Duolingo, Coursera, or a corporate LMS](/concepts/data-model)
in 2026, and you had three weeks instead of three years.

<CardGroup cols={2}>
  <Card title="Quickstart" icon="bolt" href="/quickstart">
    First successful API call in under 60 seconds.
  </Card>

  <Card title="Generate a course from a syllabus" icon="wand-magic-sparkles" href="/guides/generate-a-course-from-a-syllabus">
    From a paragraph of text to a fully-structured course in one call.
  </Card>

  <Card title="Build an AI tutor" icon="comments" href="/guides/build-an-ai-tutor">
    Add a grounded, per-lesson tutor chat to your product.
  </Card>

  <Card title="Grade with AI" icon="square-check" href="/guides/grade-an-open-ended-answer">
    Open-ended grading with rubric, rationale, and human-in-the-loop.
  </Card>
</CardGroup>

## What's in the box

<AccordionGroup>
  <Accordion title="A complete course graph" defaultOpen>
    Workspaces, courses, cohorts, units, lessons, lesson contents,
    activities, questions, assignments, submissions, users.

    Read it, write it, sync it. The graph is consistent across every
    surface — your dashboard, your students' app, your LMS export.
  </Accordion>

  <Accordion title="22 activity types, one method">
    Quizzes (true/false, fill-in-the-blank, matching, grouping,
    open-ended, …), flashcards, podcasts, diagrams, glossaries,
    bibliographies, explainers, summaries, audio resumes, integrative
    activities… all of them are `activities.create({ type, ... })`. No
    separate endpoints, no separate types in your code.
  </Accordion>

  <Accordion title="AI generation, async-first">
    `courses.generateSyllabus()`, `activities.generate()`,
    `lessonContents.generate()`. Every generation is async, returns a
    handle, and you can `poll()` or webhook-listen for completion.
  </Accordion>

  <Accordion title="AI grading with rationale">
    `submissions.gradeWithAi()` returns the score and the reasoning. Pair
    it with `submissions.update()` for a human-in-the-loop workflow.
  </Accordion>

  <Accordion title="SCORM out of the box">
    `scorm.create({ cohort_id })` produces a SCORM 1.2 / 2004 zip your
    customers can drop into Moodle, Canvas, Cornerstone — anything.
  </Accordion>

  <Accordion title="LMS bridges">
    First-class adapters for Moodle, with Canvas and Schoology coming
    next. Your customers stay where they are; you ship the AI layer on
    top.
  </Accordion>
</AccordionGroup>

## A taste

<CodeGroup>
  ```ts TypeScript theme={null}
  import Hawkings from "@hawkings/sdk";

  const hk = new Hawkings({ api_key: process.env.HAWKINGS_API_KEY });

  // Generate a course from a one-paragraph brief
  const course = await hk.courses.create({
    name: "Intro to Special Relativity",
    language: "en",
    hours: 12,
  });

  await hk.courses.generateSyllabus(course.id, {
    brief: "An introductory undergraduate course on special relativity, " +
           "ending with the equivalence of mass and energy.",
  });

  // Generate one lesson's worth of activities
  const lesson = (await hk.lessons.list({ cohort_id: course.cohorts[0] })).data[0];
  const activities = await hk.activities.generate({
    lesson_id: lesson.id,
    count: 5,
    types: ["explain", "quiz", "flashcard"],
  });
  ```

  ```php PHP theme={null}
  $hk = new \Hawkings\Client(['api_key' => getenv('HAWKINGS_API_KEY')]);

  // Generate a course from a one-paragraph brief
  $course = $hk->courses->create([
      'name' => 'Intro to Special Relativity',
      'language' => 'en',
      'hours' => 12,
  ]);

  $hk->courses->generateSyllabus($course->id, [
      'brief' => 'An introductory undergraduate course on special relativity, '
               . 'ending with the equivalence of mass and energy.',
  ]);

  // Generate one lesson's worth of activities
  $lesson = $hk->lessons->list(['cohort_id' => $course->cohorts[0]])->data[0];
  $activities = $hk->activities->generate([
      'lesson_id' => $lesson->id,
      'count' => 5,
      'types' => ['explain', 'quiz', 'flashcard'],
  ]);
  ```
</CodeGroup>

That's it. The boring plumbing, gone.

## Where to next

* New here? Start with the [Quickstart](/quickstart).
* Coming from another LMS API? Read [Data model](/concepts/data-model).
* Building for AI workflows? Read [AI generation](/concepts/ai-generation) and [AI grading](/concepts/ai-grading).
* Looking for a specific endpoint? Jump to the [API reference](/api-reference/overview).
