APIs

get
Authorizations
Path parameters
idintegerRequired
Responses
200
Getting a specific progress
application/json
get
GET /api/v1/progresses/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a specific progress

{
  "progress": {
    "id": 1,
    "account_id": 1,
    "canvas_user_id": null,
    "completion_percent": null,
    "workflow_state": "queued",
    "payload": {},
    "created_at": "2025/06/24 07:20:53 +0000",
    "updated_at": "2025/06/24 07:20:53 +0000"
  }
}
get
Authorizations
Query parameters
user_idintegerRequired

Canvas Id of the user

only_certificatesbooleanOptional

Indicates if the courses without certificates should be included, default is to include all courses

Responses
200
Listing user's completions with a certificate
application/json
get
GET /api/v1/completed_certificates HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Listing user's completions with a certificate

{
  "completed_certificates": [
    {
      "canvas_course_id": 1,
      "catalog_title": "Course 1",
      "canvas_course_name": "Course 1",
      "certificate_url": "https://www.domain-2.com/certificates/certificate-numero-1-1.pdf",
      "canvas_course_workflow_state": "available",
      "completed_at": null
    }
  ]
}
get
Authorizations
Responses
200
Listing courses
application/json
Responseobject
get
GET /api/v1/courses HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Listing courses

{
  "courses": [
    {
      "id": 6,
      "visibility": "listed",
      "enrollment_open": true,
      "enrollment_open_from": null,
      "enrollment_open_to": null,
      "enrollment_cap": null,
      "description": "description_5",
      "enrollment_fee": 0,
      "created_at": "2025/06/24 07:20:54 +0000",
      "credits": 3,
      "measurement": "credit",
      "updated_at": "2025/06/24 07:20:54 +0000",
      "short_description": "teaser_5",
      "listing_path": "course-path-5",
      "listing_image": null,
      "currency": "USD",
      "catalog": {
        "id": 9,
        "name": "Domain Account 10"
      },
      "type": "Course",
      "title": "Course 5",
      "list_order": null,
      "waitlist": false,
      "waitlist_cap": null,
      "sku": "sku_5",
      "show_free_banner": true,
      "image_alt_text": null,
      "allowed_payment_types": [
        "standard"
      ],
      "tag_names": [
        "Another Tag",
        "Tag"
      ],
      "listing_url": "http://www.my-catalog.edu/courses/course-path-5",
      "start_date": "2025/06/17 07:20:54 +0000",
      "end_date": "2025/07/01 07:20:54 +0000",
      "canvas_section_id": null,
      "associated_account_ids": [],
      "canvas_course": {
        "id": 5
      }
    }
  ]
}
post
Authorizations
Body
skustringOptional

Listing SKU

Responses
201
Creating a course
application/json
post
POST /api/v1/courses HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 524

{
  "course": {
    "title": "text",
    "description": "text",
    "path": "text",
    "teaser": "text",
    "enrollment_open": "text",
    "enrollment_open_from": "text",
    "enrollment_open_to": "text",
    "visibility": "text",
    "enrollment_cap": "text",
    "enrollment_fee": "text",
    "allowed_payment_types": "text",
    "days_to_complete": "text",
    "account_id": "text",
    "list_order": "text",
    "waitlist": "text",
    "waitlist_cap": "text",
    "listing_image": "text",
    "tag_names": [
      "text"
    ],
    "show_free_banner": "text",
    "associated_account_ids": "text",
    "canvas_course_id": "text",
    "credits": "text"
  },
  "sku": "text"
}
201

Creating a course

{
  "course": {
    "id": 2,
    "visibility": "listed",
    "enrollment_open": true,
    "enrollment_open_from": null,
    "enrollment_open_to": null,
    "enrollment_cap": 150,
    "description": "This is a very important course.",
    "enrollment_fee": 49.99,
    "created_at": "2025/06/24 07:20:54 +0000",
    "credits": 4,
    "measurement": "credit",
    "updated_at": "2025/06/24 07:20:54 +0000",
    "short_description": "This is an example teaser",
    "listing_path": "course-1",
    "listing_image": null,
    "currency": "USD",
    "catalog": {
      "id": 4,
      "name": "Domain Account 4"
    },
    "type": "Course",
    "title": "Course 1",
    "list_order": 123,
    "waitlist": true,
    "waitlist_cap": 25,
    "sku": "abc1234",
    "show_free_banner": true,
    "image_alt_text": null,
    "allowed_payment_types": [
      "standard"
    ],
    "tag_names": [
      "Tag",
      "Another Tag"
    ],
    "listing_url": "http://www.my-catalog.edu/courses/course-1",
    "start_date": null,
    "end_date": null,
    "canvas_section_id": null,
    "associated_account_ids": [],
    "canvas_course": {
      "id": 10010010
    }
  }
}
get
Authorizations
Path parameters
idintegerRequired
Responses
200
Getting a specific course
application/json
get
GET /api/v1/courses/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a specific course

{
  "course": {
    "id": 5,
    "visibility": "listed",
    "enrollment_open": true,
    "enrollment_open_from": null,
    "enrollment_open_to": null,
    "enrollment_cap": null,
    "description": "description_4",
    "enrollment_fee": 0,
    "created_at": "2025/06/24 07:20:54 +0000",
    "credits": 3,
    "measurement": "credit",
    "updated_at": "2025/06/24 07:20:54 +0000",
    "short_description": "teaser_4",
    "listing_path": "course-path-4",
    "listing_image": null,
    "currency": "USD",
    "catalog": {
      "id": 7,
      "name": "Domain Account 7"
    },
    "type": "Course",
    "title": "Course 4",
    "list_order": null,
    "waitlist": false,
    "waitlist_cap": null,
    "sku": "sku_4",
    "show_free_banner": true,
    "image_alt_text": null,
    "allowed_payment_types": [
      "standard"
    ],
    "tag_names": [
      "Another Tag",
      "Tag"
    ],
    "listing_url": "http://www.my-catalog.edu/courses/course-path-4",
    "start_date": "2025/06/17 07:20:54 +0000",
    "end_date": "2025/07/01 07:20:54 +0000",
    "canvas_section_id": null,
    "associated_account_ids": [],
    "canvas_course": {
      "id": 4
    }
  }
}
put
Authorizations
Path parameters
idintegerRequired
Body
skustringOptional

Listing SKU

Responses
204
Updating a course
*/*
Responseobject
put
PUT /api/v1/courses/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 524

{
  "course": {
    "title": "text",
    "description": "text",
    "path": "text",
    "teaser": "text",
    "enrollment_open": "text",
    "enrollment_open_from": "text",
    "enrollment_open_to": "text",
    "visibility": "text",
    "enrollment_cap": "text",
    "enrollment_fee": "text",
    "allowed_payment_types": "text",
    "days_to_complete": "text",
    "account_id": "text",
    "list_order": "text",
    "waitlist": "text",
    "waitlist_cap": "text",
    "listing_image": "text",
    "tag_names": [
      "text"
    ],
    "show_free_banner": "text",
    "associated_account_ids": "text",
    "canvas_course_id": "text",
    "credits": "text"
  },
  "sku": "text"
}
204

Updating a course

{}
delete
Authorizations
Path parameters
idintegerRequired
Responses
204
Deleting a specific course
*/*
Responseobject
delete
DELETE /api/v1/courses/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
204

Deleting a specific course

{}
put
Authorizations
Body
attachmentstring · binaryRequired

CSV containing a Catalog Course ID and Catalog Course SKU header

Responses
200
Updating course sku
application/json
Responseobject
put
PUT /api/v1/courses/update_skus HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: multipart/form-data
Accept: */*
Content-Length: 23

{
  "attachment": "binary"
}
200

Updating course sku

{
  "progress": {
    "id": 2,
    "account_id": 8,
    "canvas_user_id": null,
    "completion_percent": null,
    "workflow_state": "queued",
    "payload": {},
    "created_at": "2025/06/24 07:20:54 +0000",
    "updated_at": "2025/06/24 07:20:54 +0000"
  }
}
get
Authorizations
Path parameters
idintegerRequired
Responses
200
Getting a specific program
application/json
get
GET /api/v1/programs/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a specific program

{
  "program": {
    "id": 7,
    "visibility": "listed",
    "enrollment_open": true,
    "enrollment_open_from": null,
    "enrollment_open_to": null,
    "enrollment_cap": null,
    "description": "description_6",
    "enrollment_fee": 0,
    "created_at": "2025/06/24 07:20:54 +0000",
    "credits": 9,
    "measurement": "credit",
    "updated_at": "2025/06/24 07:20:54 +0000",
    "short_description": "teaser_6",
    "listing_path": "program-path-6",
    "listing_image": null,
    "currency": "USD",
    "catalog": {
      "id": 10,
      "name": "Domain Account 11"
    },
    "type": "Program",
    "title": "Program 6",
    "list_order": null,
    "waitlist": false,
    "waitlist_cap": null,
    "sku": null,
    "show_free_banner": true,
    "image_alt_text": null,
    "allowed_payment_types": [
      "standard"
    ],
    "tag_names": [
      "Another Tag",
      "Tag"
    ],
    "listing_url": "http://www.my-catalog.edu/programs/program-path-6",
    "start_date": "2025/06/17 07:20:54 +0000",
    "end_date": null,
    "canvas_section_id": null,
    "associated_account_ids": [],
    "sequential": true,
    "requirements": [
      {
        "id": 8,
        "visibility": "listed",
        "enrollment_open": true,
        "enrollment_open_from": null,
        "enrollment_open_to": null,
        "enrollment_cap": null,
        "description": "description_7",
        "enrollment_fee": 0,
        "created_at": "2025/06/24 07:20:54 +0000",
        "credits": 3,
        "measurement": "credit",
        "updated_at": "2025/06/24 07:20:54 +0000",
        "short_description": "teaser_7",
        "listing_path": "program-path-7",
        "listing_image": null,
        "currency": "USD",
        "catalog": {
          "id": 10,
          "name": "Domain Account 11"
        },
        "type": "Program",
        "title": "Program 7",
        "list_order": null,
        "waitlist": false,
        "waitlist_cap": null,
        "sku": null,
        "show_free_banner": true,
        "image_alt_text": null,
        "allowed_payment_types": [
          "standard"
        ],
        "tag_names": [],
        "listing_url": "http://www.my-catalog.edu/programs/program-path-7",
        "start_date": "2025/06/17 07:20:54 +0000",
        "end_date": null,
        "canvas_section_id": null,
        "associated_account_ids": [],
        "sequential": true,
        "requirements": [
          {
            "id": 10,
            "visibility": "listed",
            "enrollment_open": true,
            "enrollment_open_from": null,
            "enrollment_open_to": null,
            "enrollment_cap": null,
            "description": "description_9",
            "enrollment_fee": 0,
            "created_at": "2025/06/24 07:20:54 +0000",
            "credits": 3,
            "measurement": "credit",
            "updated_at": "2025/06/24 07:20:54 +0000",
            "short_description": "teaser_9",
            "listing_path": "course-path-9",
            "listing_image": null,
            "currency": "USD",
            "catalog": {
              "id": 10,
              "name": "Domain Account 11"
            },
            "type": "Course",
            "title": "Course 9",
            "list_order": null,
            "waitlist": false,
            "waitlist_cap": null,
            "sku": "sku_6",
            "show_free_banner": true,
            "image_alt_text": null,
            "allowed_payment_types": [
              "standard"
            ],
            "tag_names": [],
            "listing_url": "http://www.my-catalog.edu/courses/course-path-9",
            "start_date": "2025/06/17 07:20:54 +0000",
            "end_date": "2025/07/01 07:20:54 +0000",
            "canvas_section_id": null,
            "associated_account_ids": [],
            "canvas_course": {
              "id": 6
            }
          }
        ]
      },
      {
        "id": 9,
        "visibility": "listed",
        "enrollment_open": true,
        "enrollment_open_from": null,
        "enrollment_open_to": null,
        "enrollment_cap": null,
        "description": "description_8",
        "enrollment_fee": 0,
        "created_at": "2025/06/24 07:20:54 +0000",
        "credits": 6,
        "measurement": "credit",
        "updated_at": "2025/06/24 07:20:54 +0000",
        "short_description": "teaser_8",
        "listing_path": "program-path-8",
        "listing_image": null,
        "currency": "USD",
        "catalog": {
          "id": 10,
          "name": "Domain Account 11"
        },
        "type": "Program",
        "title": "Program 8",
        "list_order": null,
        "waitlist": false,
        "waitlist_cap": null,
        "sku": null,
        "show_free_banner": true,
        "image_alt_text": null,
        "allowed_payment_types": [
          "standard"
        ],
        "tag_names": [],
        "listing_url": "http://www.my-catalog.edu/programs/program-path-8",
        "start_date": "2025/06/17 07:20:54 +0000",
        "end_date": null,
        "canvas_section_id": null,
        "associated_account_ids": [],
        "sequential": true,
        "requirements": [
          {
            "id": 11,
            "visibility": "listed",
            "enrollment_open": true,
            "enrollment_open_from": null,
            "enrollment_open_to": null,
            "enrollment_cap": null,
            "description": "description_10",
            "enrollment_fee": 0,
            "created_at": "2025/06/24 07:20:54 +0000",
            "credits": 3,
            "measurement": "credit",
            "updated_at": "2025/06/24 07:20:54 +0000",
            "short_description": "teaser_10",
            "listing_path": "course-path-10",
            "listing_image": null,
            "currency": "USD",
            "catalog": {
              "id": 10,
              "name": "Domain Account 11"
            },
            "type": "Course",
            "title": "Course 10",
            "list_order": null,
            "waitlist": false,
            "waitlist_cap": null,
            "sku": "sku_7",
            "show_free_banner": true,
            "image_alt_text": null,
            "allowed_payment_types": [
              "standard"
            ],
            "tag_names": [],
            "listing_url": "http://www.my-catalog.edu/courses/course-path-10",
            "start_date": "2025/06/17 07:20:54 +0000",
            "end_date": "2025/07/01 07:20:54 +0000",
            "canvas_section_id": null,
            "associated_account_ids": [],
            "canvas_course": {
              "id": 7
            }
          },
          {
            "id": 12,
            "visibility": "listed",
            "enrollment_open": true,
            "enrollment_open_from": null,
            "enrollment_open_to": null,
            "enrollment_cap": null,
            "description": "description_11",
            "enrollment_fee": 0,
            "created_at": "2025/06/24 07:20:54 +0000",
            "credits": 3,
            "measurement": "credit",
            "updated_at": "2025/06/24 07:20:54 +0000",
            "short_description": "teaser_11",
            "listing_path": "course-path-11",
            "listing_image": null,
            "currency": "USD",
            "catalog": {
              "id": 10,
              "name": "Domain Account 11"
            },
            "type": "Course",
            "title": "Course 11",
            "list_order": null,
            "waitlist": false,
            "waitlist_cap": null,
            "sku": "sku_8",
            "show_free_banner": true,
            "image_alt_text": null,
            "allowed_payment_types": [
              "standard"
            ],
            "tag_names": [],
            "listing_url": "http://www.my-catalog.edu/courses/course-path-11",
            "start_date": "2025/06/17 07:20:54 +0000",
            "end_date": "2025/07/01 07:20:54 +0000",
            "canvas_section_id": null,
            "associated_account_ids": [],
            "canvas_course": {
              "id": 8
            }
          }
        ]
      }
    ]
  }
}
put
Authorizations
Path parameters
idintegerRequired
Body
skustringOptional

Listing SKU

Responses
204
Updating a program
*/*
Responseobject
put
PUT /api/v1/programs/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 527

{
  "program": {
    "title": "text",
    "description": "text",
    "path": "text",
    "teaser": "text",
    "enrollment_open": "text",
    "enrollment_open_from": "text",
    "enrollment_open_to": "text",
    "visibility": "text",
    "enrollment_cap": "text",
    "enrollment_fee": "text",
    "allowed_payment_types": "text",
    "days_to_complete": "text",
    "account_id": "text",
    "list_order": "text",
    "waitlist": "text",
    "waitlist_cap": "text",
    "listing_image": "text",
    "tag_names": [
      "text"
    ],
    "show_free_banner": "text",
    "associated_account_ids": "text",
    "requirement_ids": "text",
    "sequential": "text"
  },
  "sku": "text"
}
204

Updating a program

{}
delete
Authorizations
Path parameters
idintegerRequired
Responses
204
Deleting a specific program
*/*
Responseobject
delete
DELETE /api/v1/programs/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
204

Deleting a specific program

{}
get
Authorizations
Responses
200
Listing programs
application/json
Responseobject
get
GET /api/v1/programs HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Listing programs

{
  "programs": [
    {
      "id": 13,
      "visibility": "listed",
      "enrollment_open": true,
      "enrollment_open_from": null,
      "enrollment_open_to": null,
      "enrollment_cap": null,
      "description": "description_12",
      "enrollment_fee": 0,
      "created_at": "2025/06/24 07:20:54 +0000",
      "credits": 9,
      "measurement": "credit",
      "updated_at": "2025/06/24 07:20:54 +0000",
      "short_description": "teaser_12",
      "listing_path": "program-path-12",
      "listing_image": null,
      "currency": "USD",
      "catalog": {
        "id": 11,
        "name": "Domain Account 12"
      },
      "type": "Program",
      "title": "Program 12",
      "list_order": null,
      "waitlist": false,
      "waitlist_cap": null,
      "sku": null,
      "show_free_banner": true,
      "image_alt_text": null,
      "allowed_payment_types": [
        "standard"
      ],
      "tag_names": [
        "Another Tag",
        "Tag"
      ],
      "listing_url": "http://www.my-catalog.edu/programs/program-path-12",
      "start_date": "2025/06/17 07:20:54 +0000",
      "end_date": null,
      "canvas_section_id": null,
      "associated_account_ids": [],
      "sequential": true,
      "requirements": [
        {
          "id": 14,
          "visibility": "listed",
          "enrollment_open": true,
          "enrollment_open_from": null,
          "enrollment_open_to": null,
          "enrollment_cap": null,
          "description": "description_13",
          "enrollment_fee": 0,
          "created_at": "2025/06/24 07:20:54 +0000",
          "credits": 3,
          "measurement": "credit",
          "updated_at": "2025/06/24 07:20:54 +0000",
          "short_description": "teaser_13",
          "listing_path": "program-path-13",
          "listing_image": null,
          "currency": "USD",
          "catalog": {
            "id": 11,
            "name": "Domain Account 12"
          },
          "type": "Program",
          "title": "Program 13",
          "list_order": null,
          "waitlist": false,
          "waitlist_cap": null,
          "sku": null,
          "show_free_banner": true,
          "image_alt_text": null,
          "allowed_payment_types": [
            "standard"
          ],
          "tag_names": [],
          "listing_url": "http://www.my-catalog.edu/programs/program-path-13",
          "start_date": "2025/06/17 07:20:54 +0000",
          "end_date": null,
          "canvas_section_id": null,
          "associated_account_ids": [],
          "sequential": true,
          "requirements": [
            {
              "id": 16,
              "visibility": "listed",
              "enrollment_open": true,
              "enrollment_open_from": null,
              "enrollment_open_to": null,
              "enrollment_cap": null,
              "description": "description_15",
              "enrollment_fee": 0,
              "created_at": "2025/06/24 07:20:54 +0000",
              "credits": 3,
              "measurement": "credit",
              "updated_at": "2025/06/24 07:20:54 +0000",
              "short_description": "teaser_15",
              "listing_path": "course-path-15",
              "listing_image": null,
              "currency": "USD",
              "catalog": {
                "id": 11,
                "name": "Domain Account 12"
              },
              "type": "Course",
              "title": "Course 15",
              "list_order": null,
              "waitlist": false,
              "waitlist_cap": null,
              "sku": "sku_9",
              "show_free_banner": true,
              "image_alt_text": null,
              "allowed_payment_types": [
                "standard"
              ],
              "tag_names": [],
              "listing_url": "http://www.my-catalog.edu/courses/course-path-15",
              "start_date": "2025/06/17 07:20:54 +0000",
              "end_date": "2025/07/01 07:20:54 +0000",
              "canvas_section_id": null,
              "associated_account_ids": [],
              "canvas_course": {
                "id": 9
              }
            }
          ]
        },
        {
          "id": 15,
          "visibility": "listed",
          "enrollment_open": true,
          "enrollment_open_from": null,
          "enrollment_open_to": null,
          "enrollment_cap": null,
          "description": "description_14",
          "enrollment_fee": 0,
          "created_at": "2025/06/24 07:20:54 +0000",
          "credits": 6,
          "measurement": "credit",
          "updated_at": "2025/06/24 07:20:54 +0000",
          "short_description": "teaser_14",
          "listing_path": "program-path-14",
          "listing_image": null,
          "currency": "USD",
          "catalog": {
            "id": 11,
            "name": "Domain Account 12"
          },
          "type": "Program",
          "title": "Program 14",
          "list_order": null,
          "waitlist": false,
          "waitlist_cap": null,
          "sku": null,
          "show_free_banner": true,
          "image_alt_text": null,
          "allowed_payment_types": [
            "standard"
          ],
          "tag_names": [],
          "listing_url": "http://www.my-catalog.edu/programs/program-path-14",
          "start_date": "2025/06/17 07:20:54 +0000",
          "end_date": null,
          "canvas_section_id": null,
          "associated_account_ids": [],
          "sequential": true,
          "requirements": [
            {
              "id": 17,
              "visibility": "listed",
              "enrollment_open": true,
              "enrollment_open_from": null,
              "enrollment_open_to": null,
              "enrollment_cap": null,
              "description": "description_16",
              "enrollment_fee": 0,
              "created_at": "2025/06/24 07:20:54 +0000",
              "credits": 3,
              "measurement": "credit",
              "updated_at": "2025/06/24 07:20:54 +0000",
              "short_description": "teaser_16",
              "listing_path": "course-path-16",
              "listing_image": null,
              "currency": "USD",
              "catalog": {
                "id": 11,
                "name": "Domain Account 12"
              },
              "type": "Course",
              "title": "Course 16",
              "list_order": null,
              "waitlist": false,
              "waitlist_cap": null,
              "sku": "sku_10",
              "show_free_banner": true,
              "image_alt_text": null,
              "allowed_payment_types": [
                "standard"
              ],
              "tag_names": [],
              "listing_url": "http://www.my-catalog.edu/courses/course-path-16",
              "start_date": "2025/06/17 07:20:54 +0000",
              "end_date": "2025/07/01 07:20:54 +0000",
              "canvas_section_id": null,
              "associated_account_ids": [],
              "canvas_course": {
                "id": 10
              }
            },
            {
              "id": 18,
              "visibility": "listed",
              "enrollment_open": true,
              "enrollment_open_from": null,
              "enrollment_open_to": null,
              "enrollment_cap": null,
              "description": "description_17",
              "enrollment_fee": 0,
              "created_at": "2025/06/24 07:20:54 +0000",
              "credits": 3,
              "measurement": "credit",
              "updated_at": "2025/06/24 07:20:54 +0000",
              "short_description": "teaser_17",
              "listing_path": "course-path-17",
              "listing_image": null,
              "currency": "USD",
              "catalog": {
                "id": 11,
                "name": "Domain Account 12"
              },
              "type": "Course",
              "title": "Course 17",
              "list_order": null,
              "waitlist": false,
              "waitlist_cap": null,
              "sku": "sku_11",
              "show_free_banner": true,
              "image_alt_text": null,
              "allowed_payment_types": [
                "standard"
              ],
              "tag_names": [],
              "listing_url": "http://www.my-catalog.edu/courses/course-path-17",
              "start_date": "2025/06/17 07:20:54 +0000",
              "end_date": "2025/07/01 07:20:54 +0000",
              "canvas_section_id": null,
              "associated_account_ids": [],
              "canvas_course": {
                "id": 11
              }
            }
          ]
        }
      ]
    },
    {
      "id": 14,
      "visibility": "listed",
      "enrollment_open": true,
      "enrollment_open_from": null,
      "enrollment_open_to": null,
      "enrollment_cap": null,
      "description": "description_13",
      "enrollment_fee": 0,
      "created_at": "2025/06/24 07:20:54 +0000",
      "credits": 3,
      "measurement": "credit",
      "updated_at": "2025/06/24 07:20:54 +0000",
      "short_description": "teaser_13",
      "listing_path": "program-path-13",
      "listing_image": null,
      "currency": "USD",
      "catalog": {
        "id": 11,
        "name": "Domain Account 12"
      },
      "type": "Program",
      "title": "Program 13",
      "list_order": null,
      "waitlist": false,
      "waitlist_cap": null,
      "sku": null,
      "show_free_banner": true,
      "image_alt_text": null,
      "allowed_payment_types": [
        "standard"
      ],
      "tag_names": [],
      "listing_url": "http://www.my-catalog.edu/programs/program-path-13",
      "start_date": "2025/06/17 07:20:54 +0000",
      "end_date": null,
      "canvas_section_id": null,
      "associated_account_ids": [],
      "sequential": true,
      "requirements": [
        {
          "id": 16,
          "visibility": "listed",
          "enrollment_open": true,
          "enrollment_open_from": null,
          "enrollment_open_to": null,
          "enrollment_cap": null,
          "description": "description_15",
          "enrollment_fee": 0,
          "created_at": "2025/06/24 07:20:54 +0000",
          "credits": 3,
          "measurement": "credit",
          "updated_at": "2025/06/24 07:20:54 +0000",
          "short_description": "teaser_15",
          "listing_path": "course-path-15",
          "listing_image": null,
          "currency": "USD",
          "catalog": {
            "id": 11,
            "name": "Domain Account 12"
          },
          "type": "Course",
          "title": "Course 15",
          "list_order": null,
          "waitlist": false,
          "waitlist_cap": null,
          "sku": "sku_9",
          "show_free_banner": true,
          "image_alt_text": null,
          "allowed_payment_types": [
            "standard"
          ],
          "tag_names": [],
          "listing_url": "http://www.my-catalog.edu/courses/course-path-15",
          "start_date": "2025/06/17 07:20:54 +0000",
          "end_date": "2025/07/01 07:20:54 +0000",
          "canvas_section_id": null,
          "associated_account_ids": [],
          "canvas_course": {
            "id": 9
          }
        }
      ]
    },
    {
      "id": 15,
      "visibility": "listed",
      "enrollment_open": true,
      "enrollment_open_from": null,
      "enrollment_open_to": null,
      "enrollment_cap": null,
      "description": "description_14",
      "enrollment_fee": 0,
      "created_at": "2025/06/24 07:20:54 +0000",
      "credits": 6,
      "measurement": "credit",
      "updated_at": "2025/06/24 07:20:54 +0000",
      "short_description": "teaser_14",
      "listing_path": "program-path-14",
      "listing_image": null,
      "currency": "USD",
      "catalog": {
        "id": 11,
        "name": "Domain Account 12"
      },
      "type": "Program",
      "title": "Program 14",
      "list_order": null,
      "waitlist": false,
      "waitlist_cap": null,
      "sku": null,
      "show_free_banner": true,
      "image_alt_text": null,
      "allowed_payment_types": [
        "standard"
      ],
      "tag_names": [],
      "listing_url": "http://www.my-catalog.edu/programs/program-path-14",
      "start_date": "2025/06/17 07:20:54 +0000",
      "end_date": null,
      "canvas_section_id": null,
      "associated_account_ids": [],
      "sequential": true,
      "requirements": [
        {
          "id": 17,
          "visibility": "listed",
          "enrollment_open": true,
          "enrollment_open_from": null,
          "enrollment_open_to": null,
          "enrollment_cap": null,
          "description": "description_16",
          "enrollment_fee": 0,
          "created_at": "2025/06/24 07:20:54 +0000",
          "credits": 3,
          "measurement": "credit",
          "updated_at": "2025/06/24 07:20:54 +0000",
          "short_description": "teaser_16",
          "listing_path": "course-path-16",
          "listing_image": null,
          "currency": "USD",
          "catalog": {
            "id": 11,
            "name": "Domain Account 12"
          },
          "type": "Course",
          "title": "Course 16",
          "list_order": null,
          "waitlist": false,
          "waitlist_cap": null,
          "sku": "sku_10",
          "show_free_banner": true,
          "image_alt_text": null,
          "allowed_payment_types": [
            "standard"
          ],
          "tag_names": [],
          "listing_url": "http://www.my-catalog.edu/courses/course-path-16",
          "start_date": "2025/06/17 07:20:54 +0000",
          "end_date": "2025/07/01 07:20:54 +0000",
          "canvas_section_id": null,
          "associated_account_ids": [],
          "canvas_course": {
            "id": 10
          }
        },
        {
          "id": 18,
          "visibility": "listed",
          "enrollment_open": true,
          "enrollment_open_from": null,
          "enrollment_open_to": null,
          "enrollment_cap": null,
          "description": "description_17",
          "enrollment_fee": 0,
          "created_at": "2025/06/24 07:20:54 +0000",
          "credits": 3,
          "measurement": "credit",
          "updated_at": "2025/06/24 07:20:54 +0000",
          "short_description": "teaser_17",
          "listing_path": "course-path-17",
          "listing_image": null,
          "currency": "USD",
          "catalog": {
            "id": 11,
            "name": "Domain Account 12"
          },
          "type": "Course",
          "title": "Course 17",
          "list_order": null,
          "waitlist": false,
          "waitlist_cap": null,
          "sku": "sku_11",
          "show_free_banner": true,
          "image_alt_text": null,
          "allowed_payment_types": [
            "standard"
          ],
          "tag_names": [],
          "listing_url": "http://www.my-catalog.edu/courses/course-path-17",
          "start_date": "2025/06/17 07:20:54 +0000",
          "end_date": "2025/07/01 07:20:54 +0000",
          "canvas_section_id": null,
          "associated_account_ids": [],
          "canvas_course": {
            "id": 11
          }
        }
      ]
    }
  ]
}
post
Authorizations
Body
skustringOptional

Listing SKU

Responses
201
Creating a program
application/json
post
POST /api/v1/programs HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 527

{
  "program": {
    "title": "text",
    "description": "text",
    "path": "text",
    "teaser": "text",
    "enrollment_open": "text",
    "enrollment_open_from": "text",
    "enrollment_open_to": "text",
    "visibility": "text",
    "enrollment_cap": "text",
    "enrollment_fee": "text",
    "allowed_payment_types": "text",
    "days_to_complete": "text",
    "account_id": "text",
    "list_order": "text",
    "waitlist": "text",
    "waitlist_cap": "text",
    "listing_image": "text",
    "tag_names": [
      "text"
    ],
    "show_free_banner": "text",
    "associated_account_ids": "text",
    "requirement_ids": "text",
    "sequential": "text"
  },
  "sku": "text"
}
201

Creating a program

{
  "program": {
    "id": 19,
    "visibility": "listed",
    "enrollment_open": true,
    "enrollment_open_from": null,
    "enrollment_open_to": null,
    "enrollment_cap": 150,
    "description": "This is a very awesome program.",
    "enrollment_fee": 49.99,
    "created_at": "2025/06/24 07:20:55 +0000",
    "credits": null,
    "measurement": "credit",
    "updated_at": "2025/06/24 07:20:55 +0000",
    "short_description": "This is an example teaser",
    "listing_path": "program-1",
    "listing_image": null,
    "currency": "USD",
    "catalog": {
      "id": 12,
      "name": "Domain Account 13"
    },
    "type": "Program",
    "title": "Program 1",
    "list_order": 123,
    "waitlist": true,
    "waitlist_cap": 12,
    "sku": "abc1234",
    "show_free_banner": true,
    "image_alt_text": null,
    "allowed_payment_types": [
      "standard"
    ],
    "tag_names": [
      "Tag",
      "Another Tag"
    ],
    "listing_url": "http://www.my-catalog.edu/programs/program-1",
    "start_date": null,
    "end_date": null,
    "canvas_section_id": null,
    "associated_account_ids": [],
    "sequential": true,
    "requirements": []
  }
}
get
Authorizations
Path parameters
idintegerRequired
Responses
200
Getting a specific tag
application/json
get
GET /api/v1/tags/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a specific tag

{
  "id": 17,
  "account_id": 1,
  "name": "Tag 1",
  "assigned_listings": [
    {
      "id": 3,
      "title": "Course 1",
      "type": "COURSE",
      "canvas_course_id": 4
    }
  ],
  "assigned_categories": [
    {
      "id": 12,
      "account_id": 5,
      "tag_id": 17,
      "created_at": "2023-08-22T06:33:38.991906Z",
      "updated_at": "2023-08-24T06:33:38.991906Z"
    }
  ],
  "created_at": "2023-08-07T09:45:45.535989Z",
  "updated_at": "2023-08-07T09:45:45.535989Z"
}
put
Authorizations
Path parameters
idintegerRequired
Body
namestringRequired

New tag name (minimum 1 and maximum 255 characters)

Responses
200
Updating a specific tag
application/json
put
PUT /api/v1/tags/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 15

"name='text'"
200

Updating a specific tag

{
  "id": 17,
  "account_id": 1,
  "name": "New tag name",
  "assigned_listings": [
    {
      "id": 3,
      "title": "Course 1",
      "type": "COURSE",
      "canvas_course_id": 4
    }
  ],
  "assigned_categories": [
    {
      "id": 12,
      "account_id": 5,
      "tag_id": 17,
      "created_at": "2023-08-22T06:33:38.991906Z",
      "updated_at": "2023-08-24T06:33:38.991906Z"
    }
  ],
  "created_at": "2023-08-07T09:45:45.535989Z",
  "updated_at": "2023-08-07T09:45:45.535989Z"
}
delete
Authorizations
Path parameters
idintegerRequired
Responses
200
Deleting a specific tag
application/json
delete
DELETE /api/v1/tags/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Deleting a specific tag

{
  "id": 17,
  "account_id": 1,
  "name": "Tag 1",
  "assigned_listings": [],
  "assigned_categories": [],
  "created_at": "2023-08-07T09:45:45.535989Z",
  "updated_at": "2023-08-07T09:45:45.535989Z",
  "is_deleted": true
}
get
Authorizations
Query parameters
product_idsstringOptional

List of product ids (maximum 20 ids)

namestringOptional

Search value which will be searched in tag name and associated products names

has_categorybooleanOptional

Tag has category or not

updated_at_fromstringOptional

Updated at from

updated_at_tostringOptional

Updated at to

created_at_fromstringOptional

Created at from

created_at_tostringOptional

Created at to

Responses
200
Listing tags
application/json
get
GET /api/v1/tags HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Listing tags

{
  "tags": [
    {
      "id": 17,
      "account_id": 1,
      "name": "Tag 1",
      "assigned_listings": [
        {
          "id": 3,
          "title": "Course 1",
          "type": "COURSE",
          "canvas_course_id": 4
        }
      ],
      "assigned_categories": [
        {
          "id": 12,
          "account_id": 5,
          "tag_id": 17,
          "created_at": "2023-08-22T06:33:38.991906Z",
          "updated_at": "2023-08-24T06:33:38.991906Z"
        }
      ],
      "created_at": "2023-08-07T09:45:45.535989Z",
      "updated_at": "2023-08-07T09:45:45.535989Z"
    }
  ]
}
post
Authorizations
Body
namestringRequired

Tag name (minimum 1 and maximum 255 characters)

product_idsstringOptional

List of product ids associate to this tag

Responses
200
Creating a tag
application/json
post
POST /api/v1/tags HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 36

"name='text'&product_ids='text'"
200

Creating a tag

{
  "id": 17,
  "account_id": 1,
  "name": "Tag 1",
  "assigned_listings": [
    {
      "id": 1,
      "title": "Course 1",
      "type": "COURSE",
      "canvas_course_id": 2
    },
    {
      "id": 2,
      "title": "Course 2",
      "type": "COURSE",
      "canvas_course_id": 3
    },
    {
      "id": 3,
      "title": "Program 1",
      "type": "PROGRAM"
    }
  ],
  "assigned_categories": [],
  "created_at": "2023-08-07T09:45:45.535989Z",
  "updated_at": "2023-08-07T09:45:45.535989Z"
}
get
Authorizations
Query parameters
listing_idstringOptional

Only include enrollments for the specified listing

Responses
200
Listing enrollments
application/json
Responseobject
get
GET /api/v1/enrollments HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Listing enrollments

{
  "enrollments": [
    {
      "id": 5,
      "user": {
        "id": 1
      },
      "listing": {
        "id": 30,
        "title": "Course 28",
        "type": "Course",
        "canvas_course_id": 18
      },
      "enrolled_at": "2025/06/24 07:20:55 +0000",
      "status": "active",
      "requirement_details": {
        "requirement_count": null,
        "requirement_completed_count": null,
        "requirement_completed_percentage": null
      }
    }
  ]
}
post
Authorizations
Body
create_orderstringOptional

Create an order record for this enrollment, defaults to true

send_emailstringOptional

Send an enrollment email to the user, defaults to true

Responses
201
Creating an enrollment
application/json
post
POST /api/v1/enrollments HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 102

{
  "create_order": "text",
  "send_email": "text",
  "enrollment": {
    "listing_id": "text",
    "canvas_user_id": "text"
  }
}
201

Creating an enrollment

{
  "enrollment": {
    "id": 2,
    "user": {
      "id": 1
    },
    "listing": {
      "id": 27,
      "title": "Course 25",
      "type": "Course",
      "canvas_course_id": 15
    },
    "enrolled_at": "2025/06/24 07:20:55 +0000",
    "status": "active",
    "requirement_details": {
      "requirement_count": 10,
      "requirement_completed_count": 4,
      "requirement_completed_percentage": 40
    }
  }
}
get
Authorizations
Path parameters
idintegerRequired
Responses
200
Getting a specific enrollment
application/json
get
GET /api/v1/enrollments/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a specific enrollment

{
  "enrollment": {
    "id": 4,
    "user": {
      "id": 1
    },
    "listing": {
      "id": 29,
      "title": "Course 27",
      "type": "Course",
      "canvas_course_id": 17
    },
    "enrolled_at": "2025/06/24 07:20:55 +0000",
    "status": "active",
    "requirement_details": {
      "requirement_count": 10,
      "requirement_completed_count": 4,
      "requirement_completed_percentage": 40
    }
  }
}
delete
Authorizations
Path parameters
idintegerRequired
Responses
204
Deleting an enrollment
*/*
delete
DELETE /api/v1/enrollments/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
204

Deleting an enrollment

{
  "id": "text",
  "user": {
    "id": "text"
  },
  "listing": {
    "id": "text",
    "title": "text",
    "type": "text",
    "canvas_course_id": "text"
  },
  "enrolled_at": "text",
  "status": "text",
  "requirement_details": {
    "requirement_count": "text",
    "requirement_completed_count": "text",
    "requirement_completed_percentage": "text"
  }
}
get
Authorizations
Path parameters
idintegerRequired
Query parameters
idintegerRequired

Catalog user id

Responses
200
Getting a specific user
application/json
get
GET /api/v1/users/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a specific user

{
  "user": {
    "id": 2,
    "root_account_id": 27,
    "canvas_user_id": 2,
    "registered_account_id": 27,
    "canvas_root_account_uuid": "GUxMJJhiZ8ugUdRADskc0nJrcMXuYYIwV15aWiMO",
    "canvas_user_uuid": "573SBAKMeMX3pAa6iOcml1a81xzsVaomatXUBhUT",
    "user_name": "Firstname Lastname",
    "first_name": "Firstname",
    "last_name": "Lastname",
    "email_address": "[email protected]",
    "custom_fields": {
      "favorite_color": "#BADA55",
      "code_of_conduct": "1",
      "age": "19"
    },
    "created_at": "2024-04-11T15:33:45.503Z",
    "updated_at": "2024-04-11T15:33:45.563514Z",
    "merged_into_user_id": 4,
    "time_zone": "Etc/UTC"
  }
}
put
Authorizations
Path parameters
idintegerRequired
Body
idintegerRequired

Catalog user id

clear_merged_into_user_idstringOptional

It will clear merged_into_user_id field of user if set to true

Responses
200
Updating a specific user
application/json
put
PUT /api/v1/users/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 43

"id=1&clear_merged_into_user_id='text'"
200

Updating a specific user

{
  "user": {
    "id": 4,
    "root_account_id": 29,
    "canvas_user_id": 2,
    "registered_account_id": 29,
    "canvas_root_account_uuid": "GUxMJJhiZ8ugUdRADskc0nJrcMXuYYIwV15aWiMO",
    "canvas_user_uuid": "573SBAKMeMX3pAa6iOcml1a81xzsVaomatXUBhUT",
    "user_name": "Firstname Lastname",
    "first_name": "Firstname",
    "last_name": "Lastname",
    "email_address": "[email protected]",
    "custom_fields": {
      "favorite_color": "#BADA55",
      "code_of_conduct": "1",
      "age": "19"
    },
    "created_at": "2024-04-11T15:33:45.503Z",
    "updated_at": "2024-04-11T15:33:45.563514Z",
    "merged_into_user_id": null,
    "time_zone": "Etc/UTC"
  }
}
delete
Authorizations
Path parameters
idintegerRequired
Body
idintegerRequired

Catalog user id

only_orders_and_enrollmentsstringOptional

Delete only orders and enrollments (user dependencies) except user and related account admins OR delete user dependencies including user and related account admins

Responses
200
Deleting a specific user with dependencies
application/json
Responseobject
delete
DELETE /api/v1/users/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 45

"id=1&only_orders_and_enrollments='text'"
200

Deleting a specific user with dependencies

{}
get
Authorizations
Query parameters
registered_in_catalogbooleanOptional

If true, only queries users registered through Catalog. If false, only queries users registered through Canvas. If not specified, queries all users.

canvas_user_idintegerOptional

Canvas user id

created_at_fromstringOptional

Created at from. Suggested format YYYY-MM-DDTHH:MM:SSZ, e.g. 2018-01-01T00:00:00Z. System time zone is UTC.

created_at_tostringOptional

Created at to. Suggested format YYYY-MM-DDTHH:MM:SSZ, e.g. 2018-01-01T00:00:00Z. System time zone is UTC.

updated_at_fromstringOptional

Updated at from. Suggested format YYYY-MM-DDTHH:MM:SSZ, e.g. 2018-01-01T00:00:00Z. System time zone is UTC.

updated_at_tostringOptional

Updated at to. Suggested format YYYY-MM-DDTHH:MM:SSZ, e.g. 2018-01-01T00:00:00Z. System time zone is UTC.

Responses
200
List users
application/json
get
GET /api/v1/users HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

List users

{
  "users": [
    {
      "id": 3,
      "root_account_id": 28,
      "canvas_user_id": 2,
      "registered_account_id": 28,
      "canvas_root_account_uuid": "GUxMJJhiZ8ugUdRADskc0nJrcMXuYYIwV15aWiMO",
      "canvas_user_uuid": "573SBAKMeMX3pAa6iOcml1a81xzsVaomatXUBhUT",
      "user_name": "Firstname Lastname",
      "first_name": "Firstname",
      "last_name": "Lastname",
      "email_address": "[email protected]",
      "custom_fields": {
        "favorite_color": "#BADA55",
        "code_of_conduct": "1",
        "age": "19"
      },
      "created_at": "2024-04-11T15:33:45.503Z",
      "updated_at": "2024-04-11T15:33:45.563514Z",
      "merged_into_user_id": 4,
      "time_zone": "Etc/UTC"
    }
  ]
}
post
Authorizations
Body
user_namestringRequired

Full user name

first_namestringOptional

First name

last_namestringOptional

Last name

email_addressstringRequired

E-mail address (will also serve as login)

registered_account_idstringOptional

ID of subcatalog to associate with user (optional). If not specified, the root account ID used to generate the API key will be registered_account_id

custom_fieldsstringOptional

Hash of custom field values, e.g. { "phone": "867-5309" } (optional)

Responses
200
Registering a user
application/json
post
POST /api/v1/users HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 136

"user_name='text'&first_name='text'&last_name='text'&email_address='text'&registered_account_id='text'&custom_fields='text'"
200

Registering a user

{
  "user": {
    "id": 5,
    "root_account_id": 30,
    "canvas_user_id": 2,
    "registered_account_id": 30,
    "canvas_root_account_uuid": "GUxMJJhiZ8ugUdRADskc0nJrcMXuYYIwV15aWiMO",
    "canvas_user_uuid": "573SBAKMeMX3pAa6iOcml1a81xzsVaomatXUBhUT",
    "user_name": "Firstname Lastname",
    "first_name": "Firstname",
    "last_name": "Lastname",
    "email_address": "[email protected]",
    "custom_fields": {
      "favorite_color": "#BADA55",
      "code_of_conduct": "1",
      "age": "19"
    },
    "created_at": "2024-04-11T15:33:45.503Z",
    "updated_at": "2024-04-11T15:33:45.563514Z",
    "confirmation_url": "http://service.com/register/OBtRMuSPiFUAyStz47cbAiOHM",
    "terms_of_use": true,
    "locale": "en"
  }
}
post
Authorizations
Body
account_idsstringOptional

List of account ids

product_idsstringOptional

List of product ids

product_statusesstringOptional

List of product statuses (OPEN, CLOSED, and/or DELETED)

creation_date_fromstringOptional

Creation date from

creation_date_tostringOptional

Creation date to

enrollment_count_minstringOptional

Enrollment count minimum

enrollment_count_maxstringOptional

Enrollment count maximum

completion_count_minstringOptional

Completion count minimum

completion_count_maxstringOptional

Completion count maximum

dropped_count_minstringOptional

Dropped count minimum

dropped_count_maxstringOptional

Dropped count maximum

listing_price_minstringOptional

Listing price minimum

listing_price_maxstringOptional

Listing price maximum

promo_codesstringOptional

List of promotion code states (APPLIED and/or NOT_APPLIED)

revenue_minstringOptional

Revenue minimum

revenue_maxstringOptional

Revenue maximum

certificate_offeredstringOptional

Certificate offered for the product

Responses
200
Getting products analytics
application/json
post
POST /api/v1/analytics/products HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 443

"account_ids='text'&product_ids='text'&product_statuses='text'&creation_date_from='text'&creation_date_to='text'&enrollment_count_min='text'&enrollment_count_max='text'&completion_count_min='text'&completion_count_max='text'&dropped_count_min='text'&dropped_count_max='text'&listing_price_min='text'&listing_price_max='text'&promo_codes='text'&revenue_min='text'&revenue_max='text'&certificate_offered='text'"
200

Getting products analytics

{
  "products": [
    {
      "account_id": 3,
      "account_name": "Sub-Account 1",
      "product": {
        "name": "Course 1",
        "id": 5,
        "url": "https://www.my-catalog.edu/admin/products/1/edit",
        "sku": "sku"
      },
      "product_status": "OPEN",
      "created_at": "2023-06-05T14:46:59.944581+02:00",
      "canvas_course_id": 11,
      "enrollment_count": 7,
      "dropped_count": 3,
      "completion_count": 2,
      "currency": "USD",
      "list_price": 10,
      "promo_codes": [
        "PROMO1",
        "PROMO2"
      ],
      "discount": 10,
      "revenue": 60,
      "credits": 5,
      "certificate_offered": true
    }
  ]
}
post
Authorizations
Body
account_idsstringOptional

List of account ids

product_idsstringOptional

List of product ids

product_statusesstringOptional

List of product statuses (OPEN, CLOSED, and/or DELETED)

student_idsstringOptional

List of student ids(catalog user id)

student_canvas_user_idsstringOptional

List of student ids(canvas user id)

purchaser_idsstringOptional

List of purchaser ids(catalog user id)

purchaser_canvas_user_idsstringOptional

List of purchaser ids(canvas user id)

bulk_purchases_onlystringOptional

Bulk purchases only

purchase_date_fromstringOptional

Purchase date from

purchase_date_tostringOptional

Purchase date to

order_feestringOptional

List of order fee types (FREE and/or PAID)

listing_price_minstringOptional

Listing price minimum

listing_price_maxstringOptional

Listing price maximum

promo_codesstringOptional

List of promotion code states (APPLIED and/or NOT_APPLIED)

revenue_minstringOptional

Revenue minimum

revenue_maxstringOptional

Revenue maximum

Responses
200
Getting orders analytics
application/json
post
POST /api/v1/analytics/orders HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 400

"account_ids='text'&product_ids='text'&product_statuses='text'&student_ids='text'&student_canvas_user_ids='text'&purchaser_ids='text'&purchaser_canvas_user_ids='text'&bulk_purchases_only='text'&purchase_date_from='text'&purchase_date_to='text'&order_fee='text'&listing_price_min='text'&listing_price_max='text'&promo_codes='text'&revenue_min='text'&revenue_max='text'"
200

Getting orders analytics

{
  "orders": [
    {
      "account_id": 3,
      "account_name": "Sub-Account 1",
      "product": {
        "name": "Course 1",
        "id": 5,
        "url": "https://www.my-catalog.edu/admin/products/1/edit",
        "sku": "sku"
      },
      "product_status": "OPEN",
      "canvas_course_id": 11,
      "purchaser": {
        "id": 1,
        "canvas_user_id": 1,
        "name": "Purchaser 1",
        "email": "[email protected]",
        "canvas_user_id_string": "1"
      },
      "purchased_at": "2023-07-02T23:30:59.052239+02:00",
      "order_id": 81,
      "order_item_id": 123,
      "reference_id": "PR-81-82",
      "list_price": 5,
      "currency": "USD",
      "promo_codes": [
        "PROMO1",
        "PROMO2"
      ],
      "discount": 10,
      "revenue": 5,
      "bulk_purchase": true,
      "seat_count": 3,
      "bulk_enrollments": [
        {
          "id": 141,
          "canvas_user_id": 74,
          "name": "User 17",
          "email": "[email protected]",
          "canvas_user_id_string": "74"
        },
        {
          "id": 138,
          "canvas_user_id": 73,
          "name": "User 16",
          "email": "[email protected]",
          "canvas_user_id_string": "73"
        }
      ],
      "last_modification_date": "2023-07-09T23:30:59.052239+02:00",
      "revenue_change_history": [
        {
          "modification_date": "2023-07-09T23:30:59.052239+02:00",
          "new_value": 5,
          "new_value_currency": "USD",
          "old_value": 2,
          "old_value_currency": "USD",
          "reason": "This is very important",
          "user_name": "[email protected]",
          "user_profile_link": "https://www.my-catalog.edu/accounts/2/users/1"
        },
        {
          "modification_date": "2023-07-08T23:30:59.052239+02:00",
          "new_value": 2,
          "new_value_currency": "USD",
          "old_value": 11,
          "old_value_currency": "USD",
          "reason": "This is important",
          "user_name": "[email protected]",
          "user_profile_link": "https://www.my-catalog.edu/accounts/2/users/2"
        }
      ]
    }
  ]
}
post
Authorizations
Body
account_idsstringOptional

List of account ids

student_idsstringOptional

List of student ids(catalog user id)

student_canvas_user_idsstringOptional

List of student ids(canvas user id)

enrollment_count_minstringOptional

Enrollment count minimum

enrollment_count_maxstringOptional

Enrollment count maximum

last_enrollment_date_fromstringOptional

Last enrollment date from

last_enrollment_date_tostringOptional

Last enrollment date to

registration_date_fromstringOptional

Registration date from

registration_date_tostringOptional

Registration date to

registered_throughstringOptional

List of registration sources (CANVAS and/or CATALOG)

Responses
200
Getting users analytics
application/json
post
POST /api/v1/analytics/users HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 294

"account_ids='text'&student_ids='text'&student_canvas_user_ids='text'&enrollment_count_min='text'&enrollment_count_max='text'&last_enrollment_date_from='text'&last_enrollment_date_to='text'&registration_date_from='text'&registration_date_to='text'&registered_through='text'"
200

Getting users analytics

{
  "users": [
    {
      "id": 150,
      "canvas_user_id": 77,
      "name": "User 19",
      "email": "[email protected]",
      "account_id": 3,
      "account_name": "Sub-Account 1",
      "registered_through": "CATALOG",
      "registered_at": "2023-07-03T15:03:57.597+02:00",
      "enrollment_count": 2,
      "last_enrolled_at": "2023-07-06T17:30:50.991764+02:00",
      "custom_fields": [
        {
          "key": "text_udf",
          "value": "awesome udf"
        },
        {
          "key": "checkbox_udf",
          "value": "1"
        }
      ]
    }
  ]
}
post
Authorizations
Body
account_idsstringOptional

List of account ids

product_idsstringOptional

List of product ids

product_statusesstringOptional

List of product statuses (OPEN, CLOSED, and/or DELETED)

student_idsstringOptional

List of student ids(catalog user id)

student_canvas_user_idsstringOptional

List of student ids(canvas user id)

enrollment_date_fromstringOptional

Enrollment date from

enrollment_date_tostringOptional

Enrollment date to

enrollment_statusesstringOptional

List of enrollment statuses (ACTIVE, COMPLETED, DROPPED and/or CONCLUDED)

completion_date_fromstringOptional

Completion date from

completion_date_tostringOptional

Completion date to

Responses
200
Getting enrollments analytics
application/json
post
POST /api/v1/analytics/enrollments HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 268

"account_ids='text'&product_ids='text'&product_statuses='text'&student_ids='text'&student_canvas_user_ids='text'&enrollment_date_from='text'&enrollment_date_to='text'&enrollment_statuses='text'&completion_date_from='text'&completion_date_to='text'"
200

Getting enrollments analytics

{
  "enrollments": [
    {
      "id": 25,
      "account_id": 3,
      "account_name": "Sub-Account 1",
      "product": {
        "name": "Course 1",
        "id": 5,
        "url": "https://www.my-catalog.edu/admin/products/1/edit",
        "sku": "sku"
      },
      "product_status": "OPEN",
      "canvas_course_id": 11,
      "student": {
        "canvas_user_id": 1,
        "name": "User 15",
        "email": "[email protected]",
        "canvas_user_id_string": "1"
      },
      "requirement_count": 4,
      "requirement_completed_count": 2,
      "requirement_completed_percentage": 2,
      "created_at": "2023-06-05T14:46:59.944581+02:00",
      "completed_at": "2023-06-29T12:13:27+02:00",
      "enrollment_status": "COMPLETED",
      "certificate_attainable": true,
      "certificate_offered": true,
      "custom_fields": [
        {
          "key": "text_udf",
          "value": "awesome udf"
        },
        {
          "key": "checkbox_udf",
          "value": "1"
        }
      ],
      "certificate_url": "https://www.my-catalog.edu/admin/certificates/1.pdf?user_id=1"
    }
  ]
}
get
Authorizations
Path parameters
idintegerRequired
Responses
200
Getting a specific applicant record
application/json
get
GET /api/v1/applicants/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a specific applicant record

{
  "applicant": {
    "id": 1,
    "user": {
      "id": 1,
      "name": "Applicant",
      "email": "[email protected]"
    },
    "listing": {
      "id": 31,
      "title": "Course 29"
    },
    "notified_of_opening_at": null,
    "status": "waitlist",
    "created_at": "2025/06/24 07:20:56 +0000",
    "updated_at": "2025/06/24 07:20:56 +0000"
  }
}
get
Authorizations
Query parameters
listing_idstringOptional

Only include applicants for the specified listing

statusstringOptional

Only include applicants for the specified status (waitlist, accepted, declined, or expired)

Responses
200
Listing applicants
application/json
Responseobject
get
GET /api/v1/applicants HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Listing applicants

{
  "applicants": [
    {
      "id": 3,
      "user": {
        "id": 3,
        "name": "Applicant",
        "email": "[email protected]"
      },
      "listing": {
        "id": 33,
        "title": "Course 31"
      },
      "notified_of_opening_at": null,
      "status": "waitlist",
      "created_at": "2025/06/24 07:20:56 +0000",
      "updated_at": "2025/06/24 07:20:56 +0000"
    }
  ]
}
delete
Authorizations
Body
listing_idintegerRequired

Only delete applicants for the specified listing

canvas_user_idstringOptional

Only delete applicants with the specified canvas user id if specified

Responses
204
Delete applicants
*/*
Responseobject
delete
DELETE /api/v1/applicants HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 40

"listing_id=1&canvas_user_id='text'"
204

Delete applicants

{}
get
Authorizations
Path parameters
idintegerRequired
Query parameters
idintegerRequired

Order id

Responses
200
Getting a specific bulk enrollment
application/json
Responseobject
get
GET /api/v1/order_items/history/bulk_enrollments/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a specific bulk enrollment

{
  "bulk_purchase": {
    "order": {
      "id": 2,
      "created_at": "2024-12-20T12:12:29.066827Z",
      "updated_at": "2024-12-20T12:12:30.892895Z",
      "full_id": "2",
      "account_id": 38,
      "user_id": 187,
      "canvas_user_id": 1,
      "canvas_root_account_uuid": "39WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
      "source": "bulk_purchase",
      "currency": "USD",
      "purchased_at": "2024-12-20T12:12:30.892045Z",
      "total": 6,
      "email": "[email protected]",
      "name": "Saul Goodman",
      "items": [
        {
          "id": 61,
          "created_at": "2024-12-20T12:12:29.068419Z",
          "updated_at": "2024-12-20T12:12:29.068433Z",
          "order_id": 2,
          "item_id": 42,
          "amount": 15,
          "canvas_root_account_uuid": "39WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
          "discounted_amount": 6,
          "quantity": 3,
          "unit_price": 5
        }
      ]
    },
    "product": {
      "id": 42,
      "visibility": "listed",
      "enrollment_open": true,
      "title": "Paid program",
      "enrollment_fee": 5,
      "account_id": 38,
      "type": "Program",
      "canvas_root_account_uuid": "39WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
      "waitlist": false,
      "limited": false,
      "started": false,
      "program": true,
      "course": false,
      "ended": false
    },
    "bulk_invitations": [
      {
        "order_item_id": 61,
        "invitation_id": 4,
        "status": "created"
      },
      {
        "order_item_id": 61,
        "invitation_id": 5,
        "status": "created"
      },
      {
        "order_item_id": 61,
        "invitation_id": 6,
        "status": "created"
      }
    ]
  }
}
get
Authorizations
Query parameters
fromstringOptional

Only include bulk enrollments from this date

tostringOptional

Only include bulk enrollments to this date

canvas_user_idsstringOptional

Only include bulk enrollments for the specified canvas user ids

Responses
200
Listing bulk enrollments
application/json
Responseobject
get
GET /api/v1/order_items/history/bulk_enrollments HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Listing bulk enrollments

{
  "bulk_enrollments": [
    {
      "bulk_purchase": {
        "order": {
          "id": 3,
          "created_at": "2024-12-20T12:12:29.066827Z",
          "updated_at": "2024-12-20T12:12:30.892895Z",
          "full_id": "3",
          "account_id": 40,
          "user_id": 187,
          "canvas_user_id": 1,
          "canvas_root_account_uuid": "41WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
          "source": "bulk_purchase",
          "currency": "USD",
          "purchased_at": "2024-12-20T12:12:30.892045Z",
          "total": 6,
          "email": "[email protected]",
          "name": "Saul Goodman",
          "items": [
            {
              "id": 61,
              "created_at": "2024-12-20T12:12:29.068419Z",
              "updated_at": "2024-12-20T12:12:29.068433Z",
              "order_id": 3,
              "item_id": 42,
              "amount": 15,
              "canvas_root_account_uuid": "41WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
              "discounted_amount": 6,
              "quantity": 3,
              "unit_price": 5
            }
          ]
        },
        "product": {
          "id": 42,
          "visibility": "listed",
          "enrollment_open": true,
          "title": "Paid program",
          "enrollment_fee": 5,
          "account_id": 40,
          "type": "Program",
          "canvas_root_account_uuid": "41WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
          "waitlist": false,
          "limited": false,
          "started": false,
          "program": true,
          "course": false,
          "ended": false
        },
        "bulk_invitations": [
          {
            "order_item_id": 61,
            "invitation_id": 4,
            "status": "created"
          },
          {
            "order_item_id": 61,
            "invitation_id": 5,
            "status": "created"
          },
          {
            "order_item_id": 61,
            "invitation_id": 6,
            "status": "created"
          }
        ]
      }
    }
  ]
}
get
Authorizations
Query parameters
listing_idintegerRequired

Id of the Listing

Responses
200
Getting a listing certificate
application/json
get
GET /api/v1/certificates HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a listing certificate

{
  "certificate": {
    "id": 2,
    "listing_id": 34,
    "name": "Certificate of Training",
    "active": true,
    "template": "Congrats, {{student_name}}!",
    "pdf_settings": {},
    "created_at": "2025/06/24 07:20:56 +0000",
    "updated_at": "2025/06/24 07:20:56 +0000",
    "days_to_expire": null,
    "expires_at": null
  }
}
post
Authorizations
Body
days_to_expirestringOptional

Days until the certificate expires after it is awarded. Defaults to null. Must not be present when expires_at is present.

expires_atstringOptional

Date of certificate expiration. Defaults to null. Must not be present when days_to_expire is present.

Responses
201
Creating a certificate
application/json
post
POST /api/v1/certificates HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 180

{
  "certificate": {
    "listing_id": "text",
    "name": "text",
    "active": "text",
    "template": "text"
  },
  "certificate[pdf_settings]": {
    "orientation": "text"
  },
  "days_to_expire": "text",
  "expires_at": "text"
}
201

Creating a certificate

{
  "certificate": {
    "id": 5,
    "listing_id": 37,
    "name": "API Name",
    "active": true,
    "template": "<H1>This is a template</h1>",
    "pdf_settings": {
      "orientation": "Landscape"
    },
    "created_at": "2025/06/24 07:20:57 +0000",
    "updated_at": "2025/06/24 07:20:57 +0000",
    "days_to_expire": null,
    "expires_at": null
  }
}
delete
Authorizations
Body
nullify_requirements_completed_atstringOptional

Should nullify the requirements_completed_at for the enrollments, defaults to false

Responses
204
Deleting a certificate
*/*
Responseobject
delete
DELETE /api/v1/certificates HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 80

{
  "certificate": {
    "listing_id": "text"
  },
  "nullify_requirements_completed_at": "text"
}
204

Deleting a certificate

{}
put
Authorizations
Body
Responses
200
Revoking users certificate
application/json
put
PUT /api/v1/certificates/revoke_users_certificate HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 62

{
  "certificate": {
    "listing_id": "text",
    "canvas_user_ids": "text"
  }
}
200

Revoking users certificate

{
  "revoked_certificates": [
    {
      "canvas_user_id": 1,
      "canvas_course_id": 1001,
      "listing_id": 36
    }
  ]
}
get
Authorizations
Path parameters
idintegerRequired
Responses
200
Getting a specific catalog
application/json
get
GET /api/v1/catalogs/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a specific catalog

{
  "account": {
    "id": 46,
    "name": "Domain Account 47",
    "parent": null,
    "created_at": "2025/06/24 07:20:57 +0000",
    "updated_at": "2025/06/24 07:20:57 +0000",
    "canvas_domain": "www.canvas-domain-47.com",
    "canvas_id": 47,
    "settings": {
      "privacy_policy_url": "https://www.instructure.com/policies/privacy/",
      "terms_url": "https://www.instructure.com/policies/acceptable-use",
      "currency": "USD",
      "supported_payment_types": "standard",
      "time_zone": null,
      "country": "US",
      "measurement": "credit",
      "email_from_name": "Canvas Catalog",
      "email_from_address": "[email protected]",
      "allow_user_registration": true,
      "title_tag": null,
      "meta_description": null,
      "custom_head_content": null,
      "custom_body_content": null,
      "show_listings_in_parent": true,
      "order_id_prefix": null,
      "inherit_categories": false,
      "inherit_user_defined_fields": false,
      "beta_canvas_domain": null,
      "skus_enabled": false,
      "canvas_enrollment_events": false,
      "include_noncatalog_courses_in_dashboard": true,
      "external_idp_logout_workflow": false,
      "private_catalog": false,
      "bulk_purchase_disabled": false,
      "enroll_button_behavior": "cart",
      "shopping_cart_enabled": true,
      "external_registration_url": null,
      "external_registration_public_key": null,
      "redirect_external_registration_condition": "authenticated",
      "include_captcha": false,
      "user_registration_domain_restriction_type": "inherit",
      "user_registration_domain_deny_list": "",
      "user_registration_domain_allow_list": "",
      "frame_ancestors": "",
      "email_reply_to": "",
      "has_sso_warning": false,
      "measurement_id": null,
      "redirect_non_admins_to_root_url": false,
      "canvas_feature_send_usage_metrics": false,
      "disable_passive_login": false,
      "new_storefront": false,
      "tags_permission_default_value": true,
      "cross_listing_permission_default_value": false,
      "inherit_storefront_theme": false,
      "canvas_authentication_provider_id": "CANVAS_FIRST",
      "udf_collection_level": "registration",
      "disable_drop_course_button": false,
      "google_tag_manager_id": null,
      "linkedin_partner_id": null,
      "enable_credentials": false,
      "enable_impact": false,
      "enable_pathways": false,
      "hide_missing_pathway": false,
      "storefront_product_recommendation_behavior": "popular",
      "storefront_product_recommendation_count": 4,
      "enable_recommendations": false,
      "product_page_recommendation_fallback": "no_fallback",
      "product_page_recommendation_count": 4,
      "enable_recommendations_for_product_page": false,
      "hide_self_paced_label": false,
      "login_auth_providers": "[]",
      "multiple_promo_codes_enabled": true
    },
    "user_defined_fields": [
      {
        "list_order": 0,
        "name": "favorite_color",
        "label": "Favorite Color",
        "field_type": "text",
        "required": false,
        "required_message": "Favorite Color is required",
        "metadata": {},
        "hide_in_user_workflow": true
      },
      {
        "list_order": 1,
        "name": "code_of_conduct",
        "label": "Code of Conduct",
        "field_type": "checkbox",
        "required": true,
        "required_message": "You must accept the Code of Conduct.",
        "metadata": {},
        "hide_in_user_workflow": false
      },
      {
        "list_order": 2,
        "name": "age",
        "label": "Age",
        "field_type": "text",
        "required": true,
        "required_message": "You must provide an Age.",
        "metadata": {},
        "hide_in_user_workflow": false
      },
      {
        "list_order": 3,
        "name": "yes_no",
        "label": "Yes or No",
        "field_type": "select",
        "required": false,
        "required_message": "Yes or No is required",
        "metadata": {
          "options": [
            "Yes",
            "No"
          ]
        },
        "hide_in_user_workflow": false
      }
    ],
    "logo": "https://test-bucket.s3.amazonaws.com/production/logos/6c5266e6cdbbfec8733f07d132feec1541a724e4.jpeg",
    "locale": "en",
    "url": "https://www.my-catalog.edu",
    "measurement": "credit",
    "storefront_theme_id": null
  }
}
get
Authorizations
Responses
200
Listing catalogs
application/json
get
GET /api/v1/catalogs HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Listing catalogs

{
  "catalogs": [
    {
      "id": 47,
      "name": "Domain Account 52",
      "parent": null,
      "created_at": "2025/06/24 07:20:57 +0000",
      "updated_at": "2025/06/24 07:20:57 +0000",
      "canvas_domain": "www.canvas-domain-52.com",
      "canvas_id": 52,
      "settings": {
        "privacy_policy_url": "https://www.instructure.com/policies/privacy/",
        "terms_url": "https://www.instructure.com/policies/acceptable-use",
        "currency": "USD",
        "supported_payment_types": "standard",
        "time_zone": null,
        "country": "US",
        "measurement": "credit",
        "email_from_name": "Canvas Catalog",
        "email_from_address": "[email protected]",
        "allow_user_registration": true,
        "title_tag": null,
        "meta_description": null,
        "custom_head_content": null,
        "custom_body_content": null,
        "show_listings_in_parent": true,
        "order_id_prefix": null,
        "inherit_categories": false,
        "inherit_user_defined_fields": false,
        "beta_canvas_domain": null,
        "skus_enabled": false,
        "canvas_enrollment_events": false,
        "include_noncatalog_courses_in_dashboard": true,
        "external_idp_logout_workflow": false,
        "private_catalog": false,
        "bulk_purchase_disabled": false,
        "enroll_button_behavior": "cart",
        "shopping_cart_enabled": true,
        "external_registration_url": null,
        "external_registration_public_key": null,
        "redirect_external_registration_condition": "authenticated",
        "include_captcha": false,
        "user_registration_domain_restriction_type": "inherit",
        "user_registration_domain_deny_list": "",
        "user_registration_domain_allow_list": "",
        "frame_ancestors": "",
        "email_reply_to": "",
        "has_sso_warning": false,
        "measurement_id": null,
        "redirect_non_admins_to_root_url": false,
        "canvas_feature_send_usage_metrics": false,
        "disable_passive_login": false,
        "new_storefront": false,
        "tags_permission_default_value": true,
        "cross_listing_permission_default_value": false,
        "inherit_storefront_theme": false,
        "canvas_authentication_provider_id": "CANVAS_FIRST",
        "udf_collection_level": "registration",
        "disable_drop_course_button": false,
        "google_tag_manager_id": null,
        "linkedin_partner_id": null,
        "enable_credentials": false,
        "enable_impact": false,
        "enable_pathways": false,
        "hide_missing_pathway": false,
        "storefront_product_recommendation_behavior": "popular",
        "storefront_product_recommendation_count": 4,
        "enable_recommendations": false,
        "product_page_recommendation_fallback": "no_fallback",
        "product_page_recommendation_count": 4,
        "enable_recommendations_for_product_page": false,
        "hide_self_paced_label": false,
        "login_auth_providers": "[]",
        "multiple_promo_codes_enabled": true
      },
      "user_defined_fields": [
        {
          "list_order": 0,
          "name": "favorite_color",
          "label": "Favorite Color",
          "field_type": "text",
          "required": false,
          "required_message": "Favorite Color is required",
          "metadata": {},
          "hide_in_user_workflow": true
        },
        {
          "list_order": 1,
          "name": "code_of_conduct",
          "label": "Code of Conduct",
          "field_type": "checkbox",
          "required": true,
          "required_message": "You must accept the Code of Conduct.",
          "metadata": {},
          "hide_in_user_workflow": false
        },
        {
          "list_order": 2,
          "name": "age",
          "label": "Age",
          "field_type": "text",
          "required": true,
          "required_message": "You must provide an Age.",
          "metadata": {},
          "hide_in_user_workflow": false
        },
        {
          "list_order": 3,
          "name": "yes_no",
          "label": "Yes or No",
          "field_type": "select",
          "required": false,
          "required_message": "Yes or No is required",
          "metadata": {
            "options": [
              "Yes",
              "No"
            ]
          },
          "hide_in_user_workflow": false
        }
      ],
      "logo": "https://test-bucket.s3.amazonaws.com/production/logos/f1733874a1448945a6748b458be8b8e808fc61f8.jpeg",
      "locale": "en",
      "url": "https://www.my-catalog.edu",
      "measurement": "credit",
      "storefront_theme_id": null
    }
  ]
}
get
Authorizations
Query parameters
fromstringOptional

Earliest date/time to return (optional, String). Suggested format YYYY-MM-DDTHH:MM:SSZ, e.g. 2018-01-01T00:00:00Z. System time zone is UTC.

tostringOptional

Latest date/time to return (optional, String). See 'from' above for format.

Responses
200
Listing user registrations
application/json
Responseobject
get
GET /api/v1/user_registrations HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Listing user registrations

{
  "user_registrations": [
    {
      "canvas_user_id": 1,
      "catalog": {
        "id": 48,
        "name": "Domain Account 57"
      },
      "name": "User 1",
      "email": "[email protected]",
      "custom_fields": {
        "favorite_color": "#BADA55",
        "code_of_conduct": "1",
        "age": "19"
      },
      "created_at": "2025/06/24 07:20:57 +0000",
      "updated_at": "2025/06/24 07:20:57 +0000"
    }
  ]
}
post
Authorizations
Body
namestringOptional

Full name

emailstringOptional

E-mail address (will also serve as login)

catalog_idstringOptional

ID of subcatalog to associate with user (optional)

custom_fieldsstringOptional

Hash of custom field values, e.g. { 'phone': '867-5309' } (optional)

Responses
201
Registering a user
application/json
post
POST /api/v1/user_registrations HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/x-www-form-urlencoded
Accept: */*
Content-Length: 73

"name='text'&email='text'&catalog_id='text'&custom_fields='text'"
201

Registering a user

{
  "user_registration": {
    "canvas_user_id": 1234,
    "catalog": {
      "id": 50,
      "name": "Domain Account 59"
    },
    "name": "Barack Obama",
    "email": "[email protected]",
    "custom_fields": {},
    "created_at": "2025/06/24 07:20:57 +0000",
    "updated_at": "2025/06/24 07:20:57 +0000"
  }
}
get
Authorizations
Path parameters
idintegerRequired
Query parameters
idintegerOptional

Canvas user ID

Responses
200
Getting a specific user registration
application/json
get
GET /api/v1/user_registrations/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a specific user registration

{
  "user_registration": {
    "canvas_user_id": 2,
    "catalog": {
      "id": 49,
      "name": "Domain Account 58"
    },
    "name": "User 2",
    "email": "[email protected]",
    "custom_fields": {
      "favorite_color": "#BADA55",
      "code_of_conduct": "1",
      "age": "19"
    },
    "created_at": "2025/06/24 07:20:57 +0000",
    "updated_at": "2025/06/24 07:20:57 +0000"
  }
}
get
Authorizations
Path parameters
idintegerRequired
Responses
200
List promotions by email domain set
application/json
get
GET /api/v1/email_domain_sets/{id}/promotions HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

List promotions by email domain set

{
  "promotions": [
    {
      "id": 1,
      "account_id": 52,
      "product_id": null,
      "product_title": null,
      "account_name": "Domain Account 61",
      "currency": "USD",
      "amount": "10.0",
      "discount_type": "flat",
      "code": "PROMO1",
      "name": "Product 1",
      "description": null,
      "active": false,
      "start_date": null,
      "end_date": null,
      "created_at": "2025/06/24 07:20:57 +0000",
      "updated_at": "2025/06/24 07:20:57 +0000",
      "deleted_at": null,
      "usage_type": "once-per-user",
      "canvas_root_account_uuid": "61WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
      "email_domain_set_id": 1,
      "email_domain_set_name": "Example",
      "email_domains": [
        {
          "id": 1,
          "domain": "example.com",
          "email_domain_set_id": 1,
          "canvas_root_account_uuid": "60WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
          "created_at": "2025/06/24 07:20:57 +0000",
          "updated_at": "2025/06/24 07:20:57 +0000",
          "deleted_at": null
        }
      ],
      "status": "inactive",
      "max_per_user": null,
      "max_total_use": null
    }
  ]
}
get
Authorizations
Path parameters
idintegerRequired
Responses
200
Getting a specific email domain set
application/json
get
GET /api/v1/email_domain_sets/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a specific email domain set

{
  "id": 4,
  "name": "Example",
  "account_id": 57,
  "canvas_root_account_uuid": "66WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
  "created_at": "2025/06/24 07:20:57 +0000",
  "updated_at": "2025/06/24 07:20:57 +0000",
  "deleted_at": null
}
put
Authorizations
Path parameters
idintegerRequired
Body
Responses
200
Updating an email domain set
application/json
put
PUT /api/v1/email_domain_sets/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 70

{
  "email_domain_set": {
    "name": "text",
    "email_domains_attributes": "text"
  }
}
200

Updating an email domain set

{
  "email_domain_set": {
    "id": 2,
    "name": "API Name",
    "account_id": 53,
    "email_domains": [
      {
        "id": 3,
        "domain": "example1.com",
        "email_domain_set_id": 2,
        "canvas_root_account_uuid": "62WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
        "created_at": "2025/06/24 07:20:57 +0000",
        "updated_at": "2025/06/24 07:20:57 +0000",
        "deleted_at": null
      },
      {
        "id": 4,
        "domain": "example2.org",
        "email_domain_set_id": 2,
        "canvas_root_account_uuid": "62WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
        "created_at": "2025/06/24 07:20:57 +0000",
        "updated_at": "2025/06/24 07:20:57 +0000",
        "deleted_at": null
      },
      {
        "id": 2,
        "domain": "example.com",
        "email_domain_set_id": 2,
        "canvas_root_account_uuid": "62WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
        "created_at": "2025/06/24 07:20:57 +0000",
        "updated_at": "2025/06/24 07:20:57 +0000",
        "deleted_at": null
      }
    ]
  }
}
get
Authorizations
Query parameters
searchstringOptional

A value to filter the Email Domain Sets by name

exactstringOptional

A boolean to set whether the search should only include results that match exactly

Responses
200
Listing email domain sets
application/json
Responseobject
get
GET /api/v1/email_domain_sets HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Listing email domain sets

{
  "email_domain_sets": [
    {
      "id": 3,
      "name": "Example",
      "account_id": 55,
      "email_domains": [
        {
          "id": 5,
          "domain": "example.com",
          "email_domain_set_id": 3,
          "canvas_root_account_uuid": "64WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
          "created_at": "2025/06/24 07:20:57 +0000",
          "updated_at": "2025/06/24 07:20:57 +0000",
          "deleted_at": null
        }
      ]
    }
  ],
  "meta": {
    "total_pages": 0
  }
}
get
Authorizations
Path parameters
idintegerRequired
Responses
200
Getting a specific order
application/json
get
GET /api/v1/orders/{id} HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Getting a specific order

{
  "order": {
    "id": 4,
    "full_id": "4",
    "catalog_id": 59,
    "catalog": {
      "id": 59,
      "name": "Domain Account 68"
    },
    "user": {
      "id": 1,
      "name": "Saul Goodman",
      "email": "[email protected]"
    },
    "listings": [
      {
        "id": 38,
        "canvas_course_id": 22,
        "title": "Course 36",
        "amount": "100.0",
        "discounted_amount": "90.0",
        "catalog_id": 59
      }
    ],
    "promotions": [
      {
        "id": 5,
        "listing_id": 38,
        "code": "PROMO5",
        "amount": "-10.0"
      }
    ],
    "payments": [
      {
        "reference_id": "123",
        "status": "success",
        "amount": "90.0"
      }
    ],
    "total": "90.0",
    "currency": "USD",
    "purchased_at": "2025/06/24 07:20:57 +0000",
    "created_at": "2025/06/24 07:20:57 +0000"
  }
}
get
Authorizations
Query parameters
fromstringOptional

Earliest date/time to return. Suggested format YYYY-MM-DDTHH:MM:SSZ, e.g. 2018-01-01T00:00:00Z. System time zone is UTC.

tostringOptional

Latest date/time to return. See 'from' above for format.

canvas_user_idstringOptional

Return only orders for the specified Canvas user ID

completedstringOptional

When set, only return orders that were completed successfully

Responses
200
Listing orders
application/json
Responseobject
get
GET /api/v1/orders HTTP/1.1
Host: replace_me
Authorization: YOUR_API_KEY
Accept: */*
200

Listing orders

{
  "orders": [
    {
      "id": 5,
      "full_id": "5",
      "catalog_id": 60,
      "catalog": {
        "id": 60,
        "name": "Domain Account 69"
      },
      "user": {
        "id": 1,
        "name": "Saul Goodman",
        "email": "[email protected]"
      },
      "listings": [
        {
          "id": 39,
          "canvas_course_id": 23,
          "title": "Course 37",
          "amount": "100.0",
          "discounted_amount": "90.0",
          "catalog_id": 60
        }
      ],
      "promotions": [
        {
          "id": 6,
          "listing_id": 39,
          "code": "PROMO6",
          "amount": "-10.0"
        }
      ],
      "payments": [
        {
          "reference_id": "123",
          "status": "success",
          "amount": "90.0"
        }
      ],
      "total": "90.0",
      "currency": "USD",
      "purchased_at": "2025/06/24 07:20:57 +0000",
      "created_at": "2025/06/24 07:20:57 +0000"
    }
  ]
}

Last updated

Was this helpful?