Instructure Developer Documentation Portal
Community
  • Introduction
  • Services
    • Elevate Standards Alignment - AB Connect API
      • Introduction
        • Authentication
        • Addressing Object Properties
        • Requesting Additional Properties in the Response
        • Filtering Using ODATA Like Statements
        • Sorting
        • Facets
        • Paging Data
        • Call Throttling
        • Working with Related Object
        • Error Responses
        • Character Set Support
        • How To Articles, Recommendations and Suggestions
        • Examples
        • Using AB Connect's Embeddable Widgets
      • Reference
        • Standards
        • Standard Collections
        • Events
        • Topics
        • Concepts
        • Assets
        • Asset Definitions
        • Asset Collections
        • Managing and Predicting Relationships
        • Providers
    • Canvas LMS
      • Basics
        • GraphQL
        • API Change Log
        • SIS IDs
        • Pagination
        • Throttling
        • Compound Documents
        • File Uploads
        • API Endpoint Attributes
        • Masquerading
      • OAuth2
        • OAuth2 Overview
        • OAuth2 Endpoints
        • Developer Keys
      • Resources
        • Access Tokens
        • Account Calendars
        • Account Domain Lookups
        • Account Notifications
        • Account Reports
        • Accounts
        • Accounts (LTI)
        • Admins
        • Analytics
        • Announcement External Feeds
        • Announcements
        • API Token Scopes
        • Appointment Groups
        • Assignment Extensions
        • Assignment Groups
        • Assignments
        • Authentication Providers
        • Authentications Log
        • Blackout Dates
        • BlockEditorTemplate
        • Blueprint Courses
        • Bookmarks
        • Brand Configs
        • Calendar Events
        • Collaborations
        • CommMessages
        • Communication Channels
        • Conferences
        • Content Exports
        • Content Migrations
        • Content Security Policy Settings
        • Content Shares
        • Conversations
        • Course Audit log
        • Course Pace
        • Course Quiz Extensions
        • Course Reports
        • Courses
        • Custom Gradebook Columns
        • Developer Key Account Bindings
        • Developer Keys
        • Discussion Topics
        • Enrollment Terms
        • Enrollments
        • ePortfolios
        • ePub Exports
        • Error Reports
        • External Tools
        • Favorites
        • Feature Flags
        • Files
        • Grade Change Log
        • Gradebook History
        • Grading Period Sets
        • Grading Periods
        • Grading Standards
        • Group Categories
        • Groups
        • History
        • InstAccess tokens
        • JWTs
        • Late Policy
        • Learning Object Dates
        • Line Items
        • LiveAssessments
        • Logins
        • LTI Launch Definitions
        • LTI Registrations
        • LTI Resource Links
        • Media Objects
        • Moderated Grading
        • Modules
        • Names and Role
        • New Quiz Items
        • New Quizzes
        • New Quizzes Accommodations
        • New Quizzes Reports
        • Notification Preferences
        • Originality Reports
        • Outcome Groups
        • Outcome Imports
        • Outcome Results
        • Outcomes
        • Pages
        • Peer Reviews
        • Planner
        • Poll Sessions
        • PollChoices
        • Polls
        • PollSubmissions
        • Proficiency Ratings
        • Progress
        • Public JWK
        • Quiz Assignment Overrides
        • Quiz Extensions
        • Quiz IP Filters
        • Quiz Question Groups
        • Quiz Questions
        • Quiz Reports
        • Quiz Statistics
        • Quiz Submission Events
        • Quiz Submission Files
        • Quiz Submission Questions
        • Quiz Submission User List
        • Quiz Submissions
        • Quizzes
        • Result
        • Roles
        • Rubrics
        • Sandboxes
        • Score
        • Search
        • Sections
        • Services
        • Shared Brand Configs
        • SIS Import Errors
        • SIS Imports
        • SIS Integration
        • Smart Search
        • Submission Comments
        • Submissions
        • Tabs
        • Temporary Enrollment Pairings
        • User Observees
        • Users
        • What If Grades
      • Outcomes
        • Outcomes CSV Format
      • Group Categories
        • Group Categories CSV Format
      • SIS
        • SIS CSV Format
      • External Tools
        • LTI
          • Introduction
          • Registration
          • Launch Overview
          • Configuring
          • Variable Substitutions
          • Deep Linking
          • Grading
          • Provisioning
          • PostMessage
          • Platform Notification Service
          • Placements
            • Placements Overview
            • Navigation
            • Homework Submission
            • Editor Button
            • Migration Selection
            • Link Selection (Modules)
            • Assignment Selection
            • Collaborations
        • xAPI
        • Canvas Roles
        • Plagiarism Detection Platform
          • Overview
          • Plagiarism Detection Platform Assignments
          • Plagiarism Detection Platform Users
          • Plagiarism Detection Submissions
          • Webhooks Subscriptions for Plagiarism Platform
          • JWT Access Tokens
      • Data Services
        • Live Events
          • Overview
            • Introduction
            • Setup
            • Caliper
            • Metadata
          • Event Format
            • Canvas
              • Account
              • Asset
              • Assignment
              • Attachment
              • Content
              • Conversation
              • Course
              • Discussion
              • Enrollment
              • Grade
              • Group
              • Learning
              • Logged
              • Module
              • Outcome
              • Outcomes
              • Plagiarism
              • Quiz
              • Rubric
              • Sis
              • Submission
              • Syllabus
              • User
              • Wiki
            • Caliper IMS 1.1
              • Assessment
              • Basic
              • Forum
              • Grading
              • Navigation Events
              • Session
    • Catalog
      • APIs
        • Analytics
        • Bulk Enrollments
        • Catalogs
        • Certificates
        • Completed Certificates
        • Courses
        • Email Domain Set
        • Enrollments
        • Orders
        • Programs
        • Progresses
        • Tags
        • User Registrations
        • Users
        • Waitlist Applicants
    • Credentials
      • Getting Started
      • Authentication
        • Password-Based Authentication
        • Authorization Code-Based Authentication
      • Pagination
      • APIs
        • Assertions
        • Backpack
        • Badgeclasses
        • Issuers
        • Organizations
        • Users
      • Release Notes
    • Data Access Platform
      • Key Concepts
      • Data Formats
      • Rate Limits & Policies
      • Datasets
        • Namespaces
          • canvas
            • canvas types
          • canvas_logs
          • catalog
        • Additional Notes
        • Entity Relationship Diagram
      • Query API
        • Authentication
        • Reference
      • Command Line (DAP CLI)
        • Getting Started
        • Secure Connection
        • Reference
          • dap snapshot
          • dap incremental
          • dap list
          • dap schema
          • dap initdb
          • dap syncdb
          • dap dropdb
      • Client Library
        • Examples
        • Reference
      • Release Notes
      • Status
    • DataSync
      • Interop API
      • Interop Data API
      • Grades Exchange API
      • OneRoster API
      • Platform API
    • Instructure Media
      • API Reference
        • Captions
        • Collection
        • Courses
        • Group
        • Insights
        • Media
        • Media Upload
        • Ping
        • Professional Captioning
        • Tags
        • Transfer Media
        • User
    • Quizzes
      • Quiz API
Powered by GitBook

Copyright © 2008-2024 Instructure, Inc. All rights reserved. Various trademarks held by their respective owners.

On this page

Was this helpful?

  1. Services
  2. Catalog

APIs

PreviousCatalogNextAnalytics

Last updated 21 days ago

Was this helpful?

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": 2,
    "user": {
      "id": 2,
      "name": "Applicant",
      "email": "plz@letmein.com"
    },
    "listing": {
      "id": 2,
      "title": "Course 2"
    },
    "notified_of_opening_at": null,
    "status": "waitlist",
    "created_at": "2025/03/28 13:11:22 +0000",
    "updated_at": "2025/03/28 13:11:22 +0000"
  }
}
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": 1,
      "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": 1,
          "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"
    }
  ]
}
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": 1,
  "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": 1,
      "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": 1,
  "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
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": 10,
      "name": "Domain Account 10",
      "parent": null,
      "created_at": "2025/03/28 13:11:22 +0000",
      "updated_at": "2025/03/28 13:11:22 +0000",
      "canvas_domain": "www.canvas-domain-10.com",
      "canvas_id": 10,
      "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": "notifications@instructure.com",
        "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_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": "[]"
      },
      "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/test/logos/0f782fd2d557e4a990b119f4fb353bc8b2311a54.jpeg",
      "locale": "en",
      "url": "https://www.my-catalog.edu",
      "measurement": "credit",
      "storefront_theme_id": null
    }
  ]
}
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": 11,
    "name": "Domain Account 15",
    "parent": null,
    "created_at": "2025/03/28 13:11:22 +0000",
    "updated_at": "2025/03/28 13:11:22 +0000",
    "canvas_domain": "www.canvas-domain-15.com",
    "canvas_id": 15,
    "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": "notifications@instructure.com",
      "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_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": "[]"
    },
    "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/test/logos/0a0ea491602e39c314957234500aa84fd2b97305.jpeg",
    "locale": "en",
    "url": "https://www.my-catalog.edu",
    "measurement": "credit",
    "storefront_theme_id": null
  }
}
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": 1,
      "user": {
        "id": 1
      },
      "listing": {
        "id": 4,
        "title": "Course 4",
        "type": "Course",
        "canvas_course_id": 4
      },
      "enrolled_at": "2025/03/28 13:11:22 +0000",
      "status": "active"
    }
  ]
}
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": 7,
      "title": "Course 7",
      "type": "Course",
      "canvas_course_id": 7
    },
    "enrolled_at": "2025/03/28 13:11:23 +0000",
    "status": "active"
  }
}
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"
}
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": 17,
    "canvas_user_id": null,
    "completion_percent": null,
    "workflow_state": "queued",
    "payload": {},
    "created_at": "2025/03/28 13:11:23 +0000",
    "updated_at": "2025/03/28 13:11:23 +0000"
  }
}
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": 8,
      "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/03/28 13:11:23 +0000",
      "credits": 9,
      "measurement": "credit",
      "updated_at": "2025/03/28 13:11:23 +0000",
      "short_description": "teaser_8",
      "listing_path": "program-path-8",
      "listing_image": null,
      "currency": "USD",
      "catalog": {
        "id": 22,
        "name": "Domain Account 30"
      },
      "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": [
        "Another Tag",
        "Tag"
      ],
      "listing_url": "http://www.my-catalog.edu/programs/program-path-8",
      "start_date": "2025/03/21 13:11:23 +0000",
      "end_date": null,
      "canvas_section_id": null,
      "associated_account_ids": [],
      "sequential": true,
      "requirements": [
        {
          "id": 9,
          "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/03/28 13:11:23 +0000",
          "credits": 3,
          "measurement": "credit",
          "updated_at": "2025/03/28 13:11:23 +0000",
          "short_description": "teaser_9",
          "listing_path": "program-path-9",
          "listing_image": null,
          "currency": "USD",
          "catalog": {
            "id": 22,
            "name": "Domain Account 30"
          },
          "type": "Program",
          "title": "Program 9",
          "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-9",
          "start_date": "2025/03/21 13:11:23 +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_11",
              "enrollment_fee": 0,
              "created_at": "2025/03/28 13:11:23 +0000",
              "credits": 3,
              "measurement": "credit",
              "updated_at": "2025/03/28 13:11:23 +0000",
              "short_description": "teaser_11",
              "listing_path": "course-path-11",
              "listing_image": null,
              "currency": "USD",
              "catalog": {
                "id": 22,
                "name": "Domain Account 30"
              },
              "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/03/21 13:11:23 +0000",
              "end_date": "2025/04/04 13:11:23 +0000",
              "canvas_section_id": null,
              "associated_account_ids": [],
              "canvas_course": {
                "id": 8
              }
            }
          ]
        },
        {
          "id": 10,
          "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/03/28 13:11:23 +0000",
          "credits": 6,
          "measurement": "credit",
          "updated_at": "2025/03/28 13:11:23 +0000",
          "short_description": "teaser_10",
          "listing_path": "program-path-10",
          "listing_image": null,
          "currency": "USD",
          "catalog": {
            "id": 22,
            "name": "Domain Account 30"
          },
          "type": "Program",
          "title": "Program 10",
          "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-10",
          "start_date": "2025/03/21 13:11:23 +0000",
          "end_date": null,
          "canvas_section_id": null,
          "associated_account_ids": [],
          "sequential": true,
          "requirements": [
            {
              "id": 12,
              "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/03/28 13:11:23 +0000",
              "credits": 3,
              "measurement": "credit",
              "updated_at": "2025/03/28 13:11:23 +0000",
              "short_description": "teaser_12",
              "listing_path": "course-path-12",
              "listing_image": null,
              "currency": "USD",
              "catalog": {
                "id": 22,
                "name": "Domain Account 30"
              },
              "type": "Course",
              "title": "Course 12",
              "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-12",
              "start_date": "2025/03/21 13:11:23 +0000",
              "end_date": "2025/04/04 13:11:23 +0000",
              "canvas_section_id": null,
              "associated_account_ids": [],
              "canvas_course": {
                "id": 9
              }
            },
            {
              "id": 13,
              "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/03/28 13:11:23 +0000",
              "credits": 3,
              "measurement": "credit",
              "updated_at": "2025/03/28 13:11:23 +0000",
              "short_description": "teaser_13",
              "listing_path": "course-path-13",
              "listing_image": null,
              "currency": "USD",
              "catalog": {
                "id": 22,
                "name": "Domain Account 30"
              },
              "type": "Course",
              "title": "Course 13",
              "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-13",
              "start_date": "2025/03/21 13:11:23 +0000",
              "end_date": "2025/04/04 13:11:23 +0000",
              "canvas_section_id": null,
              "associated_account_ids": [],
              "canvas_course": {
                "id": 10
              }
            }
          ]
        }
      ]
    },
    {
      "id": 9,
      "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/03/28 13:11:23 +0000",
      "credits": 3,
      "measurement": "credit",
      "updated_at": "2025/03/28 13:11:23 +0000",
      "short_description": "teaser_9",
      "listing_path": "program-path-9",
      "listing_image": null,
      "currency": "USD",
      "catalog": {
        "id": 22,
        "name": "Domain Account 30"
      },
      "type": "Program",
      "title": "Program 9",
      "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-9",
      "start_date": "2025/03/21 13:11:23 +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_11",
          "enrollment_fee": 0,
          "created_at": "2025/03/28 13:11:23 +0000",
          "credits": 3,
          "measurement": "credit",
          "updated_at": "2025/03/28 13:11:23 +0000",
          "short_description": "teaser_11",
          "listing_path": "course-path-11",
          "listing_image": null,
          "currency": "USD",
          "catalog": {
            "id": 22,
            "name": "Domain Account 30"
          },
          "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/03/21 13:11:23 +0000",
          "end_date": "2025/04/04 13:11:23 +0000",
          "canvas_section_id": null,
          "associated_account_ids": [],
          "canvas_course": {
            "id": 8
          }
        }
      ]
    },
    {
      "id": 10,
      "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/03/28 13:11:23 +0000",
      "credits": 6,
      "measurement": "credit",
      "updated_at": "2025/03/28 13:11:23 +0000",
      "short_description": "teaser_10",
      "listing_path": "program-path-10",
      "listing_image": null,
      "currency": "USD",
      "catalog": {
        "id": 22,
        "name": "Domain Account 30"
      },
      "type": "Program",
      "title": "Program 10",
      "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-10",
      "start_date": "2025/03/21 13:11:23 +0000",
      "end_date": null,
      "canvas_section_id": null,
      "associated_account_ids": [],
      "sequential": true,
      "requirements": [
        {
          "id": 12,
          "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/03/28 13:11:23 +0000",
          "credits": 3,
          "measurement": "credit",
          "updated_at": "2025/03/28 13:11:23 +0000",
          "short_description": "teaser_12",
          "listing_path": "course-path-12",
          "listing_image": null,
          "currency": "USD",
          "catalog": {
            "id": 22,
            "name": "Domain Account 30"
          },
          "type": "Course",
          "title": "Course 12",
          "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-12",
          "start_date": "2025/03/21 13:11:23 +0000",
          "end_date": "2025/04/04 13:11:23 +0000",
          "canvas_section_id": null,
          "associated_account_ids": [],
          "canvas_course": {
            "id": 9
          }
        },
        {
          "id": 13,
          "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/03/28 13:11:23 +0000",
          "credits": 3,
          "measurement": "credit",
          "updated_at": "2025/03/28 13:11:23 +0000",
          "short_description": "teaser_13",
          "listing_path": "course-path-13",
          "listing_image": null,
          "currency": "USD",
          "catalog": {
            "id": 22,
            "name": "Domain Account 30"
          },
          "type": "Course",
          "title": "Course 13",
          "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-13",
          "start_date": "2025/03/21 13:11:23 +0000",
          "end_date": "2025/04/04 13:11:23 +0000",
          "canvas_section_id": null,
          "associated_account_ids": [],
          "canvas_course": {
            "id": 10
          }
        }
      ]
    }
  ]
}
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": 22,
    "visibility": "listed",
    "enrollment_open": true,
    "enrollment_open_from": null,
    "enrollment_open_to": null,
    "enrollment_cap": null,
    "description": "description_21",
    "enrollment_fee": 0,
    "created_at": "2025/03/28 13:11:23 +0000",
    "credits": 9,
    "measurement": "credit",
    "updated_at": "2025/03/28 13:11:23 +0000",
    "short_description": "teaser_21",
    "listing_path": "program-path-21",
    "listing_image": null,
    "currency": "USD",
    "catalog": {
      "id": 26,
      "name": "Domain Account 34"
    },
    "type": "Program",
    "title": "Program 21",
    "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-21",
    "start_date": "2025/03/21 13:11:23 +0000",
    "end_date": null,
    "canvas_section_id": null,
    "associated_account_ids": [],
    "sequential": true,
    "requirements": [
      {
        "id": 23,
        "visibility": "listed",
        "enrollment_open": true,
        "enrollment_open_from": null,
        "enrollment_open_to": null,
        "enrollment_cap": null,
        "description": "description_22",
        "enrollment_fee": 0,
        "created_at": "2025/03/28 13:11:23 +0000",
        "credits": 3,
        "measurement": "credit",
        "updated_at": "2025/03/28 13:11:23 +0000",
        "short_description": "teaser_22",
        "listing_path": "program-path-22",
        "listing_image": null,
        "currency": "USD",
        "catalog": {
          "id": 26,
          "name": "Domain Account 34"
        },
        "type": "Program",
        "title": "Program 22",
        "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-22",
        "start_date": "2025/03/21 13:11:23 +0000",
        "end_date": null,
        "canvas_section_id": null,
        "associated_account_ids": [],
        "sequential": true,
        "requirements": [
          {
            "id": 25,
            "visibility": "listed",
            "enrollment_open": true,
            "enrollment_open_from": null,
            "enrollment_open_to": null,
            "enrollment_cap": null,
            "description": "description_24",
            "enrollment_fee": 0,
            "created_at": "2025/03/28 13:11:23 +0000",
            "credits": 3,
            "measurement": "credit",
            "updated_at": "2025/03/28 13:11:23 +0000",
            "short_description": "teaser_24",
            "listing_path": "course-path-24",
            "listing_image": null,
            "currency": "USD",
            "catalog": {
              "id": 26,
              "name": "Domain Account 34"
            },
            "type": "Course",
            "title": "Course 24",
            "list_order": null,
            "waitlist": false,
            "waitlist_cap": null,
            "sku": "sku_14",
            "show_free_banner": true,
            "image_alt_text": null,
            "allowed_payment_types": [
              "standard"
            ],
            "tag_names": [],
            "listing_url": "http://www.my-catalog.edu/courses/course-path-24",
            "start_date": "2025/03/21 13:11:23 +0000",
            "end_date": "2025/04/04 13:11:23 +0000",
            "canvas_section_id": null,
            "associated_account_ids": [],
            "canvas_course": {
              "id": 14
            }
          }
        ]
      },
      {
        "id": 24,
        "visibility": "listed",
        "enrollment_open": true,
        "enrollment_open_from": null,
        "enrollment_open_to": null,
        "enrollment_cap": null,
        "description": "description_23",
        "enrollment_fee": 0,
        "created_at": "2025/03/28 13:11:23 +0000",
        "credits": 6,
        "measurement": "credit",
        "updated_at": "2025/03/28 13:11:23 +0000",
        "short_description": "teaser_23",
        "listing_path": "program-path-23",
        "listing_image": null,
        "currency": "USD",
        "catalog": {
          "id": 26,
          "name": "Domain Account 34"
        },
        "type": "Program",
        "title": "Program 23",
        "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-23",
        "start_date": "2025/03/21 13:11:23 +0000",
        "end_date": null,
        "canvas_section_id": null,
        "associated_account_ids": [],
        "sequential": true,
        "requirements": [
          {
            "id": 26,
            "visibility": "listed",
            "enrollment_open": true,
            "enrollment_open_from": null,
            "enrollment_open_to": null,
            "enrollment_cap": null,
            "description": "description_25",
            "enrollment_fee": 0,
            "created_at": "2025/03/28 13:11:23 +0000",
            "credits": 3,
            "measurement": "credit",
            "updated_at": "2025/03/28 13:11:23 +0000",
            "short_description": "teaser_25",
            "listing_path": "course-path-25",
            "listing_image": null,
            "currency": "USD",
            "catalog": {
              "id": 26,
              "name": "Domain Account 34"
            },
            "type": "Course",
            "title": "Course 25",
            "list_order": null,
            "waitlist": false,
            "waitlist_cap": null,
            "sku": "sku_15",
            "show_free_banner": true,
            "image_alt_text": null,
            "allowed_payment_types": [
              "standard"
            ],
            "tag_names": [],
            "listing_url": "http://www.my-catalog.edu/courses/course-path-25",
            "start_date": "2025/03/21 13:11:23 +0000",
            "end_date": "2025/04/04 13:11:23 +0000",
            "canvas_section_id": null,
            "associated_account_ids": [],
            "canvas_course": {
              "id": 15
            }
          },
          {
            "id": 27,
            "visibility": "listed",
            "enrollment_open": true,
            "enrollment_open_from": null,
            "enrollment_open_to": null,
            "enrollment_cap": null,
            "description": "description_26",
            "enrollment_fee": 0,
            "created_at": "2025/03/28 13:11:23 +0000",
            "credits": 3,
            "measurement": "credit",
            "updated_at": "2025/03/28 13:11:23 +0000",
            "short_description": "teaser_26",
            "listing_path": "course-path-26",
            "listing_image": null,
            "currency": "USD",
            "catalog": {
              "id": 26,
              "name": "Domain Account 34"
            },
            "type": "Course",
            "title": "Course 26",
            "list_order": null,
            "waitlist": false,
            "waitlist_cap": null,
            "sku": "sku_16",
            "show_free_banner": true,
            "image_alt_text": null,
            "allowed_payment_types": [
              "standard"
            ],
            "tag_names": [],
            "listing_url": "http://www.my-catalog.edu/courses/course-path-26",
            "start_date": "2025/03/21 13:11:23 +0000",
            "end_date": "2025/04/04 13:11:23 +0000",
            "canvas_section_id": null,
            "associated_account_ids": [],
            "canvas_course": {
              "id": 16
            }
          }
        ]
      }
    ]
  }
}
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
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": 28,
      "product_id": null,
      "product_title": null,
      "account_name": "Domain Account 36",
      "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/03/28 13:11:23 +0000",
      "updated_at": "2025/03/28 13:11:23 +0000",
      "deleted_at": null,
      "usage_type": "once-per-user",
      "canvas_root_account_uuid": "36WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
      "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": "35WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
          "created_at": "2025/03/28 13:11:23 +0000",
          "updated_at": "2025/03/28 13:11:23 +0000",
          "deleted_at": null
        }
      ],
      "status": "inactive"
    }
  ]
}
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": 3,
  "name": "Example",
  "account_id": 31,
  "canvas_root_account_uuid": "39WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
  "created_at": "2025/03/28 13:11:23 +0000",
  "updated_at": "2025/03/28 13:11:23 +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": 4,
      "name": "Example",
      "account_id": 33,
      "email_domains": [
        {
          "id": 6,
          "domain": "example.com",
          "email_domain_set_id": 4,
          "canvas_root_account_uuid": "41WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
          "created_at": "2025/03/28 13:11:23 +0000",
          "updated_at": "2025/03/28 13:11:23 +0000",
          "deleted_at": null
        }
      ]
    }
  ],
  "meta": {
    "total_pages": 0
  }
}
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": 17,
      "catalog_title": "Course 27",
      "canvas_course_name": "Course 27",
      "certificate_url": "https://www.domain-43.com/certificates/certificate-numero-1-1.pdf",
      "canvas_course_workflow_state": "available",
      "completed_at": null
    }
  ]
}
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": 29,
    "name": "Certificate of Training",
    "active": true,
    "template": "Congrats, {{student_name}}!",
    "pdf_settings": {},
    "created_at": "2025/03/28 13:11:24 +0000",
    "updated_at": "2025/03/28 13:11:24 +0000",
    "days_to_expire": null,
    "expires_at": null
  }
}
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": 2,
      "full_id": "2",
      "catalog_id": 41,
      "catalog": {
        "id": 41,
        "name": "Domain Account 49"
      },
      "user": {
        "id": 1,
        "name": "Saul Goodman",
        "email": "bettercall@saul.com"
      },
      "listings": [
        {
          "id": 33,
          "canvas_course_id": 18,
          "title": "Course 32",
          "amount": "100.0",
          "discounted_amount": "90.0",
          "catalog_id": 41
        }
      ],
      "promotions": [
        {
          "id": 5,
          "listing_id": 33,
          "code": "PROMO5",
          "amount": "-10.0"
        }
      ],
      "payments": [
        {
          "reference_id": "123",
          "status": "success",
          "amount": "90.0"
        }
      ],
      "total": "90.0",
      "currency": "USD",
      "purchased_at": "2025/03/28 13:11:24 +0000",
      "created_at": "2025/03/28 13:11:24 +0000"
    }
  ]
}
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": 3,
    "full_id": "3",
    "catalog_id": 42,
    "catalog": {
      "id": 42,
      "name": "Domain Account 50"
    },
    "user": {
      "id": 1,
      "name": "Saul Goodman",
      "email": "bettercall@saul.com"
    },
    "listings": [
      {
        "id": 34,
        "canvas_course_id": 19,
        "title": "Course 33",
        "amount": "100.0",
        "discounted_amount": "90.0",
        "catalog_id": 42
      }
    ],
    "promotions": [
      {
        "id": 6,
        "listing_id": 34,
        "code": "PROMO6",
        "amount": "-10.0"
      }
    ],
    "payments": [
      {
        "reference_id": "123",
        "status": "success",
        "amount": "90.0"
      }
    ],
    "total": "90.0",
    "currency": "USD",
    "purchased_at": "2025/03/28 13:11:24 +0000",
    "created_at": "2025/03/28 13:11:24 +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": 1,
    "catalog": {
      "id": 43,
      "name": "Domain Account 51"
    },
    "name": "User 1",
    "email": "user1@example.com",
    "custom_fields": {
      "favorite_color": "#BADA55",
      "code_of_conduct": "1",
      "age": "19"
    },
    "created_at": "2025/03/28 13:11:24 +0000",
    "updated_at": "2025/03/28 13:11:24 +0000"
  }
}
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": 2,
      "catalog": {
        "id": 44,
        "name": "Domain Account 52"
      },
      "name": "User 2",
      "email": "user2@example.com",
      "custom_fields": {
        "favorite_color": "#BADA55",
        "code_of_conduct": "1",
        "age": "19"
      },
      "created_at": "2025/03/28 13:11:24 +0000",
      "updated_at": "2025/03/28 13:11:24 +0000"
    }
  ]
}
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": 4,
      "created_at": "2024-12-20T12:12:29.066827Z",
      "updated_at": "2024-12-20T12:12:30.892895Z",
      "full_id": "4",
      "account_id": 46,
      "user_id": 187,
      "canvas_user_id": 1,
      "canvas_root_account_uuid": "54WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
      "source": "bulk_purchase",
      "currency": "USD",
      "purchased_at": "2024-12-20T12:12:30.892045Z",
      "total": 6,
      "email": "bettercall@saul.com",
      "name": "Saul Goodman",
      "items": [
        {
          "id": 61,
          "created_at": "2024-12-20T12:12:29.068419Z",
          "updated_at": "2024-12-20T12:12:29.068433Z",
          "order_id": 4,
          "item_id": 42,
          "amount": 15,
          "canvas_root_account_uuid": "54WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
          "discounted_amount": 6,
          "quantity": 3,
          "unit_price": 5
        }
      ]
    },
    "product": {
      "id": 42,
      "visibility": "listed",
      "enrollment_open": true,
      "title": "Paid program",
      "enrollment_fee": 5,
      "account_id": 46,
      "type": "Program",
      "canvas_root_account_uuid": "54WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
      "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": 5,
          "created_at": "2024-12-20T12:12:29.066827Z",
          "updated_at": "2024-12-20T12:12:30.892895Z",
          "full_id": "5",
          "account_id": 48,
          "user_id": 187,
          "canvas_user_id": 1,
          "canvas_root_account_uuid": "56WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
          "source": "bulk_purchase",
          "currency": "USD",
          "purchased_at": "2024-12-20T12:12:30.892045Z",
          "total": 6,
          "email": "bettercall@saul.com",
          "name": "Saul Goodman",
          "items": [
            {
              "id": 61,
              "created_at": "2024-12-20T12:12:29.068419Z",
              "updated_at": "2024-12-20T12:12:29.068433Z",
              "order_id": 5,
              "item_id": 42,
              "amount": 15,
              "canvas_root_account_uuid": "56WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
              "discounted_amount": 6,
              "quantity": 3,
              "unit_price": 5
            }
          ]
        },
        "product": {
          "id": 42,
          "visibility": "listed",
          "enrollment_open": true,
          "title": "Paid program",
          "enrollment_fee": 5,
          "account_id": 48,
          "type": "Program",
          "canvas_root_account_uuid": "56WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
          "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
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": 35,
    "visibility": "listed",
    "enrollment_open": true,
    "enrollment_open_from": null,
    "enrollment_open_to": null,
    "enrollment_cap": null,
    "description": "description_34",
    "enrollment_fee": 0,
    "created_at": "2025/03/28 13:11:24 +0000",
    "credits": 3,
    "measurement": "credit",
    "updated_at": "2025/03/28 13:11:24 +0000",
    "short_description": "teaser_34",
    "listing_path": "course-path-34",
    "listing_image": null,
    "currency": "USD",
    "catalog": {
      "id": 50,
      "name": "Domain Account 58"
    },
    "type": "Course",
    "title": "Course 34",
    "list_order": null,
    "waitlist": false,
    "waitlist_cap": null,
    "sku": "sku_20",
    "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-34",
    "start_date": "2025/03/21 13:11:24 +0000",
    "end_date": "2025/04/04 13:11:24 +0000",
    "canvas_section_id": null,
    "associated_account_ids": [],
    "canvas_course": {
      "id": 20
    }
  }
}
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

{}
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": 37,
      "visibility": "listed",
      "enrollment_open": true,
      "enrollment_open_from": null,
      "enrollment_open_to": null,
      "enrollment_cap": null,
      "description": "description_36",
      "enrollment_fee": 0,
      "created_at": "2025/03/28 13:11:24 +0000",
      "credits": 3,
      "measurement": "credit",
      "updated_at": "2025/03/28 13:11:24 +0000",
      "short_description": "teaser_36",
      "listing_path": "course-path-36",
      "listing_image": null,
      "currency": "USD",
      "catalog": {
        "id": 53,
        "name": "Domain Account 62"
      },
      "type": "Course",
      "title": "Course 36",
      "list_order": null,
      "waitlist": false,
      "waitlist_cap": null,
      "sku": "sku_22",
      "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-36",
      "start_date": "2025/03/21 13:11:24 +0000",
      "end_date": "2025/04/04 13:11:24 +0000",
      "canvas_section_id": null,
      "associated_account_ids": [],
      "canvas_course": {
        "id": 22
      }
    }
  ]
}
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": 3,
    "root_account_id": 58,
    "canvas_user_id": 2,
    "registered_account_id": 58,
    "canvas_root_account_uuid": "GUxMJJhiZ8ugUdRADskc0nJrcMXuYYIwV15aWiMO",
    "canvas_user_uuid": "573SBAKMeMX3pAa6iOcml1a81xzsVaomatXUBhUT",
    "user_name": "Firstname Lastname",
    "first_name": "Firstname",
    "last_name": "Lastname",
    "email_address": "user1@example.com",
    "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"
  }
}
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": 2,
      "root_account_id": 57,
      "canvas_user_id": 2,
      "registered_account_id": 57,
      "canvas_root_account_uuid": "GUxMJJhiZ8ugUdRADskc0nJrcMXuYYIwV15aWiMO",
      "canvas_user_uuid": "573SBAKMeMX3pAa6iOcml1a81xzsVaomatXUBhUT",
      "user_name": "Firstname Lastname",
      "first_name": "Firstname",
      "last_name": "Lastname",
      "email_address": "user1@example.com",
      "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"
    }
  ]
}
  • GET/api/v1/applicants
  • DELETE/api/v1/applicants
  • GET/api/v1/applicants/{id}
  • GET/api/v1/tags
  • POST/api/v1/tags
  • GET/api/v1/tags/{id}
  • PUT/api/v1/tags/{id}
  • DELETE/api/v1/tags/{id}
  • GET/api/v1/catalogs
  • GET/api/v1/catalogs/{id}
  • GET/api/v1/enrollments
  • POST/api/v1/enrollments
  • GET/api/v1/enrollments/{id}
  • DELETE/api/v1/enrollments/{id}
  • GET/api/v1/progresses/{id}
  • POST/api/v1/analytics/enrollments
  • POST/api/v1/analytics/orders
  • POST/api/v1/analytics/users
  • POST/api/v1/analytics/products
  • GET/api/v1/programs
  • POST/api/v1/programs
  • GET/api/v1/programs/{id}
  • PUT/api/v1/programs/{id}
  • DELETE/api/v1/programs/{id}
  • GET/api/v1/email_domain_sets/{id}/promotions
  • GET/api/v1/email_domain_sets/{id}
  • PUT/api/v1/email_domain_sets/{id}
  • GET/api/v1/email_domain_sets
  • GET/api/v1/completed_certificates
  • GET/api/v1/certificates
  • POST/api/v1/certificates
  • DELETE/api/v1/certificates
  • PUT/api/v1/certificates/revoke_users_certificate
  • GET/api/v1/orders
  • GET/api/v1/orders/{id}
  • GET/api/v1/user_registrations/{id}
  • GET/api/v1/user_registrations
  • POST/api/v1/user_registrations
  • GET/api/v1/order_items/history/bulk_enrollments/{id}
  • GET/api/v1/order_items/history/bulk_enrollments
  • GET/api/v1/courses/{id}
  • PUT/api/v1/courses/{id}
  • DELETE/api/v1/courses/{id}
  • PUT/api/v1/courses/update_skus
  • GET/api/v1/courses
  • POST/api/v1/courses
  • GET/api/v1/users/{id}
  • PUT/api/v1/users/{id}
  • DELETE/api/v1/users/{id}
  • GET/api/v1/users
  • POST/api/v1/users
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": "plz@letmein.com"
      },
      "listing": {
        "id": 3,
        "title": "Course 3"
      },
      "notified_of_opening_at": null,
      "status": "waitlist",
      "created_at": "2025/03/28 13:11:22 +0000",
      "updated_at": "2025/03/28 13:11:22 +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

{}
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": 1,
  "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"
}
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": 1,
  "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": 1,
      "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
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": 3,
    "user": {
      "id": 1
    },
    "listing": {
      "id": 6,
      "title": "Course 6",
      "type": "Course",
      "canvas_course_id": 6
    },
    "enrolled_at": "2025/03/28 13:11:22 +0000",
    "status": "active"
  }
}
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": "user15@instructure.com",
        "canvas_user_id_string": "1"
      },
      "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"
    }
  ]
}
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": "purchaser1@instructure.com",
        "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": "user17@instructure.com",
          "canvas_user_id_string": "74"
        },
        {
          "id": 138,
          "canvas_user_id": 73,
          "name": "User 16",
          "email": "user16@instructure.com",
          "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": "user19@instructure.com",
          "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": "user20@instructure.com",
          "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": "user19@instructure.com",
      "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)

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
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: 514

{
  "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"
  }
}
201

Creating a program

{
  "program": {
    "id": 21,
    "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/03/28 13:11:23 +0000",
    "credits": null,
    "measurement": "credit",
    "updated_at": "2025/03/28 13:11:23 +0000",
    "short_description": "This is an example teaser",
    "listing_path": "program-1",
    "listing_image": null,
    "currency": "USD",
    "catalog": {
      "id": 25,
      "name": "Domain Account 33"
    },
    "type": "Program",
    "title": "Program 1",
    "list_order": 123,
    "waitlist": true,
    "waitlist_cap": 12,
    "sku": null,
    "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": []
  }
}
put
Authorizations
Path parameters
idintegerRequired
Body
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: 514

{
  "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"
  }
}
204

Updating a program

{}
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": 29,
    "email_domains": [
      {
        "id": 3,
        "domain": "example1.com",
        "email_domain_set_id": 2,
        "canvas_root_account_uuid": "37WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
        "created_at": "2025/03/28 13:11:23 +0000",
        "updated_at": "2025/03/28 13:11:23 +0000",
        "deleted_at": null
      },
      {
        "id": 4,
        "domain": "example2.org",
        "email_domain_set_id": 2,
        "canvas_root_account_uuid": "37WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
        "created_at": "2025/03/28 13:11:23 +0000",
        "updated_at": "2025/03/28 13:11:23 +0000",
        "deleted_at": null
      },
      {
        "id": 2,
        "domain": "example.com",
        "email_domain_set_id": 2,
        "canvas_root_account_uuid": "37WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx",
        "created_at": "2025/03/28 13:11:23 +0000",
        "updated_at": "2025/03/28 13:11:23 +0000",
        "deleted_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": 4,
    "listing_id": 31,
    "name": "API Name",
    "active": true,
    "template": "<H1>This is a template</h1>",
    "pdf_settings": {
      "orientation": "Landscape"
    },
    "created_at": "2025/03/28 13:11:24 +0000",
    "updated_at": "2025/03/28 13:11:24 +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": 32
    }
  ]
}
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": 45,
      "name": "Domain Account 53"
    },
    "name": "Barack Obama",
    "email": "barack@obama.com",
    "custom_fields": {},
    "created_at": "2025/03/28 13:11:24 +0000",
    "updated_at": "2025/03/28 13:11:24 +0000"
  }
}
put
Authorizations
Path parameters
idintegerRequired
Body
skustringOptional

Listing SKU for a course

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

{}
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": 51,
    "canvas_user_id": null,
    "completion_percent": null,
    "workflow_state": "queued",
    "payload": {},
    "created_at": "2025/03/28 13:11:24 +0000",
    "updated_at": "2025/03/28 13:11:24 +0000"
  }
}
post
Authorizations
Body
skustringOptional

Listing SKU for a course

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": 38,
    "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/03/28 13:11:25 +0000",
    "credits": 4,
    "measurement": "credit",
    "updated_at": "2025/03/28 13:11:25 +0000",
    "short_description": "This is an example teaser",
    "listing_path": "course-1",
    "listing_image": null,
    "currency": "USD",
    "catalog": {
      "id": 54,
      "name": "Domain Account 63"
    },
    "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
    }
  }
}
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": 1,
    "root_account_id": 56,
    "canvas_user_id": 2,
    "registered_account_id": 56,
    "canvas_root_account_uuid": "GUxMJJhiZ8ugUdRADskc0nJrcMXuYYIwV15aWiMO",
    "canvas_user_uuid": "573SBAKMeMX3pAa6iOcml1a81xzsVaomatXUBhUT",
    "user_name": "Firstname Lastname",
    "first_name": "Firstname",
    "last_name": "Lastname",
    "email_address": "user1@example.com",
    "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

{}
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": 4,
    "root_account_id": 59,
    "canvas_user_id": 2,
    "registered_account_id": 59,
    "canvas_root_account_uuid": "GUxMJJhiZ8ugUdRADskc0nJrcMXuYYIwV15aWiMO",
    "canvas_user_uuid": "573SBAKMeMX3pAa6iOcml1a81xzsVaomatXUBhUT",
    "user_name": "Firstname Lastname",
    "first_name": "Firstname",
    "last_name": "Lastname",
    "email_address": "user1@example.com",
    "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"
  }
}