We have relocated to Instructure Developer Documentation Portal. 🎉 Please update your bookmarks. This page will automatically redirect after July 1, 2026.
Course Pace API
API for accessing and building Course Paces.
A CoursePace object looks like:
{
  // the ID of the course pace
  "id": 5,
  // the ID of the course
  "course_id": 5,
  // the ID of the user for this course pace
  "user_id": 10,
  // the state of the course pace
  "workflow_state": "active",
  // boolean value depending on exclude weekends setting
  "exclude_weekends": true,
  // array of strings representing the days of the work week
  "selected_days_to_skip": [fri, sat],
  // set if the end date is set from course
  "hard_end_dates": true,
  // date when course pace is created
  "created_at": "2013-01-23T23:59:00-07:00",
  // course end date
  "end_date": "2013-01-23T23:59:00-07:00",
  // date when course pace is updated
  "updated_at": "2013-01-23T23:59:00-07:00",
  // date when course pace is published
  "published_at": "2013-01-23T23:59:00-07:00",
  // the root account ID for this course pace
  "root_account_id": 10,
  // course start date
  "start_date": "2013-01-23T23:59:00-07:00",
  // list of modules and items for this course pace
  "modules": null,
  // progress of pace publishing
  "progress": null
}
  A Module object looks like:
{
  // the ID of the module
  "id": 5,
  // the name of the module
  "name": "Module 1",
  // the position of the module
  "position": 5,
  // list of module items
  "items": null,
  // the ID of the context for this course pace
  "context_id": 10,
  // The given context for the course pace
  "context_type": "Course"
}
  A ModuleItem object looks like:
{
  // the ID of the module item
  "id": 5,
  // the duration of the module item
  "duration": 5,
  // the course pace id of the module item
  "course_pace_id": 5,
  // the root account id of the module item
  "root_account_id": 5,
  // the module item id of the module item
  "module_item_id": 5,
  // The title of the item assignment
  "assignment_title": "Assignment 9",
  // The points of the item
  "points_possible": 10.0,
  // The link of the item assignment
  "assignment_link": "/courses/105/modules/items/264",
  // the current position of the module item
  "position": 5,
  // The module item type of the item assignment
  "module_item_type": "Assignment",
  // published boolean value for course pace
  "published": true
}
  A Progress object looks like:
{
  // the ID of the Progress object
  "id": 1,
  // the context owning the job.
  "context_id": 1,
  "context_type": "Account",
  // the id of the user who started the job
  "user_id": 123,
  // the type of operation
  "tag": "course_batch_update",
  // percent completed
  "completion": 100,
  // the state of the job one of 'queued', 'running', 'completed', 'failed'
  "workflow_state": "completed",
  // the time the job was created
  "created_at": "2013-01-15T15:00:00Z",
  // the time the job was last updated
  "updated_at": "2013-01-15T15:04:00Z",
  // optional details about the job
  "message": "17 courses processed",
  // optional results of the job. omitted when job is still pending
  "results": {"id":"123"},
  // url where a progress update can be retrieved
  "url": "https://canvas.example.edu/api/v1/progress/1"
}
  Show a Course pace CoursePacesController#api_show
GET /api/v1/courses/:course_id/course_pacing/:id
url:GET|/api/v1/courses/:course_id/course_pacing/:id
  Returns a course pace for the course and pace id provided
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| course_id | Required | integer | 
        
 The id of the course  | 
    
| course_pace_id | Required | integer | 
        
 The id of the course_pace  | 
    
Example Request:
curl https://<canvas>/api/v1/courses/1/course_pacing/1 \
  -H 'Authorization: Bearer <token>'
    
  Create a Course pace CoursePacesController#create
POST /api/v1/courses/:course_id/course_pacing
url:POST|/api/v1/courses/:course_id/course_pacing
  Creates a new course pace with specified parameters.
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| course_id | Required | integer | 
        
 The id of the course  | 
    
| end_date | Datetime | 
        
 End date of the course pace  | 
    |
| end_date_context | string | 
        
 End date context (course, section, hupothetical)  | 
    |
| start_date | Datetime | 
        
 Start date of the course pace  | 
    |
| start_date_context | string | 
        
 Start date context (course, section, hupothetical)  | 
    |
| exclude_weekends | boolean | 
        
 Course pace dates excludes weekends if true  | 
    |
| selected_days_to_skip | string | 
        
  | 
    |
| hard_end_dates | boolean | 
        
 Course pace uess hard end dates if true  | 
    |
| workflow_state | string | 
        
 The state of the course pace  | 
    |
| course_pace_module_item_attributes[] | string | 
        
 Module Items attributes  | 
    |
| context_id | integer | 
        
 Pace Context ID  | 
    |
| context_type | string | 
        
 Pace Context Type (Course, Section, User)  | 
    
Example Request:
curl https://<canvas>/api/v1/courses/1/course_pacing \
  -X POST \
  -H 'Authorization: Bearer <token>'
    
  Update a Course pace CoursePacesController#update
PUT /api/v1/courses/:course_id/course_pacing/:id
url:PUT|/api/v1/courses/:course_id/course_pacing/:id
  Returns the updated course pace
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| course_id | Required | integer | 
        
 The id of the course  | 
    
| course_pace_id | Required | integer | 
        
 The id of the course pace  | 
    
| end_date | Datetime | 
        
 End date of the course pace  | 
    |
| exclude_weekends | boolean | 
        
 Course pace dates excludes weekends if true  | 
    |
| selected_days_to_skip | string | 
        
  | 
    |
| hard_end_dates | boolean | 
        
 Course pace uess hard end dates if true  | 
    |
| workflow_state | string | 
        
 The state of the course pace  | 
    |
| course_pace_module_item_attributes[] | string | 
        
 Module Items attributes  | 
    
Example Request:
curl https://<canvas>/api/v1/courses/1/course_pacing/1 \
  -X PUT \
  -H 'Authorization: Bearer <token>'
    
  Delete a Course pace CoursePacesController#destroy
DELETE /api/v1/courses/:course_id/course_pacing/:id
url:DELETE|/api/v1/courses/:course_id/course_pacing/:id
  Returns the updated course pace
Request Parameters:
| Parameter | Type | Description | |
|---|---|---|---|
| course_id | Required | integer | 
        
 The id of the course  | 
    
| course_pace_id | Required | integer | 
        
 The id of the course_pace  | 
    
Example Request:
curl https://<canvas>/api/v1/courses/1/course_pacing/1 \
  -X DELETE \
  -H 'Authorization: Bearer <token>'