Resources API Guide
This article provides the complete reference for submitting and managing course resources using Woolfโs API. It covers all supported resource types, required fields, mutation formats, compliance monitoring, and verification logic.
โ ๏ธ Note: Only
VERIFIED resources count toward graduation.Supported Resource Types
| Type | Kind | Description |
|---|---|---|
| General | GENERAL |
Supplemental learning materials not tied to a specific category |
| Publication | PUBLICATION |
Standard reading materials (eBooks, articles) |
| Peer-reviewed Publication | PUBLICATION_REVIEWED |
Academic, peer-reviewed sources (last 5 years) |
| Meeting | MEETING |
Live sessions (online or in-person) |
| Assignment | ASSIGNMENT |
Essays, quizzes, project tasks with grading |
| Summative Assignment | ASSIGNMENT_SUMMATIVE |
Final, graded project representing course mastery |
Required Fields
| Field | Required | Description |
|---|---|---|
name |
โ | Title of the resource |
kind |
โ | One of the supported kinds |
workload |
โ | Minutes required to complete |
isGradeRequired |
Optional | Set to true for assignments |
cohortName |
Optional | Target specific cohort (optional) |
externalId |
Optional | LMS resource identifier |
content |
Optional | Lesson content in HTML or Markdown |
assets |
Optional | File attachments via importUrl
|
weightIds |
โ (for assignments) | Grade mapping weights |
tags |
Optional | Used for filtering |
teacherIds |
Recommended | Assign teachers to resource |
Submit a Resource using API
Use the addResource mutation to submit any content type. Sample requests are below:
Manage Resources using API
๐ Tips:
- Editing a verified resource resets its status to draft. Avoid modifying verified resources mid-course unless required. Doing so will reset their status.
- To track asset upload completion, subscribe to the
IMPORTED_ASSETwebhook event. - To be notified when a resource is rejected, subscribe to the
REJECTED_RESOURCEwebhook. - For long videos (e.g. lectures), you may upload HLS playlists - flat only (no nested playlists).