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 1 month 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"
  }
}