The Assignments & Tasks API is the primary interface for reading and mutating everything on a student’s to-do list. Assignments are pulled live from all connected school platforms (Canvas, Google Classroom, StudentVue, Schoology, Blackboard, Moodle) and merged with manual tasks and Notion syncs into a single unified feed. Two distinct endpoints exist for good reason:Documentation Index
Fetch the complete documentation index at: https://mintlify.com/UAnirudh/IntelliPlan/llms.txt
Use this file to discover all available pages before exploring further.
GET /api/v1/assignments returns only the live platform feed (what the school reports), while GET /api/v1/tasks returns the full merged view including manual tasks — so tools that only care about school deadlines and tools that show everything can each get exactly what they need.
All endpoints under
/api/v1/ require authentication. Send your API key as X-API-Key: ip_live_… in the request header. Apply for a key at intelliplan.tech/developers. See Authentication for full details.GET /api/v1/assignments
Returns the unified assignment list sourced from all connected school platforms. This proxies the/live internal feed — the same data the dashboard renders. Manual tasks and Notion tasks are not included here; use GET /api/v1/tasks for the fully merged view.
Required scope: read:assignments
- Request
- Response
cURL
Array of assignment objects from all connected school platforms.
POST /api/v1/tasks — Create a Manual Task
Creates a new manual task owned by the authenticated user. Manual tasks appear on the dashboard alongside school platform assignments and can be synced to Notion if a Notion integration is configured. Required scope:write:tasks
- Request
- Response
cURL
Request Body
The task title. Must be a non-empty string.
Due date in ISO 8601 format (e.g.
"2025-02-20"). Optional; tasks without a due date appear in the Upcoming column.Priority level. Accepted values:
"High", "Medium", "Low". Defaults to "Medium".Course or category name to associate this task with. Defaults to
"Personal".Estimated time to complete the task, in minutes. Defaults to
60.Optional free-text notes or description for the task.
GET /api/v1/tasks — List All Tasks
Returns every task the student has to do — platform assignments, manual tasks, and Notion-synced tasks — in a flat list sorted by urgency. UnlikeGET /api/v1/assignments, this calls the /tasks/unified feed and flattens its three buckets (overdue, today, upcoming) into a single array. Each item carries a bucket field indicating which column it belonged to.
Required scope: read:assignments
- Request
- Response
cURL
Flat array of all tasks, ordered overdue → today → upcoming. Each item includes all assignment fields plus a
bucket field.POST /api/v1/assignments/dismiss — Mark as Done
Marks an assignment as dismissed (completed). Dismissed assignments are hidden from the active dashboard view. This action is reversible with the restore endpoint. Required scope:write:tasks
Request Body
The exact title of the assignment to dismiss.
cURL
"ok" on success.POST /api/v1/assignments/restore — Un-dismiss
Restores a previously dismissed assignment, returning it to the active dashboard. Use this if a task was marked done by mistake or if the student needs to revisit it. Required scope:write:tasks
Request Body
The exact title of the dismissed assignment to restore.
cURL
GET /api/v1/tests — List Test Assignments
Returns all assignments that the student has flagged as tests. This is a subset of all assignments — only those where the student explicitly invokedPOST /api/v1/tests to mark them as exams or quizzes.
Required scope: read:tests
cURL
200 OK
POST /api/v1/tests — Mark as Test
Flags an existing assignment as a test. The AI scheduler treats tests with higher priority and allocates dedicated review blocks in the generated study plan. Required scope:write:tests
Request Body
The title of the assignment to mark as a test.
cURL
DELETE /api/v1/tests — Unmark as Test
Removes the test flag from an assignment. The assignment remains in the regular assignment list; it simply loses its test designation. Required scope:write:tests
Request Body
The title of the test to unmark.
cURL
Error Responses
All errors across the API follow the same envelope shape, so your error handler only needs to be written once.Error envelope
Common error codes
Common error codes
| Code | HTTP Status | Meaning |
|---|---|---|
unauthorized | 401 | Missing or invalid API key / Bearer token |
insufficient_scope | 403 | Key exists but lacks the required scope |
invalid_request | 400 | A required field (e.g. title) is missing or malformed |
upstream_failed | 502 | The connected school platform returned an error |
rate_limited | 429 | Too many requests; slow down and retry |