Catalog API Documentation (2024)

Table of Contents
Authentication Pagination Getting enrollments analytics Endpoint Parameters Request Response Response Fields Getting orders analytics Endpoint Parameters Request Response Response Fields Getting products analytics Endpoint Parameters Request Response Response Fields Getting users analytics Endpoint Parameters Request Response Response Fields Getting a specific catalog Endpoint Request Response Response Fields Listing catalogs Endpoint Request Response Response Fields Creating a Certificate Endpoint Parameters Request Response Response Fields Deleting a Certificate Endpoint Parameters Request Response Getting a listing Certificate Endpoint Parameters Request Response Response Fields Request Response Response Fields Revoking Users Certificate Endpoint Parameters Request Response Response Fields listing a user's completions with a certificate Endpoint Parameters Request Response Response Fields Creating a course Endpoint Parameters Request Response Response Fields Deleting a specific course Endpoint Request Response Getting a specific course Endpoint Request Response Response Fields Listing courses Endpoint Request Response Updating Course SKUs Endpoint Parameters Request Response Updating a course Endpoint Parameters Request Response Getting a specific course Endpoint Request Response Response Fields Listing Email Domain Sets Endpoint Parameters Request Response Updating an Email Domain Set Endpoint Parameters Request Response Response Fields Creating an enrollment Endpoint Parameters Request Response Response Fields Deleting an enrollment Endpoint Request Response Response Fields Getting a specific bulk enrollment Endpoint Parameters Getting a specific enrollment Endpoint Request Response Response Fields Listing bulk enrollments Endpoint Parameters Listing enrollments Endpoint Parameters Request Response Getting a specific order Endpoint Request Response Response Fields Listing orders Endpoint Parameters Request Response Creating a program Endpoint Parameters Request Response Response Fields Deleting a specific program Endpoint Request Response Getting a specific program Endpoint Request Response Response Fields Listing programs Endpoint Request Response Updating a program Endpoint Parameters Request Response Getting a specific progress Endpoint Request Response Response Fields Creating a Tag Endpoint Parameters Request Response Response Fields Deleting a specific Tag Endpoint Request Response Response Fields Getting a specific Tag Endpoint Request Response Response Fields Listing Tags Endpoint Parameters Request Response Response Fields Updating a specific Tag Endpoint Parameters Request Response Response Fields Getting a specific user registration Endpoint Parameters Request Response Response Fields Listing user registrations Endpoint Parameters Request Response Registering a user Endpoint Parameters Request Response Response Fields Deleting a specific user with dependencies Endpoint Parameters Request Response Getting a specific User Endpoint Parameters Request Response Response Fields List users Endpoint Parameters Request Response Response Fields Registering a User Endpoint Parameters Request Response Response Fields Delete applicants Endpoint Parameters Request Response Getting a specific applicant record Endpoint Request Response Response Fields Listing applicants Endpoint Parameters Request Response References

So, you want to develop some tooling around the Catalog API - perhaps some custom reports? Great! This API gives you everything that Catalog has to offer.

Authentication

Visit this page to create an API key. Once you’ve received your key, treat it like a password.

Use SSL for all requests to the API. Non-SSL requests will result in redirects, and your API key will be sent in the clear.

To authenticate, send the API key as a request header. Here’s an example using cURL:

curl https://www.my-catalog.edu/api/v1/products -H 'Authorization: Token token="my-api-key"'

Pagination

All index endpoints support pagination. Specifically, we implement RFC5988.

Pagination Options

You can use ?page= to set the page of data you want to retrieve. If no items exist for that page, the response will be a root key with an empty array.

curl https://www.my-catalog.edu/api/v1/courses?page=2{ "courses": []}

To change the number of items returned for each page, you can use ?per_page=. This defaults to 20 and has a max of 100.

curl https://www.my-catalog.edu/api/v1/courses?per_page=40&page=2

Link Headers

Information about pagination is provided in the Link header. Here is an example of what the header could look like

curl -I https://www.my-catalog.edu/api/v1/courses?page=3Link: <https://www.my-catalog.edu/api/v1/courses?page=4>; rel="next", <https://www.my-catalog.edu/api/v1/courses?page=15>; rel="last", <https://www.my-catalog.edu/api/v1/courses?page=1>; rel="first", <https://www.my-catalog.edu/api/v1/courses?page=2>; rel="prev"

Let’s talk about what each link means. rel="next" lets us know that the next page of data is page=4. This make sense given that we requested page 3.rel="prev" lets us know that the page previous to the one we requested is page=2. rel="next" indicates the next page of data to request.rel="last" tells us the last and total number of pages of data that currently exist.

Not all rel= links will exist on every response. For instance, the response for the first page of data will not have rel="first" or rel="prev". The same is true forthe last page of data. This means that you can programmatically traverse all pages of data by requesting the first page and continuing to request the rel="next" untilthe response does not contain a rel="next".

It’s important to note that altering the per_page= will change the total number of pages.

Listing Image

If you are uploading a product image in SVG format. You will need to specify the file type.

curl https://www.my-catalog.edu/api/v1/products -F "course[listing_image]=@somefile.svg;type=image/svg+xml"'

Back to Top

The POST request parameters should be sent as JSON in the request body.
If the request is unfiltered, an empty JSON object should be sent as the filter.

Getting enrollments analytics

Endpoint

POST https://www.my-catalog.edu/api/v1/analytics/enrollments

Parameters

Name Description Type
account_ids List of account ids Array
product_ids List of product ids Array
product_statuses List of product statuses (OPEN, CLOSED, and/or DELETED) Array
student_ids List of student ids(catalog user id) Array
student_canvas_user_ids List of student ids(canvas user id) Array
enrollment_date_from Enrollment date from Datetime
enrollment_date_to Enrollment date to Datetime
enrollment_statuses List of enrollment statuses (ACTIVE, COMPLETED, DROPPED and/or CONCLUDED) Array
completion_date_from Completion date from Datetime
completion_date_to Completion date to Datetime

Request

Route

POST https://www.my-catalog.edu/api/v1/analytics/enrollments

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "account_ids": [ 1, 2, 3 ], "product_ids": [ 1, 2, 3 ], "product_statuses": [ "OPEN", "CLOSED", "DELETED" ], "student_ids": [ 1, 2, 3 ], "student_canvas_user_ids": [ 1, 2, 3 ], "enrollment_date_from": "2023-06-05T14:46:59.944581+02:00", "enrollment_date_to": "2023-06-06T14:46:59.944581+02:00", "enrollment_statuses": [ "ACTIVE", "COMPLETED", "DROPPED", "CONCLUDED" ], "completion_date_from": "2023-06-05T14:46:59.944581+02:00", "completion_date_to": "2023-06-06T14:46:59.944581+02:00"}

Response

Response Fields

Name Description Type
id Enrollment id Integer
account_id Account id Integer
account_name Account name String
product[name] Product name String
product[id] Product id Integer
product[url] Product url (null if product is deleted) String
product[sku] Product sku String
product_status Product status (OPEN, CLOSED, or DELETED) String
canvas_course_id Canvas course id Integer
student[canvas_user_id] Student Canvas user id Integer
student[name] Student name String
student[email] Student email String
student[canvas_user_id_string] Canvas user id in string format String
created_at Creation date Datetime
completed_at Completion date Datetime
enrollment_status Enrollment status (ACTIVE, COMPLETED, DROPPED or CONCLUDED) String
certificate_attainable Product has a certificate Boolean
certificate_offered Certificate offered/earned Boolean
custom_fields List of custom fields (consist of key and value) Array
certificate_url Certificate url String

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 1Content-Type: application/json; charset=utf-8X-CSRF-Token: kT2od4nB3r22RbOovEcQRBf2Vv5idthPq8r5PPYJQFuEB2xRQE7QMG7d4TObw9IRIflrInycfN0dI/fdpVMvgA==ETag: W/"97a734a5750ae8512b5a732ee4a6dce6"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=bzM1aXo2NzQ5SkJxTngyTDhiaGRPWkh5azJ3WFdGbjlGRERMVm9qZlRSQTM0UUVHOThyU2NYNHc3TkNmMksxQkNRWlFZMjdldXJKMzZqaVVXajNuZmtVdlNrNWZxMWp3ZUxQaW4wNlJZaHhZTDJCbWRURUcxb3JXb0pDdHB0VGhYR3FKR2Y3MnBmaU83S0lldlpqYXFwOHhBaG9uRjlQMDZ4REQrL3hPQjZFRHQ2allmSFUrK29IcXNUeFRaenJZLS0xTXZHU1pwQk50U2tINWhiU1RUOVdRPT0%3D--3676c9d7dd3a970ba78e8474a9acbd54cfc51c9d; path=/; HttpOnlyX-Request-Id: 943bbd47-09c6-44d4-883a-91c271f26805X-Runtime: 0.070184Content-Length: 690

Body

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

Getting orders analytics

Endpoint

POST https://www.my-catalog.edu/api/v1/analytics/orders

Parameters

Name Description Type
account_ids List of account ids Array
product_ids List of product ids Array
product_statuses List of product statuses (OPEN, CLOSED, and/or DELETED) Array
student_ids List of student ids(catalog user id) Array
student_canvas_user_ids List of student ids(canvas user id) Array
purchaser_ids List of purchaser ids(catalog user id) Array
purchaser_canvas_user_ids List of purchaser ids(canvas user id) Array
bulk_purchases_only Bulk purchases only Boolean
purchase_date_from Purchase date from Datetime
purchase_date_to Purchase date to Datetime
order_fee List of order fee types (FREE and/or PAID) Array
listing_price_min Listing price minimum Decimal
listing_price_max Listing price maximum Decimal
promo_codes List of promotion code states (APPLIED and/or NOT_APPLIED) Array
revenue_min Revenue minimum Decimal
revenue_max Revenue maximum Decimal

Request

Route

POST https://www.my-catalog.edu/api/v1/analytics/orders

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "account_ids": [ 1, 2, 3 ], "product_ids": [ 1, 2, 3 ], "product_statuses": [ "OPEN", "CLOSED", "DELETED" ], "student_ids": [ 1, 2, 3 ], "student_canvas_user_ids": [ 1, 2, 3 ], "purchaser_ids": [ 1, 2, 3 ], "purchaser_canvas_user_ids": [ 1, 2, 3 ], "bulk_purchases_only": true, "purchase_date_from": "2023-06-05T14:46:59.944581+02:00", "purchase_date_to": "2023-06-06T14:46:59.944581+02:00", "order_fee": 10.0, "listing_price_min": 5.0, "listing_price_max": 100.6, "promo_codes": [ "APPLIED", "NOT_APPLIED" ], "revenue_min": 5.0, "revenue_max": 1000.1}

Response

Response Fields

Name Description Type
account_id Account id Integer
account_name Account name String
product[name] Product name String
product[id] Product id Integer
product[url] Product url (null if product is deleted) String
product[sku] Product sku String
product_status Product status (OPEN, CLOSED, or DELETED) String
canvas_course_id Canvas course id Integer
purchaser[id] Purchaser Catalog user id Integer
purchaser[canvas_user_id] Purchaser Canvas user id Integer
purchaser[name] Purchaser name String
purchaser[email] Purchaser email String
purchaser[canvas_user_id_string] Purchaser Canvas user id in string format String
purchased_at Purchase date Datetime
order_id Order id Integer
order_item_id Order item id Integer
reference_id Reference id String
list_price Listing price Decimal
currency Currency String
promo_codes List of promotion codes Array
discount Discount Decimal
revenue Revenue Decimal
bulk_purchase Bulk purchase Boolean
seat_count Seat count Integer
bulk_enrollments List of bulk enrolled students Array
bulk_enrollments[id] Bulk enrolled Catalog user id Integer
bulk_enrollments[canvas_user_id] Bulk enrolled Canvas user id Integer
bulk_enrollments[name] Bulk enrolled student name String
bulk_enrollments[email] Bulk enrolled student email String
bulk_enrollments[canvas_user_id_string] Bulk enrolled Canvas user id in string format String
last_modification_date Last modification date of revenue Datetime
revenue_change_history Revenue change history list Array
revenue_change_history[modification_date] Modification date of revenue update Datetime
revenue_change_history[new_value] New revenue value Decimal
revenue_change_history[new_value_currency] New revenue value currency String
revenue_change_history[old_value] Old revenue value Decimal
revenue_change_history[old_value_currency] Old revenue value currency String
revenue_change_history[reason] Reason of revenue update String
revenue_change_history[user_name] Name of the user who updated the revenue String
revenue_change_history[user_profile_link] Link to the user profile String

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 1Content-Type: application/json; charset=utf-8X-CSRF-Token: SJvFeNqt4IqQST6n6D8Z4ssYyFWi/MgD1YeqO9BzUmJ/JzdTPKmrtrLtfAY8z9tkPtcAnZIlaALG5UcKx3vV3w==ETag: W/"2bc151db8614f69f334f1698f64f13bf"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=VjZmcHVaTU4rUG9EVzIrcmdGdU0rc2JDS1RoRldHSmN2M0ZVK2pCeUMzWGdyN1FJbW4vNncybXNYRWU5ZmdDblRSVVJ1MVU0MGlYY3MzUEJ6dndLMmxyUlQ4OWdWaUoyK0s1eU1tZ1NreVBBdTlOQkErZnUxdXJBdEYvUTVaRVlGNlpqQUxuR0RmY2pBWHg0QWFPNFFsSkNxTDVhaVRHMU9EQ3VhRTFwUFRjYkNnM3Zna0tnVFp0empJVEZIR1ZxLS1xYlFXblo1Y3Z0cTZqT0ZjUkN3NW1RPT0%3D--0141c6ef068a4470cd6e2e2067859c22627d2586; path=/; HttpOnlyX-Request-Id: e4b56a77-6589-4103-a672-e118f79346ccX-Runtime: 0.105985Content-Length: 1470

Body

{ "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.0, "currency": "USD", "promo_codes": [ "PROMO1", "PROMO2" ], "discount": 10.0, "revenue": 5.0, "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.0, "new_value_currency": "USD", "old_value": 2.0, "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.0, "new_value_currency": "USD", "old_value": 11.0, "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" } ] } ]}

Getting products analytics

Endpoint

POST https://www.my-catalog.edu/api/v1/analytics/products

Parameters

Name Description Type
account_ids List of account ids Array
product_ids List of product ids Array
product_statuses List of product statuses (OPEN, CLOSED, and/or DELETED) Array
creation_date_from Creation date from Datetime
creation_date_to Creation date to Datetime
enrollment_count_min Enrollment count minimum Integer
enrollment_count_max Enrollment count maximum Integer
completion_count_min Completion count minimum Integer
completion_count_max Completion count maximum Integer
dropped_count_min Dropped count minimum Integer
dropped_count_max Dropped count maximum Integer
listing_price_min Listing price minimum Decimal
listing_price_max Listing price maximum Decimal
promo_codes List of promotion code states (APPLIED and/or NOT_APPLIED) Array
revenue_min Revenue minimum Decimal
revenue_max Revenue maximum Decimal
certificate_offered Certificate offered for the product Boolean

Request

Route

POST https://www.my-catalog.edu/api/v1/analytics/products

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "account_ids": [ 1, 2, 3 ], "product_ids": [ 1, 2, 3 ], "product_statuses": [ "OPEN", "CLOSED", "DELETED" ], "creation_date_from": "2023-06-05T14:46:59.944581+02:00", "creation_date_to": "2023-06-06T14:46:59.944581+02:00", "enrollment_count_min": 0, "enrollment_count_max": 5, "completion_count_min": 0, "completion_count_max": 5, "dropped_count_min": 0, "dropped_count_max": 5, "listing_price_min": 10.1, "listing_price_max": 1000.5, "promo_codes": [ "APPLIED", "NOT_APPLIED" ], "revenue_min": 10.1, "revenue_max": 500.5, "certificate_offered": true}

Response

Response Fields

Name Description Type
account_id Account id Integer
account_name Account name String
product[name] Product name String
product[id] Product id Integer
product[url] Product url (null if product is deleted) String
product[sku] Product sku String
product_status Product status (OPEN, CLOSED, or DELETED) String
created_at Product creation date Datetime
canvas_course_id Canvas course id Integer
enrollment_count Enrollment count Integer
dropped_count Dropped count Integer
completion_count Completion count Integer
currency Currency String
list_price Listing price Decimal
promo_codes List of promotion codes Array
discount Discount Decimal
revenue Revenue Decimal
points Points (null if account measurement is not point) Decimal
ceus CEUs (null if account measurement is not CEU) Decimal
credits Credits (null if account measurement is not credit) Decimal
certificate_offered Certificate offered for this product Boolean

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 1Content-Type: application/json; charset=utf-8X-CSRF-Token: 7OtF4ekMunPthxxfYjzDmnFlzTJEdk1CJD6Fn063tEx/ZOp3Md94Sk5Poo2KGJKHcu60ehADNmeAFKMDcuJ7sQ==ETag: W/"5a2f0129ae43f07ed8a378bdee3c6555"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=Vk5meGJWQmJzemtLZDZuNCtjUXBnNWp1T0xxeTRRcGVkVytRSEIvWEMvbE5KTXZ4N1ltZFEzNmRKcjdyNWhFR0JtOU93SzNUT1BiUnJzUWliaW05dGNtWUI2N1JLT1BWdkRwY28wUms2dFhRWWd5bi9PYlJ6M1Y4STR3VklIQTFoclJLelVvNjJGRHZJQUduTHl3MnlCZmxjdDRNK2s0RklUNWJwZm1qNDBiUXYvUTc5L2MwVTRnZTFTRUhjUWdILS1uU3dUNUxBR3hPcksxcXdlSWdzTlJ3PT0%3D--7b30d18daa9ae4d9657270f23cbb14c62d20e3ed; path=/; HttpOnlyX-Request-Id: 48b1d6b4-1c60-415f-9ebe-9c914943c37aX-Runtime: 0.068954Content-Length: 463

Body

{ "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.0, "promo_codes": [ "PROMO1", "PROMO2" ], "discount": 10.0, "revenue": 60.0, "credits": 5.0, "certificate_offered": true } ]}

Getting users analytics

Endpoint

POST https://www.my-catalog.edu/api/v1/analytics/users

Parameters

Name Description Type
account_ids List of account ids Array
student_ids List of student ids(catalog user id) Array
student_canvas_user_ids List of student ids(canvas user id) Array
enrollment_count_min Enrollment count minimum Integer
enrollment_count_max Enrollment count maximum Integer
last_enrollment_date_from Last enrollment date from Datetime
last_enrollment_date_to Last enrollment date to Datetime
registration_date_from Registration date from Datetime
registration_date_to Registration date to Datetime
registered_through List of registration sources (CANVAS and/or CATALOG) Array

Request

Route

POST https://www.my-catalog.edu/api/v1/analytics/users

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "account_ids": [ 1, 2, 3 ], "student_ids": [ 1, 2, 3 ], "student_canvas_user_ids": [ 1, 2, 3 ], "enrollment_count_min": 0, "enrollment_count_max": 5, "last_enrollment_date_from": "2023-06-05T14:46:59.944581+02:00", "last_enrollment_date_to": "2023-06-06T14:46:59.944581+02:00", "registration_date_from": "2023-06-05T14:46:59.944581+02:00", "registration_date_to": "2023-06-06T14:46:59.944581+02:00", "registered_through": [ "CANVAS", "CATALOG" ]}

Response

Response Fields

Name Description Type
id Catalog user id Integer
canvas_user_id Canvas user id Integer
name User name String
email User email String
account_id Account id Integer
account_name Account name String
registered_through Registration source (CANVAS or CATALOG) String
registered_at Registration date Datetime
enrollment_count Enrollment count Integer
last_enrolled_at Last Enrollment date Datetime
custom_fields List of custom fields (consist of key and value) Array

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 1Content-Type: application/json; charset=utf-8X-CSRF-Token: rVggPyMxwYY83B3S5kpvnwloI3FgvPzPKjLhvNDWbtH18JsKpe5RmqnVcm0BoFeFA3682Wy56IY27IFBPB+1Pw==ETag: W/"bd444a5c10a5f6c1b1ca69e53a5d8c30"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=OW51QUp3MzQvOWtiQ056N1ZKc0VDWmkrSnhQbnFYL1QxR3ovdDZTYkFRcDRPTXozN2NsRU1kSU0waDFBZ1dRbmRZRmMzaFhnVUlZUTNHZmJWU2ZaR3l0bFBvMWtQb2lYQUFPTWFVeEJKdmQySzhUZExkSDFGVGd1dGtOU0V4NzBIRkdDY2VVV1BKLzdyOGttVDRKQXI5RS9oR0UzQlZHdWsybGpra2VxNk05OHdFNXV0ejgyYmxSQ3RzVTloUk15LS1DQ3pUazRKdEhkeVk2ZXFhMktJaGZBPT0%3D--bdb2b4ebab9ebc357ff17178085cee109349de66; path=/; HttpOnlyX-Request-Id: bdaf7d21-4c98-4f8f-89ae-ce8ef91a0265X-Runtime: 0.067530Content-Length: 386

Body

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

Getting a specific catalog

Endpoint

GET https://www.my-catalog.edu/api/v1/catalogs/:id

Request

Route

GET https://www.my-catalog.edu/api/v1/catalogs/18

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
id Identifier for this catalog. Integer
created_at The creation date for the catalog. Datetime
updated_at The last time the catalog was updated. Datetime
name The name of the catalog. String
canvas_domain Domain for the corresponding canvas account. String
canvas_id Id for the corresponding canvas account. String
logo URL for the catalog logo. String
locale Three character locale for the catalog. String
url Url for the catalog String
user_defined_fields An array of serialized user defined field records provided to the catalog either through direct assignment or inheritance. Array
user_defined_field[name] Name of the user defined field String
user_defined_field[label] Label that will be shown with the field String
user_defined_field[field_type] HTML input type of the field String
user_defined_field[required] Indicates if the custom field is required Boolean
parent[id] The id of the parent catalog Integer
parent[name] The name of the parent catalog Integer
settings[privacy_policy_url] Url of the privacy policy for this catalog. String
settings[terms_url] Url of the terms used for this catalog. String
settings[currency] Three character currency code. String
settings[time_zone] Timezone configured for this catalog. String
settings[country] Two character country code. String
settings[email_from_name] Name that appears as the sender in emails. String
settings[allow_user_registration] Indicates if new users allowed to enroll classes. Boolean
settings[title_tag] Used for custom titles in HTML. String
settings[meta_description] Used to a meta tag description in HTML. String
settings[custom_head_content] Used to add custom head content to HTML. String
settings[custom_body_content] Used to add custom body content to HTML. String
settings[show_listings_in_parent] Indicates if this catalogs listings will show in a parent catalog. Boolean
settings[skus_enabled] Indicates if the course displays the sku field. Boolean

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: SPVBzxM2hdP5Y86nbUkqlt+aN67qJkVRi6gn80Jn+Zh6hXJwvUHe9LCG1ja3UEY9+sIkbOj98ugb07qnDI0klA==ETag: W/"795ea054e89009ce6406dc5c4d300979"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=ck1jYUtGcndha0xxUFhUYk5PMURKRFVpalY2TllPMGY4QjI2YnIza0VoeXhGMFJBNi8wYm1lWGo3Nm9SR0xGd0dNRTdLbDVNeWhncXZ2eWZsODk1WnFFSHU4VENRWlRvdytIL0puS0M0cnVZYkFOR0w2ek5jUDdkUEEvWEhWK21OYlJ3MnU3S1haWnliSjd2UWV2dTVxMXRXbysrQnltZGMvaVB4SkhLUkVBLzUzSFZCaktGYWgvSzFMazhJNDh6LS1HeEtibm5aaUFQbkxoS2VnbGZSd1lnPT0%3D--eff150289e7e0e4cc2900f86888a61fe52d1bf9a; path=/; HttpOnlyX-Request-Id: 2a9839f6-ca23-4024-9419-b91485fc51e9X-Runtime: 0.092036Content-Length: 2015

Body

{ "account": { "id": 18, "name": "Domain Account 23", "parent": null, "created_at": "2024/07/01 08:28:54 +0000", "updated_at": "2024/07/01 08:28:54 +0000", "canvas_domain": "www.canvas-domain-23.com", "canvas_id": 23, "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" }, "user_defined_fields": [ ], "logo": "https://test-bucket.s3.amazonaws.com/test/logos/999c16cc71895084eb45c45adc8645daa5c96c55.jpeg", "locale": "en", "url": "http://www.my-catalog.edu", "measurement": "credit", "storefront_theme_id": null }}

Listing catalogs

Endpoint

GET https://www.my-catalog.edu/api/v1/catalogs

Request

Route

GET https://www.my-catalog.edu/api/v1/catalogs

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
id Identifier for this catalog. Integer
created_at The creation date for the catalog. Datetime
updated_at The last time the catalog was updated. Datetime
name The name of the catalog. String
canvas_domain Domain for the corresponding canvas account. String
canvas_id Id for the corresponding canvas account. String
logo URL for the catalog logo. String
locale Three character locale for the catalog. String
url Url for the catalog String
user_defined_fields An array of serialized user defined field records provided to the catalog either through direct assignment or inheritance. Array
user_defined_field[name] Name of the user defined field String
user_defined_field[label] Label that will be shown with the field String
user_defined_field[field_type] HTML input type of the field String
user_defined_field[required] Indicates if the custom field is required Boolean
parent[id] The id of the parent catalog Integer
parent[name] The name of the parent catalog Integer
settings[privacy_policy_url] Url of the privacy policy for this catalog. String
settings[terms_url] Url of the terms used for this catalog. String
settings[currency] Three character currency code. String
settings[time_zone] Timezone configured for this catalog. String
settings[country] Two character country code. String
settings[email_from_name] Name that appears as the sender in emails. String
settings[allow_user_registration] Indicates if new users allowed to enroll classes. Boolean
settings[title_tag] Used for custom titles in HTML. String
settings[meta_description] Used to a meta tag description in HTML. String
settings[custom_head_content] Used to add custom head content to HTML. String
settings[custom_body_content] Used to add custom body content to HTML. String
settings[show_listings_in_parent] Indicates if this catalogs listings will show in a parent catalog. Boolean
settings[skus_enabled] Indicates if the course displays the sku field. Boolean

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 1Content-Type: application/json; charset=utf-8X-CSRF-Token: g8Tlqz9W4tJH0GgmfpIA5up9PMSAY970ckVIMFX4WoQwcgwNFEP/kAMX9NjXelTXf+vDNKpemBDQTV4AvHSl4Q==ETag: W/"725457339af80ec01301ba1069f383a0"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=OWlmUloxNWJ2alI0bEJra0xGUW5aUnBuU2NBdyt2SlZ5V25JREZlNmxqSDF2ZEt0TzdiU01qK1ZJa0VtMjlNZHk5V3d2cy9GSnJlTGFFNkhqd1VCNlZjKy9oR3B5QjNvYWh5MG1QYTdZTFlDOThlVnJCK2gyQnJ0MW5yTTRubWc3WTE1RVFKZnZ2Z2FJaVBybE5aL2VIWmEvM29qY0xyMFpPejBWNHU5aHVqWGo5MW04bDlZVEZ2NWs2b1FLOURDLS12WnpML29CeDlNTHBYVThOeUU5WjhRPT0%3D--64b388157524bd47eb76d6748b4731f5e070f563; path=/; HttpOnlyX-Request-Id: 47229375-a1da-4fff-9bde-bd547f7302ffX-Runtime: 0.075773Content-Length: 2673

Body

{ "catalogs": [ { "id": 17, "name": "Domain Account 18", "parent": null, "created_at": "2024/07/01 08:28:54 +0000", "updated_at": "2024/07/01 08:28:54 +0000", "canvas_domain": "www.canvas-domain-18.com", "canvas_id": 18, "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" }, "user_defined_fields": [ { "list_order": 0, "name": "favorite_color", "label": "Favorite Color", "field_type": "text", "required": false, "required_message": "Favorite Color is required", "metadata": { } }, { "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": { } }, { "list_order": 2, "name": "age", "label": "Age", "field_type": "text", "required": true, "required_message": "You must provide an Age.", "metadata": { } }, { "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" ] } } ], "logo": "https://test-bucket.s3.amazonaws.com/test/logos/506b3b738018b31a0e0cad8c2171497a13f189f6.jpeg", "locale": "en", "url": "http://www.my-catalog.edu", "measurement": "credit", "storefront_theme_id": null } ]}

Creating a Certificate

Endpoint

POST https://www.my-catalog.edu/api/v1/certificates

Parameters

Name Description Type
certificate[listing_id] required Id of the Listing Integer
certificate[name] required Name of the Certificate String
certificate[active] State of the Certificate, defaults to true Boolean
certificate[template] required Template for Certificate contents String
certificate[pdf_settings][orientation] 'Landscape' or 'Portrait' mode for PDF. Defaults to Landscape. String
days_to_expire Days until the certificate expires after it is awarded. Defaults to null. Must not be present when expires_at is present. Integer
expires_at Date of certificate expiration. Defaults to null. Must not be present when days_to_expire is present. Datetime

Request

Route

POST https://www.my-catalog.edu/api/v1/certificates

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "certificate": { "listing_id": 1, "name": "API Name", "active": true, "template": "<H1>This is a template</h1>", "pdf_settings": { "orientation": "Landscape" } }}

Response

Response Fields

Name Description Type
certificate[id] Certificate ID Integer
certificate[listing_id] Corresponding listing ID Integer
certificate[name] Certificate name String
certificate[active] Whether the certificate is enabled String
certificate[template] HTML template used to generate issued certificates String
certificate[pdf_settings] An object containing extra params for PDF generation Object
certificate[created_at] The creation date of the certificate Datetime
certificate[updated_at] The last time the certificate was updated Datetime
certificate[days_to_expire] Number of days for which issued certificates remain valide Integer
certificate[expires_at] A fixed datetime when issued certificates expire Datetime

Status

201

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: CCV8jM82EQdGZBJmmCHWE6atS6fUII1jQ63Pfk7hEdtNtM0kgNhyBrG/V6lmypBxa1GokCQWEY2hmPUe9HBaew==ETag: W/"4e5039642e27e17199127cda7232c205"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=Y2FqRzhzTklFUUhIdzFneDlTZEI0Z1VqZHlvcWVHTHV3U1EvQmU2WncyZTNrVUxvMVpNS1FBNzJBTXJJcENORHRWMDZGZXdROUxCdm1qTGNpT0lCS1VBc3ZHaXpKY1BaYXZXYUdrbHh2aEIvQ3NxelBJejBzSnJtdFFJdXZyZjh2NU10VU1wWUlTQWVwSDdQRkdKdzcrQkgxY3ovQXBORHFBenFsTEFGVmwvZytSMzVNTC9NWFZpNDJFNWZBaVdPLS00NVZTcHBCYVRqM3VPamFhWFd2SURBPT0%3D--149788f48468f1b22a019f2c762fe87f3f6c325d; path=/; HttpOnlyX-Request-Id: 8b85f8c8-5900-4a50-a7f7-89f8c75294dbX-Runtime: 1.667889Content-Length: 297

Body

{ "certificate": { "id": 1, "listing_id": 1, "name": "API Name", "active": true, "template": "<H1>This is a template</h1>", "pdf_settings": { "orientation": "Landscape" }, "created_at": "2024/07/01 08:28:51 +0000", "updated_at": "2024/07/01 08:28:51 +0000", "days_to_expire": null, "expires_at": null }}

Deleting a Certificate

Endpoint

DELETE https://www.my-catalog.edu/api/v1/certificates

Parameters

Name Description Type
certificate[listing_id] required Id of the Listing Integer
nullify_requirements_completed_at Should nullify the requirements_completed_at for the enrollments, defaults to false Boolean

Request

Route

DELETE https://www.my-catalog.edu/api/v1/certificates

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "certificate": { "listing_id": 2 }, "nullify_requirements_completed_at": true}

Response

Status

204

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originX-CSRF-Token: GH4ShJNZr2zhDxoloOq7QiryMeqk5+/Vyj34zJKbedcJzPzpGDhyE4Z4qP/sJyL3TyvxqzQhziYXqhVkaBworA==Cache-Control: no-cacheSet-Cookie: _gallery_session=eWNHeUxXVTF1V3A0Z1lmcGNia2RjT3lFRGgwdURIWklTeGNMRVcvS2NiRTA1YmFDUmh0N0hmMTEzK0JGVFdsZkFCcjZDdDBsU216azcyTGE2SlFRWHZIVllVMUVUSTVqV0MvbkFLblBjM3RZc2F4eS93c2FNK1hkTmN6cnFvTDVBTElGUE5Oa2YrVHpSaWYvelFCbjVHNUYvUzdrY0lvcnRsRDgzMW1ET3k0dmdQVGk0dmZpaVMzbzBCeUZHZFJJLS1uRXRBdTRTZzhOUjBjRzAyRitRdjR3PT0%3D--7e1dbe2dca6a23eb3dd691347fc3d5bec2776083; path=/; HttpOnlyX-Request-Id: b95af101-98ba-4cc9-accf-a689cd71671aX-Runtime: 0.098761

Getting a listing Certificate

Endpoint

GET https://www.my-catalog.edu/api/v1/certificates

Parameters

Name Description Type
certificate[listing_id] required Id of the Listing Integer

Request

Route

GET https://www.my-catalog.edu/api/v1/certificates?certificate[listing_id]=4

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Query Parameters

certificate={"listing_id"=>"4"}

Response

Response Fields

Name Description Type
certificate[id] Certificate ID Integer
certificate[listing_id] Corresponding listing ID Integer
certificate[name] Certificate name String
certificate[active] Whether the certificate is enabled String
certificate[template] HTML template used to generate issued certificates String
certificate[pdf_settings] An object containing extra params for PDF generation Object
certificate[created_at] The creation date of the certificate Datetime
certificate[updated_at] The last time the certificate was updated Datetime
certificate[days_to_expire] Number of days for which issued certificates remain valide Integer
certificate[expires_at] A fixed datetime when issued certificates expire Datetime

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: hhgB43BmuO8l4oQYBFZ7A1/HY98Pm6MkPRbJ7QFNNrih++4dp7ntQ6wy3FBCZmqvb5j/NfZQCl59Hx6bNw8OhA==ETag: W/"a2a9b2e0d843073b06877eaa12ce7dc3"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=dmcrT3hGNHQ5bnVZTWdCNXpIa3RHTjBvRHFvQjdUR2k2RE9pM09aNVkwclpPVDh4M0QrVEY2U2EvYituNnl1SGJGVkE2QUl6Ui9LNUxHVjVvNGY0TXA1MXpoZEpYZllJaitVZ0RDUXovK05URmpRakhtZlJxWTZjSG5idHZYT1hJb3pncnJOVU5RdTdHMHpLUHcrR0VlM2ZGL1VHQXZnR1FtU0Qyc21uWUp0eUt6RVo4dFhwdTJxRTEyMkdkYk5CLS05SnZmNmNoOEUySGtxaENhWVN5MGVBPT0%3D--58719c57ea7932f3b89a280328943cb55cd053a5; path=/; HttpOnlyX-Request-Id: 8bfb5a9a-cbea-4549-aa24-e1bc1c2d55f6X-Runtime: 0.076493Content-Length: 267

Body

{ "certificate": { "id": 4, "listing_id": 4, "name": "Certificate of Training", "active": true, "template": "Congrats, {{student_name}}!", "pdf_settings": { }, "created_at": "2024/07/01 08:28:52 +0000", "updated_at": "2024/07/01 08:28:52 +0000", "days_to_expire": null, "expires_at": null }}

Request

Route

GET https://www.my-catalog.edu/api/v1/certificates?certificate[listing_id]=4

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: _gallery_session=dmcrT3hGNHQ5bnVZTWdCNXpIa3RHTjBvRHFvQjdUR2k2RE9pM09aNVkwclpPVDh4M0QrVEY2U2EvYituNnl1SGJGVkE2QUl6Ui9LNUxHVjVvNGY0TXA1MXpoZEpYZllJaitVZ0RDUXovK05URmpRakhtZlJxWTZjSG5idHZYT1hJb3pncnJOVU5RdTdHMHpLUHcrR0VlM2ZGL1VHQXZnR1FtU0Qyc21uWUp0eUt6RVo4dFhwdTJxRTEyMkdkYk5CLS05SnZmNmNoOEUySGtxaENhWVN5MGVBPT0%3D--58719c57ea7932f3b89a280328943cb55cd053a5

Query Parameters

certificate={"listing_id"=>"4"}

Response

Response Fields

Name Description Type
certificate[id] Certificate ID Integer
certificate[listing_id] Corresponding listing ID Integer
certificate[name] Certificate name String
certificate[active] Whether the certificate is enabled String
certificate[template] HTML template used to generate issued certificates String
certificate[pdf_settings] An object containing extra params for PDF generation Object
certificate[created_at] The creation date of the certificate Datetime
certificate[updated_at] The last time the certificate was updated Datetime
certificate[days_to_expire] Number of days for which issued certificates remain valide Integer
certificate[expires_at] A fixed datetime when issued certificates expire Datetime

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: rhUOs6r/kG5w+a728RlQVvPsZPHqS29vezGWjKJnZq+J9uFNfSDFwvkp9r63KUH6w7P4GxOAxhU7OEH6lCVekw==ETag: W/"a2a9b2e0d843073b06877eaa12ce7dc3"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=Y0VaRUFPZEN5cDRvcStoN1o1YytDRFM4c0hzVkJzWGgvQjdBYlZyazFsN3dnVlgxM2EwRS9Wai9LTTVGMUxyZmZwYmRzVGlHanoyUm9UT3lNTVYybEpubjlpK2J2SmdqbmZHaGpVUTlNRTNKT1NFVUdQeDd0UTVEMmZJZVpuenpjSHl4d3JmeUtUQVZ3N2Vrbk9Yb25JU0hsNXZKdWRWenpjTm5MK1JMVXllTHFRNG1DNFJvUFk1R1d0dlpCb2hYLS1EbStLeWNQMHJQMzRGMk5rWDNEVHdBPT0%3D--53667fd21c6b9c8bee01788f9df9e3c06aeb0e95; path=/; HttpOnlyX-Request-Id: e0b481c5-d298-43f6-9529-b38513b3b191X-Runtime: 0.071477Content-Length: 267

Body

{ "certificate": { "id": 4, "listing_id": 4, "name": "Certificate of Training", "active": true, "template": "Congrats, {{student_name}}!", "pdf_settings": { }, "created_at": "2024/07/01 08:28:52 +0000", "updated_at": "2024/07/01 08:28:52 +0000", "days_to_expire": null, "expires_at": null }}

Revoking Users Certificate

Endpoint

PUT https://www.my-catalog.edu/api/v1/certificates/revoke_users_certificate

Parameters

Name Description Type
certificate[listing_id] required Id of the Listing Integer
certificate[canvas_user_ids] required List of Canvas User Id's Array

Request

Route

PUT https://www.my-catalog.edu/api/v1/certificates/revoke_users_certificate

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "certificate": { "listing_id": 3, "canvas_user_ids": [ 1 ] }}

Response

Response Fields

Name Description Type
revoked_certificates[canvas_user_id] Canvas User ID Integer
revoked_certificates[canvas_course_id] Canvas Course ID Integer
revoked_certificates[listing_id] Catalog Product Listing ID Integer

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: Bfu2vTVvyp2aou+eYMh1YNpxjBrPMH4Y3wmDXmbuXZy7MhadJZ2AOcGShN0nR6DbfcqM+HafVhRkloIVHzttcA==ETag: W/"1c79bd74383e3a93361ba751f381fe80"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=V1FwSnZ0dUwwcXF0cUErZmR2QjZZNFp6ZE5XVDYrL2poWVNGOTJqTGVLRGZxRFYwWUQ4OE5EVmNUZks1UXBLWjNTWjBGTjNHckdqdEFXUGl0b0hXYnpLYzBBV3VxK1lmRUw2NXJHZHNrMExCbHdFQk5aOWs3VCs3R3NOME0zQ1ZJeEg2bVo0YkxMV0c0Lzg3M0pURVRPc3ZZLzBrUDFZQ2g1YmtvVmY0WDZwanFUaVZtM0RJRUh0cVF2RXdUeFRMLS1FZks4anE2NG1zeDA5eC9jWkorQ3l3PT0%3D--d746f6da080822d3be2529b6dc4cd8edb2a22add; path=/; HttpOnlyX-Request-Id: 674eafd5-2b97-4689-ae32-130a21d8afafX-Runtime: 0.107989Content-Length: 86

Body

{ "revoked_certificates": [ { "canvas_user_id": 1, "canvas_course_id": 1001, "listing_id": 3 } ]}

listing a user's completions with a certificate

Endpoint

GET https://www.my-catalog.edu/api/v1/completed_certificates

Parameters

Name Description Type
user_id required Canvas Id of the user Integer
only_certificates Indicates if the courses without certificates should be included, default is to include all courses Boolean

Request

Route

GET https://www.my-catalog.edu/api/v1/completed_certificates?user_id=1&only_certificates=true

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Query Parameters

user_id=1only_certificates=true

Response

Response Fields

Name Description Type
canvas_course_id Canvas Course ID Integer
catalog_title catalog course title String
canvas_course_name Canvas Course name String
certificate_url URL for Course Certificate String
canvas_course_workflow_state Canvas Course Workflow State String
completed_at Canvas Course Completion Date Datetime

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: dBRtXzS4ApFaz2o44l6NuLq+YiW8SYOLR1MwpM5A8H3cTmCSD4IQej/MTSk5YGwr8Uh+D9Naa5td6MhUKjhmsA==ETag: W/"770c1a987f41cc1aac22faa165808f29"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=T3J3TXdrUmpUNmoyQ0xvc0xrQUhlVkE5andqRGVRTkJQQndzMno0Y0UyNDV4SjJiQkJRM3B6dkIvdHRqM1VuUHN0N3JVNjRFcStRQzFXaGZKMGZrSkVaVjkrSDJEMGJHeEhOb3VpbjM0RWZ1STRkYytwOHRrZ2J2bis4RkpPcmIreTZZY2lqQVBzRWxjQTA2S1ZQNStocEhxbWN3bUpDYXRWZXk5SEVwNytKMmZOV0krSGU2aG1Yb1YwQktOVnRXLS1DZXZHQ1NsWjJuSzlvbUpOcC9vSGt3PT0%3D--01091681d8fa241f02a6869dc83ac013f1baeea4; path=/; HttpOnlyX-Request-Id: 501aa56b-b780-4167-bf77-b7865dbf4f61X-Runtime: 0.109314Content-Length: 262

Body

{ "completed_certificates": [ { "canvas_course_id": 14, "catalog_title": "Course 18", "canvas_course_name": "Course 18", "certificate_url": "https://www.domain-51.com/certificates/certificate-numero-1-5.pdf", "canvas_course_workflow_state": "available", "completed_at": null } ]}

Creating a course

Endpoint

POST https://www.my-catalog.edu/api/v1/courses

Parameters

Name Description Type
course[title] required Listing title String
course[description] required Full listing description String
course[path] required Path to the listing. Used in URLs String
course[teaser] required A shorter description of the listing String
course[enrollment_open] Indicates if the listing is current accepting new students Boolean
course[enrollment_open_from] If specified, enrollment is open only from this date-time Datetime
course[enrollment_open_to] If specified, enrollment is open only to this date-time Datetime
course[visibility] Indicates if the listing is visible in the web UI. Possible values: listed, unlisted, hidden String
course[enrollment_cap] A limit for the total number of enrollments Integer
course[enrollment_fee] Enrollment fee Decimal
course[allowed_payment_types] Allowed payment methods Array
course[days_to_complete] The number of days a student has to complete the requirements Integer
course[account_id] The id of the account to associate the listing to. Can be an id of any subcatalog of the catalog making the API request. Defaults to the catalog making the API request. Integer
course[list_order] Order in which the listing is shown in the catalog Integer
course[waitlist] Waitlist enabled (defaults to false) Boolean
course[waitlist_cap] Wait List Limit for the total number of wait listed enrollments Integer
course[listing_image] URL or file upload for the image to be shown with this listing. String
course[tag_names] List of tags applied to this listing Array
course[show_free_banner] Show the 'FREE' mark on the card of the listing if free Boolean
course[associated_account_ids] Other account ids where this product should be listed Array
course[canvas_course_id] required Id of the related canvas course Integer
course[credits] Credit value of the course Decimal
sku Listing SKU for a course String

Request

Route

POST https://www.my-catalog.edu/api/v1/courses

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "course": { "title": "Course 1", "description": "This is a very important course.", "path": "course-1", "canvas_course_id": 10010010, "teaser": "This is an example teaser", "enrollment_open": true, "visibility": "listed", "enrollment_cap": 150, "waitlist": true, "waitlist_cap": 25, "enrollment_fee": 49.99, "days_to_complete": 45, "list_order": 123, "credits": 4, "sku": "abc1234", "tag_names": [ "Tag", "Another Tag" ] }}

Response

Response Fields

Name Description Type
id Identifier for this listing. Integer
visibility Indicates if the listing is visible in the web UI. Possible values: listed, unlisted, hidden String
enrollment_open Open for enrollment Boolean
enrollment_open_from If specified, enrollment is open only from this date-time Datetime
enrollment_open_to If specified, enrollment is open only to this date-time Datetime
enrollment_cap A limit for the total number of enrollments Integer
waitlist Waitlist enabled Boolean
waitlist_cap Wait List Limit for the total number of wait listed enrollments Integer
title Title of the listing String
enrollment_fee Enrollment fee Decimal
currency The three digit currency code associated to the enrollment fee String
listing_path Path to the listing. Used in URLs String
listing_url The URL of the listing String
short_description A short description for this listing String
list_order Order in which the listing is listed in the catalog Integer
tag_names List of tags applied to this listing Array
detail_code Payment detail code for a course (only if enabled with :payment_detail_code_enabled feature flag) String
show_free_banner Show the 'FREE' mark on the card of the listing if free Boolean
associated_account_ids Other account ids where this product should be listed Array
start_date When the Canvas course starts if specified Datetime
end_date When the Canvas course ends if specified Datetime
canvas_section_id The Canvas course's section's id Integer
catalog[id] Id for the catalog that owns this listing Integer
catalog[name] Name for the catalog that owns this listing String
created_at The creation date for the listing. Datetime
updated_at The last time the listing was updated. Datetime
canvas_course[id] Corresponding Canvas id Integer
credits Credit value of the course Decimal
sku Listing SKU for a course String

Status

201

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originLocation: https://www.my-catalog.edu/api/v1/courses/9Content-Type: application/json; charset=utf-8X-CSRF-Token: WEZOPU/EsVJSvMUYKr19+EZXQpsPR7UEI5QJd9y/1najMeXLSwI/edVLH5kN4B5kGDi/DXyCL15A2jVT0IX6fQ==ETag: W/"1791e6d035602eddaaa1fe7a25315768"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=aWZXc0l2aEpiSEhzN2NlZERVbXhSVDVTZGpKTWQ0RGVtSC9qQTRBQVVaRnFjR2VBL2pSbWZkWklPZ0piWkpwS3IxRGY1RmxNRHpFQjNxdG5RcDA2eGJkOENyY2xZZUZ5YUowcERQUnF3SVBtMGtwSlU0bGxiTGd0NkxGVWs3V2t3WHZzQ1doV09XdVBtcHpha2lLdGtSUWpsN3VPendwcVZJNllsV1lUbEU4ZzNIek1BaGZMSzRITVM0MERWMlUxLS0rM2ZRTnNzMlF1emljS3JFNVpCcTdnPT0%3D--22d1ffa56929abb003092fd25ead2935f68cdd8e; path=/; HttpOnlyX-Request-Id: e2de0b3a-192e-4c52-8825-7e00b498d2a8X-Runtime: 0.126646Content-Length: 886

Body

{ "course": { "id": 9, "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": "2024/07/01 08:28:53 +0000", "credits": 4.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:53 +0000", "short_description": "This is an example teaser", "listing_path": "course-1", "listing_image": null, "currency": "USD", "catalog": { "id": 10, "name": "Domain Account 11" }, "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 } }}

Deleting a specific course

Endpoint

DELETE https://www.my-catalog.edu/api/v1/courses/:id

Request

Route

DELETE https://www.my-catalog.edu/api/v1/courses/7

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduContent-Type: application/x-www-form-urlencodedCookie: 

Response

Status

204

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originX-CSRF-Token: CWLvonQt3Zt84F5OWf1C360m2vM2mFhZ9NV6n1qj0lyeaxIQTHS1KDzS3GLvnquSX0GBd2Eh/bimIectX8up1w==Cache-Control: no-cacheSet-Cookie: _gallery_session=RHJRZlNMUVFpSmdQbWxQLzdhRFBYcUJCSFRlUldTZXgwbW44UE1DS2V3c2gyS25RNGlJTG45a1Nhb1pXMmgwT0pxRFZ0VHJYNXZEWkhVNWtmQ2VIMFpNZG9pSCtGdEhBbytHM0lxRWxjeUVEVEdIYTlONk1zbThqekM1S3IyZW13dWJOa3o2MTlHbEVPQXRCUUplZnoyUVY0dlNoS0NDZExpeDRVZW1KS1k4Yk5xQndIbUw5VFRIaVIwUTNNVUhlLS0yeEptaEUvdEp1UWx1eTVQcUNXbDNnPT0%3D--0d030dde9b51062091d934cab2033d109501f1cc; path=/; HttpOnlyX-Request-Id: 510a4e13-1be3-44cb-b145-ca9d6db0fdffX-Runtime: 0.132735

Getting a specific course

Endpoint

GET https://www.my-catalog.edu/api/v1/courses/:id

Request

Route

GET https://www.my-catalog.edu/api/v1/courses/8

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
id Identifier for this listing. Integer
visibility Indicates if the listing is visible in the web UI. Possible values: listed, unlisted, hidden String
enrollment_open Open for enrollment Boolean
enrollment_open_from If specified, enrollment is open only from this date-time Datetime
enrollment_open_to If specified, enrollment is open only to this date-time Datetime
enrollment_cap A limit for the total number of enrollments Integer
waitlist Waitlist enabled Boolean
waitlist_cap Wait List Limit for the total number of wait listed enrollments Integer
title Title of the listing String
enrollment_fee Enrollment fee Decimal
currency The three digit currency code associated to the enrollment fee String
listing_path Path to the listing. Used in URLs String
listing_url The URL of the listing String
short_description A short description for this listing String
list_order Order in which the listing is listed in the catalog Integer
tag_names List of tags applied to this listing Array
detail_code Payment detail code for a course (only if enabled with :payment_detail_code_enabled feature flag) String
show_free_banner Show the 'FREE' mark on the card of the listing if free Boolean
associated_account_ids Other account ids where this product should be listed Array
start_date When the Canvas course starts if specified Datetime
end_date When the Canvas course ends if specified Datetime
canvas_section_id The Canvas course's section's id Integer
catalog[id] Id for the catalog that owns this listing Integer
catalog[name] Name for the catalog that owns this listing String
created_at The creation date for the listing. Datetime
updated_at The last time the listing was updated. Datetime
canvas_course[id] Corresponding Canvas id Integer
credits Credit value of the course Decimal
sku Listing SKU for a course String

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: R+4QSucNYuuqmNQb+2CIENe19CdHaFBfW5lc2g8K3ILzXg+9pJXRWc78/c1LidsrlX1jBdcpWZkUITms1qS3LQ==ETag: W/"6001ae10705c98e6d94411283234faad"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=WEYzSGU4eFUycDBKbE5nQk0vY0hHekp0SU1zUVN0cTgyVDgreTR5Q2pJdU5xT3VEOVM5NUdXYURLSnZEZ29kelZSQm1obkQ3cy95dkpRaFRNT21LWE16UTV3aENjWE4yVTlCanpjYmdSS0d6RlZvQ2tadnFrRmtLWWdxVUhGRlo3MGErb2ZWRGlXRXJlWE9mQlAxNWhySU9sWHljczlZSjhadGlyWkxYQzFld3Q0RHI2UjE0bHJiNmxNL1dYbjBvLS1ydUYvWms2RUtpS3NSWDYrVXdmRm1nPT0%3D--fe427c7dee2db1bd29099fa9c525892c5d706f2a; path=/; HttpOnlyX-Request-Id: 212eee88-5b9f-4ced-87d0-1ea2163f03faX-Runtime: 0.092242Content-Length: 899

Body

{ "course": { "id": 8, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_8", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:53 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:53 +0000", "short_description": "teaser_8", "listing_path": "course-path-8", "listing_image": null, "currency": "USD", "catalog": { "id": 9, "name": "Domain Account 10" }, "type": "Course", "title": "Course 8", "list_order": null, "waitlist": false, "waitlist_cap": null, "sku": "sku_4", "show_free_banner": true, "image_alt_text": null, "allowed_payment_types": [ "standard" ], "tag_names": [ "Another Tag", "Tag" ], "listing_url": "http://www.my-catalog.edu/courses/course-path-8", "start_date": "2024/06/24 08:28:53 +0000", "end_date": "2024/07/08 08:28:53 +0000", "canvas_section_id": null, "associated_account_ids": [ ], "canvas_course": { "id": 4 } }}

Listing courses

Endpoint

GET https://www.my-catalog.edu/api/v1/courses

Request

Route

GET https://www.my-catalog.edu/api/v1/courses

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 1Content-Type: application/json; charset=utf-8X-CSRF-Token: tlb2WGO4sRMt0k1nT3v4DoGS0oZk43FKNnH7Gj/Ln530OYuCiN0HFAkrYlZ4buq4LL4JmFORBpXsoWzyt9CGew==ETag: W/"95a95c3969e98df2229d51dad0e0bded"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=bVJGUXZDcDBlLzlHc0pESEtSR05jSHg5Q3MzZFN4VTE4bXY3d3ROU1M2eVE4bkRVdnVXdEtGaHpBT3p2WFNVMmxhY1ZqSWsxYng2akkyV0lIOXdCMkh3ODdFbVRDUGhrWXc0Szh2aW1JaG4xUFNPY0xTejdVVVgrbjl6MVNwUkRwanN1SC9tTjBWQ2czM3JuL3dpTUhHazZaL0c1a2tzN3VzcnZIeXg4UXZxR3pWcitlSjBWNXpDZnoxOEtveTU3LS1Va0I5b2k3UzU4c25TVThjRjlrM3dRPT0%3D--5eed71b1f2635cd28b0e1bca719fb1b2c5f15527; path=/; HttpOnlyX-Request-Id: 3058ef87-0f77-441e-87f4-8935f35caae9X-Runtime: 0.114027Content-Length: 901

Body

{ "courses": [ { "id": 6, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_6", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:52 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:52 +0000", "short_description": "teaser_6", "listing_path": "course-path-6", "listing_image": null, "currency": "USD", "catalog": { "id": 6, "name": "Domain Account 6" }, "type": "Course", "title": "Course 6", "list_order": null, "waitlist": false, "waitlist_cap": null, "sku": "sku_2", "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-6", "start_date": "2024/06/24 08:28:52 +0000", "end_date": "2024/07/08 08:28:52 +0000", "canvas_section_id": null, "associated_account_ids": [ ], "canvas_course": { "id": 2 } } ]}

Updating Course SKUs

Endpoint

PUT https://www.my-catalog.edu/api/v1/courses/update_skus

Parameters

Name Description Type
attachment required CSV containing a Catalog Course ID and Catalog Course SKU header file

Request

Route

PUT https://www.my-catalog.edu/api/v1/courses/update_skus

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: multipart/form-data; boundary=----------XnJLe9ZIbbGUYtzPQJ16u1Host: www.my-catalog.eduCookie: 

Body

------------XnJLe9ZIbbGUYtzPQJ16u1content-disposition: form-data; name="attachment"; filename="missing_header1.csv"content-type: text/plaincontent-length: 69[uploaded data]------------XnJLe9ZIbbGUYtzPQJ16u1--

Response

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: BFsc7xRqQ8O6ZRu3xSWG8UgZRHvtRXe+v7aC5+mIEyDTuM6BiSvEV3CMQct3QLqitrZ+QlmUSskCxRLXDKHlcg==ETag: W/"882ebf5d2c1a311346c4e8f0fd9ce179"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=NytyVDcweUJMTG5xTkJYc2VmbzMzMml1dHlOWE9vb3l0M3ZPdVJrR1hVbnRYaDFNVkVPd2FCeE5PVjdQN2xRb2lRWWRSWFpWNkFrcGFwN0ZGdjkxdGxJTlZCUE81SDc5eTNXdG1sZmNwRXlPdWdGei9mK2ZWN1B3U3R5Mk9WdG44aysvd0JLYWx1NTk5ZUtFeGszMXRTemRyVmFVWlZqbUcwazdNWFJQS3BGdisrK0lpdnh2T1ZvRWNVc1lsSW1mLS1XckliMEZYSjBoZHRDL1I2KzJTdTFRPT0%3D--782d47658f1cfdb4cead7b199a67da522df75a82; path=/; HttpOnlyX-Request-Id: 0f8fd6c2-2689-4e1d-99c3-58b7f8ebe1acX-Runtime: 0.145485Content-Length: 205

Body

{ "progress": { "id": 1, "account_id": 7, "canvas_user_id": null, "completion_percent": null, "workflow_state": "queued", "payload": { }, "created_at": "2024/07/01 08:28:53 +0000", "updated_at": "2024/07/01 08:28:53 +0000" }}

Updating a course

Endpoint

PUT https://www.my-catalog.edu/api/v1/courses/:id

Parameters

Name Description Type
course[title] Listing title String
course[description] Full listing description String
course[path] Path to the listing. Used in URLs String
course[teaser] A shorter description of the listing String
course[enrollment_open] Indicates if the listing is current accepting new students Boolean
course[enrollment_open_from] If specified, enrollment is open only from this date-time Datetime
course[enrollment_open_to] If specified, enrollment is open only to this date-time Datetime
course[visibility] Indicates if the listing is visible in the web UI. Possible values: listed, unlisted, hidden String
course[enrollment_cap] A limit for the total number of enrollments Integer
course[enrollment_fee] Enrollment fee Decimal
course[allowed_payment_types] Allowed payment methods Array
course[days_to_complete] The number of days a student has to complete the requirements Integer
course[account_id] The id of the account to associate the listing to. Can be an id of any subcatalog of the catalog making the API request. Defaults to the catalog making the API request. Integer
course[list_order] Order in which the listing is shown in the catalog Integer
course[waitlist] Waitlist enabled (defaults to false) Boolean
course[waitlist_cap] Wait List Limit for the total number of wait listed enrollments Integer
course[listing_image] URL or file upload for the image to be shown with this listing. String
course[tag_names] List of tags applied to this listing Array
course[show_free_banner] Show the 'FREE' mark on the card of the listing if free Boolean
course[associated_account_ids] Other account ids where this product should be listed Array
course[canvas_course_id] Id of the related canvas course Integer
course[credits] Credit value of the course Decimal
sku Listing SKU for a course String

Request

Route

PUT https://www.my-catalog.edu/api/v1/courses/5

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "course": { "title": "Course 1", "description": "This is a very important course.", "path": "course-1", "canvas_course_id": 10010010, "teaser": "This is an example teaser", "enrollment_open": true, "visibility": "listed", "enrollment_cap": 150, "waitlist": true, "waitlist_cap": 25, "enrollment_fee": 49.99, "days_to_complete": 45, "list_order": 123, "credits": 4, "sku": "abc1234", "tag_names": [ "Tag", "Another Tag" ] }}

Response

Status

204

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originX-CSRF-Token: qpMulfr4qCtDsS+JOTQG+JqApOjgshiA58ciGsHUGWfPWHiIg5pybUHyzpP9bqSIQJr0Py22wyhZuSks+AhTog==Cache-Control: no-cacheSet-Cookie: _gallery_session=T2tzWjV6VDgxS2wybUJJYW9wNlhRdjZNVnpWQzRabE1nVyt0RUQ2WDhnWkhNeWVFOHRuTWJaOWZCZ0dzKzcwMDFIN0JCcEJyeDFrVHBkK1RPM3puR1BKN1ZvdEo2ZExqOW9NRnBoYWZadXd6SDVEZWg1S1hJY2VNTmpxc09ValFnMXJZR3Fjd1BUTmREOEMrOTI3cHdtUzB1T3RTN2p1WWNjZmNhOXFNZ2tRcVpicTgveENyNzE5MUJJWWdaZ1NxLS1Ic3VrOUdXYmgrVnNOY1FhVDZJOEFnPT0%3D--f663366c560bef14d8dfd102fb17535524613eef; path=/; HttpOnlyX-Request-Id: d2b950e6-7485-429b-8adb-2e23735e604dX-Runtime: 0.253443

Getting a specific course

Endpoint

GET https://www.my-catalog.edu/api/v1/email_domain_sets/:id

Request

Route

GET https://www.my-catalog.edu/api/v1/email_domain_sets/2

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
email_domain_set[id] Email Domain Set ID Integer
email_domain_set[name] Certificate name String
email_domain_set[email_domains] An an array of email domains Array
email_domain_set[account_id] The account ID of the email domain set Integer
email_domain_set[created_at] The creation date of the email domain set Datetime
email_domain_set[updated_at] The last time the email domain set was updated Datetime

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: b+uAzVnk3hdMi0oTNSfIByg1amtPHVXO1tpZOBsuU+NymuSJFfm//fWcPKLhAIqxAqQ5MjB/OYuqTI4RtD1eaQ==ETag: W/"0a24c708cfccf113b21005327c5fb3b3"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=eWwrWm4vT2FWL0xIdnlockNESzJoRXFUblVldGlWUFBUZGRaeWpWVXdjTS9SVG5vUXpaWUhldG1HTkxoRkZ2RXE2cnlWSFJJSldQcjA4QzJtYkdGcm5pWkFVcW9Qb0JqRXIrZWRINktsdjFxUTJNWmF5QjQ4Z3A3RW8yK1ZGNnhsUDRBV1JOTTc5L0o4UTFVMXFqc0VFUU1Ca2tTd0dMeFZnVG1VWGNmWHRCK1hrY2U3c1lleEpWS1FIN2d5aVRXLS1tSGIyZi9ZWE5DWnkzNktjUGFPUG1BPT0%3D--128ca2256b08af09efb8fd56d70f5574c60ba031; path=/; HttpOnlyX-Request-Id: 523f92fd-20b5-4bca-8895-d100ee491e7cX-Runtime: 0.092938Content-Length: 212

Body

{ "id": 2, "name": "Example", "account_id": 12, "canvas_root_account_uuid": "13WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx", "created_at": "2024/07/01 08:28:54 +0000", "updated_at": "2024/07/01 08:28:54 +0000", "deleted_at": null}

Listing Email Domain Sets

Endpoint

GET https://www.my-catalog.edu/api/v1/email_domain_sets

Parameters

Name Description Type
email_domain_set[search] A value to filter the Email Domain Sets by name String
email_domain_set[exact] A boolean to set whether the search should only include results that match exactly String

Request

Route

GET https://www.my-catalog.edu/api/v1/email_domain_sets

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: HF9xHifCn1FICcpd4rww532jSmz8ug8SFxJ0kTp7r1wevsLKpuzOIjRElowSOh2o76/ztqXPYwxhysgTNb1kdA==ETag: W/"02211f243e2c55acc060f660237cea23"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=NVgrbUhsdWc0ak0vZ0pKQU1oZW1TRS9lSHN2ZkN4MjY3MHVYQ2NVR0VzS0pDWEFFQmwyN2cwdnRMT2REQ3YzZHVFWEtGNDdwT3drSGlVZnE4TENkMkF1NFBoZVBhRy9FUzVHMTFncy9GQzMwQWNLZGFhOHk2YkVrd0w5aVlmaUxDV3FXNXFCbVc2ODhMbDNCSGhMWnFMUyswYmVyNEVMaVZhWEVTRkwxV3gyT2RZVGZhNWFITDVWSVdxUlhyU0hCLS1YNXdQZTl5NFpITVZMQWpqaFF5aUt3PT0%3D--33b5ad0f81b55a556d27b615ac25a29e0376dde7; path=/; HttpOnlyX-Request-Id: 70bffc66-8d17-4d0c-a091-6fdf2db5e9dfX-Runtime: 0.110700Content-Length: 335

Body

{ "email_domain_sets": [ { "id": 1, "name": "Example", "account_id": 11, "email_domains": [ { "id": 1, "domain": "example.com", "email_domain_set_id": 1, "canvas_root_account_uuid": "12WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx", "created_at": "2024/07/01 08:28:53 +0000", "updated_at": "2024/07/01 08:28:53 +0000", "deleted_at": null } ] } ], "meta": { "total_pages": 0 }}

Updating an Email Domain Set

Endpoint

PUT https://www.my-catalog.edu/api/v1/email_domain_sets/:id

Parameters

Name Description Type
email_domain_set[name] The name of the Email Domain Set String
email_domain_set[email_domains_attributes] An array of email domains Array

Request

Route

PUT https://www.my-catalog.edu/api/v1/email_domain_sets/3

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "email_domain_set": { "name": "API Name", "email_domains_attributes": [ { "domain": "example1.com" }, { "domain": "example2.org" } ] }}

Response

Response Fields

Name Description Type
email_domain_set[id] Email Domain Set ID Integer
email_domain_set[name] Certificate name String
email_domain_set[email_domains] An an array of email domains Array
email_domain_set[account_id] The account ID of the email domain set Integer
email_domain_set[created_at] The creation date of the email domain set Datetime
email_domain_set[updated_at] The last time the email domain set was updated Datetime

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: fZ/SUr+efeGxMW+HO7vZSBVYkEHtyXbxFwQG6EjVJ3GVGq72vqfmXXUNMCC5lezmgA+I5Mx0Wq6s7yO6jv4J4g==ETag: W/"1765167f75658ef132a4bbef3866223c"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=N3J5OU80YUxTY3RGQ3licFplOVlPbnluSjJTVVJVRDRGVXI2cmlLYy94ajFZcVRFWmMyc0pXczJtcG5pU3BhQWJ3SC9qemxVNlNEZzU0TUxjbExFdlBXQkdoZGwvT1VobXUyZXQzZG9Cd1ZEd0h6Y3FSTTIrQm02bjJVZm5MUjI3THdVWUNGeTRHbVBOK1pjbnZXRFhVYlZDSGw3SEpZTkxRUFh1dVpab0NELzFWaWRZQkJZOTRQeFdGbW9UVXN4LS1hU3B2T0lkNS9DS3NKQW1Laysrb1p3PT0%3D--d61cac5b0f5c9cf70152880fdca3e45092224ce9; path=/; HttpOnlyX-Request-Id: 70fc42ae-1f28-42c7-b5ef-411acd7ddc8cX-Runtime: 0.094367Content-Length: 764

Body

{ "email_domain_set": { "id": 3, "name": "API Name", "account_id": 13, "email_domains": [ { "id": 4, "domain": "example1.com", "email_domain_set_id": 3, "canvas_root_account_uuid": "14WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx", "created_at": "2024/07/01 08:28:54 +0000", "updated_at": "2024/07/01 08:28:54 +0000", "deleted_at": null }, { "id": 5, "domain": "example2.org", "email_domain_set_id": 3, "canvas_root_account_uuid": "14WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx", "created_at": "2024/07/01 08:28:54 +0000", "updated_at": "2024/07/01 08:28:54 +0000", "deleted_at": null }, { "id": 3, "domain": "example.com", "email_domain_set_id": 3, "canvas_root_account_uuid": "14WLEJdzBmd8nsrZdf5jIATelBOYIMHeY6uuIAEmx", "created_at": "2024/07/01 08:28:54 +0000", "updated_at": "2024/07/01 08:28:54 +0000", "deleted_at": null } ] }}

Creating an enrollment

Endpoint

POST https://www.my-catalog.edu/api/v1/enrollments

Parameters

Name Description Type
create_order Create an order record for this enrollment, defaults to true Boolean
send_email Send an enrollment email to the user, defaults to true Boolean
enrollment[listing_id] required Id of the Listing Integer
enrollment[canvas_user_id] required Id of the Canvas user Integer

Request

Route

POST https://www.my-catalog.edu/api/v1/enrollments

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "enrollment": { "listing_id": 11, "canvas_user_id": 1 }}

Response

Response Fields

Name Description Type
id Identifier for this enrollment Integer
user[id] Corresponding Canvas user id for this enrollment. Integer
listing[id] Identifier for the listing Integer
listing[title] The name of the listing String
listing[type] The type of listing (Course or Program) String
listing[canvas_course_id] Canvas course ID (nil for Program enrollments) String
enrolled_at The time of enrollment (UTC) Datetime
status Enrollment status (active, dropped or concluded) String

Status

201

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: ADNhl09RttEUJ/tHshhfKOD7OWlHJNtWhUWddxwhor7rGjdRFRgFAznmKFloRlokiOjDvsPgrN+nu55uV6+ytA==ETag: W/"537e439b1ffc07dc258159a606a49e6f"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=L2c2QXFTcGFPZWRMYkd2NUcwcW5oSUxXdEhJZDZxa2pCR28yV0V0MmVXOFJvNzg5L1dzVWEwNXhDSGVTZU1peEJMV0doeC9TeGFlc0pqa3YvNkNuKytVWEpZaWQ3a2FGQVpHeS9Cdi84Y1B4MDIyTWFOQ21JbVNqUVdmL2NQMXpoS2dtcjBIR0IwWXBpSGtma0dobDdFQ1ptVWhIQ3k3UlkrSTVtZlo1NE11Sng2QWoxZU9IZDlaaC9uQjFLc3RhLS1Ka2ZwUjZHYUlWK3VEZU5uVGszT2NnPT0%3D--6966899609476ffe21f834bb16321a645cb27a60; path=/; HttpOnlyX-Request-Id: f8c5d470-50f8-4150-8e8f-f6ea95ccd198X-Runtime: 0.081574Content-Length: 176

Body

{ "enrollment": { "id": 4, "user": { "id": 1 }, "listing": { "id": 11, "title": "Course 10", "type": "Course", "canvas_course_id": 6 }, "enrolled_at": "2024/07/01 08:28:55 +0000", "status": "active" }}

Deleting an enrollment

An additional request must be made to Canvas to delete the enrollment and remove it from the Catalog Student Dashboard

Endpoint

DELETE https://www.my-catalog.edu/api/v1/enrollments/:id

Request

Route

DELETE https://www.my-catalog.edu/api/v1/enrollments/3

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduContent-Type: application/x-www-form-urlencodedCookie: 

Response

Response Fields

Name Description Type
id Identifier for this enrollment Integer
user[id] Corresponding Canvas user id for this enrollment. Integer
listing[id] Identifier for the listing Integer
listing[title] The name of the listing String
listing[type] The type of listing (Course or Program) String
listing[canvas_course_id] Canvas course ID (nil for Program enrollments) String
enrolled_at The time of enrollment (UTC) Datetime
status Enrollment status (active, dropped or concluded) String

Status

204

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originX-CSRF-Token: lAsc0X183f8tHXFAF3B+wDih7NGa/XBWVYnTdHms8vUActyqz4tQea8hAQuv4m2A7Jx6qB5/6b30BcpwVoEYlg==Cache-Control: no-cacheSet-Cookie: _gallery_session=UXB4eHZxbmFLNTdrNlEwYVBsRjk1NVdPbEVPQ1E0emxka3NSMmtqUDB5S0NUTmU2eDRvTFFRVkw0ZURKQzFzejhBSWx4aHUrdXVqSnVmb3VmMk8xbk9vTUhkUUYrUXNjWFo0TXdjT0lGUWJnZ2VjdW9TSnVQTW1NMTIrZmthcXh0SzhHYTIyaVBscGNSa20yc0t3c1BWWFIzTkkzalhITWRXN1Nud0s1NXExWjlhaU1Dc3VYMnVGR0Q1NmRqZnZuLS1Ob3d1SmIrUVhlcEwxTDN2Si9XcUJBPT0%3D--4c76076e5b6efe9732a8b76b72997470562d1c73; path=/; HttpOnlyX-Request-Id: 4ff3f59d-a1e1-4ac6-b932-c47707b395adX-Runtime: 0.088329

Getting a specific bulk enrollment

Endpoint

GET https://www.my-catalog.edu/api/v1/order_items/history/bulk_enrollments/:id

Parameters

Name Description
id Order id (Integer)

Getting a specific enrollment

Endpoint

GET https://www.my-catalog.edu/api/v1/enrollments/:id

Request

Route

GET https://www.my-catalog.edu/api/v1/enrollments/5

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
id Identifier for this enrollment Integer
user[id] Corresponding Canvas user id for this enrollment. Integer
listing[id] Identifier for the listing Integer
listing[title] The name of the listing String
listing[type] The type of listing (Course or Program) String
listing[canvas_course_id] Canvas course ID (nil for Program enrollments) String
enrolled_at The time of enrollment (UTC) Datetime
status Enrollment status (active, dropped or concluded) String

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: k+rcwOi0+8C8x7JysHln7emR2AXrirpiS4+kb5uViLu1nm4iVHhyDBQJspI4iEoWj13bJ9teSFmTT3Oqj7RhZg==ETag: W/"4b13d9ac8b03d7cb113d09a5baee5e9f"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=RUQwSlJxenNsVWF4TGw4S0pweEw2VE1pOE9JcjlBOFFKdUI0SkZ3UkNRUTExb3loUGNSSXpSR1U0YXlpVXJ0QXpzZzYxaFVSaGhVSlFNR1o5ak5xcTcxa3E0UVRiNG9DV015RFEyUTh6ajlhM1o0b2pGSkR4MDBUWmIyZmY2VU9iTFVsbnJWRkxSbEVqek0rRlJRWHNzeTlJYTh6bXJmUTBqZ1lEWWpDeG9zRnNhOWdCUEpBanN3dURDbi9BNTJYLS1EZTdCY3c5eEU4cEZ1S2lCYjVmMjNRPT0%3D--0d343ee8a9995339a8e250d65e2fb4af599e5347; path=/; HttpOnlyX-Request-Id: 8880fd35-71d3-4bc1-9df9-94abd93ea68aX-Runtime: 0.075035Content-Length: 176

Body

{ "enrollment": { "id": 5, "user": { "id": 1 }, "listing": { "id": 12, "title": "Course 11", "type": "Course", "canvas_course_id": 7 }, "enrolled_at": "2024/07/01 08:28:55 +0000", "status": "active" }}

Listing bulk enrollments

Endpoint

GET https://www.my-catalog.edu/api/v1/order_items/history/bulk_enrollments

Parameters

Name Description
from Only include bulk enrollments from this date (optional, DateTime)
to Only include bulk enrollments to this date (optional, DateTime)
canvas_user_ids Only include bulk enrollments for the specified canvas user ids (optional, Integer[])

Listing enrollments

Endpoint

GET https://www.my-catalog.edu/api/v1/enrollments

Parameters

Name Description
listing_id Only include enrollments for the specified listing (optional, Integer)

Request

Route

GET https://www.my-catalog.edu/api/v1/enrollments

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 1Content-Type: application/json; charset=utf-8X-CSRF-Token: QFxg8/7RgjR50+vu6nb64bXTo6fZFLyeH/uZkB7Yk1fTQxXMzS6q0Ys4k13BJkbRrw6Ur6G2mft35Gd4l3IvFw==ETag: W/"20a6fbb79801c093d3b72d54fb231254"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=amI5NjVHR2cvUm5BaUVwRHhxdDkxbzlGdk5zS3BPN2E0YTZvMkt1aTVicUdOdXd5ZmdEUXAzWUZDRTRNS0JudndXUld0cEhtN0dTZlo0TFpuYVJsb3NXU1lGdHRrK2N4VFdvU05sbFBXSHFtei9tbjkrUzFtNDkrOUhYOW94OEFVTnVvK2sxaXIzMFR4QWlkcHlHUlNWV2phMGZmeFFzMWRMU2tSYXFHem43cnZGb25ab3BCZUVlenZndXdCT0d1LS1DbktncE92NS9tS2FWaS9EVHdqM05BPT0%3D--9e1da5eb5f71321eaf38813c1e1f9d86cfe8140c; path=/; HttpOnlyX-Request-Id: f36e6006-bc86-4e57-bfbd-971795f6cae4X-Runtime: 0.070499Content-Length: 179

Body

{ "enrollments": [ { "id": 6, "user": { "id": 2 }, "listing": { "id": 13, "title": "Course 12", "type": "Course", "canvas_course_id": 8 }, "enrolled_at": "2024/07/01 08:28:55 +0000", "status": "active" } ]}

Getting a specific order

Endpoint

GET https://www.my-catalog.edu/api/v1/orders/:id

Request

Route

GET https://www.my-catalog.edu/api/v1/orders/2

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
id Identifier for this order. Integer
full_id Full ID for this order, including prefix. String
catalog_id DEPRECATED: Use catalog['id'] instead. Integer
catalog[id] Identifier for the catalog the order is linked to Integer
catalog[name] Name of the catalog this order is linked to String
user[id] Canvas ID of the user who placed the order Integer
user[name] Name of the user who placed the order String
user[email] E-mail address of the user who placed the order String
listings Array of purchased listings (courses and programs). Fields below: Array
listing[id] Identifier for a listing purchased with this order Integer
listing[catalog_id] Catalog ID associated to this listing Integer
listing[canvas_course_id] Canvas course ID associated to this listing Integer|null
listing[title] The name of the listing String
listing[amount] Listing price at the time of purchase Decimal
listing[discounted_amount] Discounted price by promotions Decimal
promotions Array of promotions used. Fields below: Array
promotion[id] Identifier for a promotion used with this order Integer
promotion[listing_id] Identifier for the listing this promotion is used for Integer
promotion[code] Promo code used for this order String
promotion[amount] Discount amount Decimal
payments Array of payments. Fields below: Array
payment[reference_id] Identifier from the payment redirector String
payment[status] Status of the payment. Can be success, error, or pending. String
payment[amount] Amount of the payment Decimal
total Total cost charged to the user Decimal
currency Currency used for the transaction String
purchased_at Time the transaction was successfully completed. This field is nil for unsuccessful or unpaid orders. Datetime
created_at Time the order was initiated. Datetime

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: D1fSF87pqBgyWqLueqsvH5H8O30d10hWfJIgR8rFr67ogp4fDm2ssmopHeOC/hZ5U/oxdFyqNxhq/EDVFvxGzw==ETag: W/"0cdf93e5403e6dd9a81bc46eba1d8a6b"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=Q0lMT0hZZ2Fjb21PUjI3OFBrUUQ5emJ0YUpzaStRV0JUSXBsRDlidGJIdzUzQlVlcElYN2dIUFprUnJaT045L0FmRE5jUnVLS3dWaWp6SkVBNHJyemtGVEpLcU95Sjg5VXdxNktxL3djMmJza3g3SWJEZ2oyeGpJMGdaSTlMbVB3T2t4UDJxdWVZN0l4VGxwWXk3bTRHTVo5UzIwTG5Da2hkWWw2Z0ZzM1RTRCtNcjcwcmtNRnBzVnFBQ3hGQkx4LS1GeElJTjlSTGFMN2xSaWtYZDJhcWd3PT0%3D--c270e0346dc6df06e9c2ce0dea4a72ed97e48cf0; path=/; HttpOnlyX-Request-Id: ef1bd642-5c1c-49f3-99f6-2e9a35b69cb2X-Runtime: 0.100652Content-Length: 548

Body

{ "order": { "id": 2, "full_id": "2", "catalog_id": 40, "catalog": { "id": 40, "name": "Domain Account 45" }, "user": { "id": 1, "name": "Saul Goodman", "email": "bettercall@saul.com" }, "listings": [ { "id": 17, "canvas_course_id": 12, "title": "Course 16", "amount": "100.0", "discounted_amount": "90.0", "catalog_id": 40 } ], "promotions": [ { "id": 1, "listing_id": 17, "code": "PROMO1", "amount": "-10.0" } ], "payments": [ { "reference_id": "123", "status": "success", "amount": "90.0" } ], "total": "90.0", "currency": "USD", "purchased_at": "2024/07/01 08:28:57 +0000", "created_at": "2024/07/01 08:28:57 +0000" }}

Listing orders

Endpoint

GET https://www.my-catalog.edu/api/v1/orders

Parameters

Name Description
from 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.
to Latest date/time to return (optional, String). See 'from' above for format.
canvas_user_id Return only orders for the specified Canvas user ID (optional, String|Array)
completed When set, only return orders that were completed successfully (optional)

Request

Route

GET https://www.my-catalog.edu/api/v1/orders

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 1Content-Type: application/json; charset=utf-8X-CSRF-Token: Nyp5KGFGGQrVEqZurKUPO2R3GObh6U5vfOIrRno4paa7A+N02Sle3TFlc4FR/MtaQtSWsiRwEja3OvivfCzEog==ETag: W/"720efb70ec0bdac45820defaadb13fcf"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=WVdKMTNWMFBnZmljWmFiKy9oMTZ3SG9yNXRMdzZqWTlQV1lOVmh1aFVtM1UwZUtkamo3bWVxUTQzSHl3TytCOUR5RTBpRG1HTXYyUmdwVGVyT29qbU8vYzJ4QVp0SFJaMGUxQ3VIcWpWNTZES3hwVW1JYWZLa2FhbmpxTUdoTDlHWmVXRFV2eUlaV1lhYlN6WVVWZmlDZXo5bCtSZHpDR0g3a010emxxUFR4WE5JbjZCY0hqeHV1c002S01HQ2t0LS1QSXlEcmFWcm1ReE1IbitOTEFEazBBPT0%3D--7c6a8b48f32785542cc0197bdb60cacbb9a215f7; path=/; HttpOnlyX-Request-Id: 4945f495-4d29-4896-aed1-8ccc3302a0bfX-Runtime: 0.088058Content-Length: 551

Body

{ "orders": [ { "id": 3, "full_id": "3", "catalog_id": 41, "catalog": { "id": 41, "name": "Domain Account 46" }, "user": { "id": 1, "name": "Saul Goodman", "email": "bettercall@saul.com" }, "listings": [ { "id": 18, "canvas_course_id": 13, "title": "Course 17", "amount": "100.0", "discounted_amount": "90.0", "catalog_id": 41 } ], "promotions": [ { "id": 2, "listing_id": 18, "code": "PROMO2", "amount": "-10.0" } ], "payments": [ { "reference_id": "123", "status": "success", "amount": "90.0" } ], "total": "90.0", "currency": "USD", "purchased_at": "2024/07/01 08:28:57 +0000", "created_at": "2024/07/01 08:28:57 +0000" } ]}

Creating a program

Endpoint

POST https://www.my-catalog.edu/api/v1/programs

Parameters

Name Description Type
program[title] required Listing title String
program[description] required Full listing description String
program[path] required Path to the listing. Used in URLs String
program[teaser] required A shorter description of the listing String
program[enrollment_open] Indicates if the listing is current accepting new students Boolean
program[enrollment_open_from] If specified, enrollment is open only from this date-time Datetime
program[enrollment_open_to] If specified, enrollment is open only to this date-time Datetime
program[visibility] Indicates if the listing is visible in the web UI. Possible values: listed, unlisted, hidden String
program[enrollment_cap] A limit for the total number of enrollments Integer
program[enrollment_fee] Enrollment fee Decimal
program[allowed_payment_types] Allowed payment methods Array
program[days_to_complete] The number of days a student has to complete the requirements Integer
program[account_id] The id of the account to associate the listing to. Can be an id of any subcatalog of the catalog making the API request. Defaults to the catalog making the API request. Integer
program[list_order] Order in which the listing is shown in the catalog Integer
program[waitlist] Waitlist enabled (defaults to false) Boolean
program[waitlist_cap] Wait List Limit for the total number of wait listed enrollments Integer
program[listing_image] URL or file upload for the image to be shown with this listing. String
program[tag_names] List of tags applied to this listing Array
program[show_free_banner] Show the 'FREE' mark on the card of the listing if free Boolean
program[associated_account_ids] Other account ids where this product should be listed Array
program[requirement_ids] Ordered array of listing IDs that represent requirements for completing the program Array
program[sequential] Indicates if students are required to complete requirements in order Boolean

Request

Route

POST https://www.my-catalog.edu/api/v1/programs

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "program": { "title": "Program 1", "description": "This is a very awesome program.", "path": "program-1", "teaser": "This is an example teaser", "enrollment_open": true, "visibility": "listed", "enrollment_cap": 150, "waitlist": true, "waitlist_cap": 12, "enrollment_fee": 49.99, "days_to_complete": 45, "list_order": 123, "requirement_ids": [ ], "sequential": true, "tag_names": [ "Tag", "Another Tag" ] }}

Response

Response Fields

Name Description Type
id Identifier for this listing. Integer
visibility Indicates if the listing is visible in the web UI. Possible values: listed, unlisted, hidden String
enrollment_open Open for enrollment Boolean
enrollment_open_from If specified, enrollment is open only from this date-time Datetime
enrollment_open_to If specified, enrollment is open only to this date-time Datetime
enrollment_cap A limit for the total number of enrollments Integer
waitlist Waitlist enabled Boolean
waitlist_cap Wait List Limit for the total number of wait listed enrollments Integer
title Title of the listing String
enrollment_fee Enrollment fee Decimal
currency The three digit currency code associated to the enrollment fee String
listing_path Path to the listing. Used in URLs String
listing_url The URL of the listing String
short_description A short description for this listing String
list_order Order in which the listing is listed in the catalog Integer
tag_names List of tags applied to this listing Array
detail_code Payment detail code for a course (only if enabled with :payment_detail_code_enabled feature flag) String
show_free_banner Show the 'FREE' mark on the card of the listing if free Boolean
associated_account_ids Other account ids where this product should be listed Array
start_date When the Canvas course starts if specified Datetime
end_date When the Canvas course ends if specified Datetime
canvas_section_id The Canvas course's section's id Integer
catalog[id] Id for the catalog that owns this listing Integer
catalog[name] Name for the catalog that owns this listing String
created_at The creation date for the listing. Datetime
updated_at The last time the listing was updated. Datetime
sequential Indicates if students are required to complete requirements in order Boolean
requirements A nested array of the programs requirements. This includes courses and subprograms which can be distinguished by the type key. Array
credits Cumulative credit value of the program's requirements Decimal

Status

201

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originLocation: https://www.my-catalog.edu/api/v1/programs/27Content-Type: application/json; charset=utf-8X-CSRF-Token: 6Mff4NF1441W5eCIa2w/TumCBewElXqk2ZqeC0IepRlE9B0D3SEAESOKNJFSOCrGTmqotB18fnvJh8xvb84Vhw==ETag: W/"9e68e0b1873fa74a44df070879fdf970"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=OVcyOVhMZVE3dTY3bFR1cnEyOTd2WWgxMUZhekpkV0dpdTVYRWNmM3lZdzUvaFVtSG40RHJJZEFOZUNKL0tEb2phbUFpT1lpWklrMW1xWVpFUy9iN3ZwNW9sNTB5S05LaGVUV04yTGd6TEI5SktiQ3c3dnNZZm1iUVZjQW1FaUhEUkpVT1lwOE9wa1BvbmlvOFREMnI1SGNOMytiYURpQTAvZDZQZ0M3aThMNUFFeXMzZWJNNjJ6QjhLbmlJN3o4LS1qL1NGM2MrWXgzb21vYko2aWtRWXJ3PT0%3D--78f7439b68cd5f834985263b36fbc2a9e2ac7ffa; path=/; HttpOnlyX-Request-Id: efd87902-e759-438f-aadb-801cec20cb45X-Runtime: 0.133029Content-Length: 892

Body

{ "program": { "id": 27, "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": "2024/07/01 08:28:59 +0000", "credits": null, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "This is an example teaser", "listing_path": "program-1", "listing_image": null, "currency": "USD", "catalog": { "id": 50, "name": "Domain Account 55" }, "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": [ ] }}

Deleting a specific program

Endpoint

DELETE https://www.my-catalog.edu/api/v1/programs/:id

Request

Route

DELETE https://www.my-catalog.edu/api/v1/programs/34

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduContent-Type: application/x-www-form-urlencodedCookie: 

Response

Status

204

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originX-CSRF-Token: +kOoaxVWV0aWPiOg8/GyG7oRnw/OWuZGnds474YWuRYPltKuxbj9Lw9K3sMtXwSymbqxLcr/JMvxSm6qmuJDSw==Cache-Control: no-cacheSet-Cookie: _gallery_session=U3VIbjRod3h2VU81dW5XL2JTSGFXdzhaTC9TbUEzWXdSTmZmK1JSdFY1TzlqWmx0Y0kvSkRsRXNBYWNCVkJ5eUl2aG8wQVZSdS9uSXdpcEIyTU5nUFY0aEVRc3luNGdWdXlXRHhMbjhoUko5dXVBQTZ6TjhkZUdQcVI3V0RidWlqMWJPQ0RZVzNvV1hIa2RFMGhBekJHVGhNZ1RFL0l0TnZPQ2swc0pqSllLUXlNbmowNmRnOE82MEdlMlh0YWV4LS1zYjlDNExndG1KT3krdnVnRk1ER25nPT0%3D--0a2e724a6a461f0aefb2c4429606a403c3b06557; path=/; HttpOnlyX-Request-Id: 5ee90e79-218d-4da4-bd87-9abd5c57b900X-Runtime: 0.119659

Getting a specific program

Endpoint

GET https://www.my-catalog.edu/api/v1/programs/:id

Request

Route

GET https://www.my-catalog.edu/api/v1/programs/28

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
id Identifier for this listing. Integer
visibility Indicates if the listing is visible in the web UI. Possible values: listed, unlisted, hidden String
enrollment_open Open for enrollment Boolean
enrollment_open_from If specified, enrollment is open only from this date-time Datetime
enrollment_open_to If specified, enrollment is open only to this date-time Datetime
enrollment_cap A limit for the total number of enrollments Integer
waitlist Waitlist enabled Boolean
waitlist_cap Wait List Limit for the total number of wait listed enrollments Integer
title Title of the listing String
enrollment_fee Enrollment fee Decimal
currency The three digit currency code associated to the enrollment fee String
listing_path Path to the listing. Used in URLs String
listing_url The URL of the listing String
short_description A short description for this listing String
list_order Order in which the listing is listed in the catalog Integer
tag_names List of tags applied to this listing Array
detail_code Payment detail code for a course (only if enabled with :payment_detail_code_enabled feature flag) String
show_free_banner Show the 'FREE' mark on the card of the listing if free Boolean
associated_account_ids Other account ids where this product should be listed Array
start_date When the Canvas course starts if specified Datetime
end_date When the Canvas course ends if specified Datetime
canvas_section_id The Canvas course's section's id Integer
catalog[id] Id for the catalog that owns this listing Integer
catalog[name] Name for the catalog that owns this listing String
created_at The creation date for the listing. Datetime
updated_at The last time the listing was updated. Datetime
sequential Indicates if students are required to complete requirements in order Boolean
requirements A nested array of the programs requirements. This includes courses and subprograms which can be distinguished by the type key. Array
credits Cumulative credit value of the program's requirements Decimal

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: wtuy9ENMIGZJikGBdvxfffdwwZK2tRSMpai5fkECB/joeQcCaZ6Eh2OqkzvcsaXEIBXRmg8qKS4R2nx/x01CNQ==ETag: W/"402316150a4adf1060969b2329c59662"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=aTZqVStVOWRrQVBaa0xiYXZNYTA3cmVPdjJXSXRxWGt6TTM1dlhQbk4vODZYR3FWbm55M3QxU3RMVHhidG9vVzRhREY3L1J6T01BeFlXK1VSWjlmTnhjWVc2S0xPZC8ybmdaSVZiR1Nhd3owN2lQL28rVTZGSEp1M0ZBeXdLLzIvSlRCaXlhUTVDTE5ZeGdGczBlS0hGQlVtenFPclQ0L2NGRXJXRHR3d08ydGRoR3FQRzR5aVNyTWk0TUw4elkyLS1pU2lVNmhwb25ucEhtZnlQdEdnRnp3PT0%3D--50684d1d683e1db86b4b6a87987acce76fd9db64; path=/; HttpOnlyX-Request-Id: f4b7f2c1-e60c-4a71-b7f0-6559cb2f7f63X-Runtime: 0.139351Content-Length: 5265

Body

{ "program": { "id": 28, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_26", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 9.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_26", "listing_path": "program-path-26", "listing_image": null, "currency": "USD", "catalog": { "id": 51, "name": "Domain Account 56" }, "type": "Program", "title": "Program 26", "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-26", "start_date": "2024/06/24 08:28:59 +0000", "end_date": null, "canvas_section_id": null, "associated_account_ids": [ ], "sequential": true, "requirements": [ { "id": 29, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_27", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_27", "listing_path": "program-path-27", "listing_image": null, "currency": "USD", "catalog": { "id": 51, "name": "Domain Account 56" }, "type": "Program", "title": "Program 27", "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-27", "start_date": "2024/06/24 08:28:59 +0000", "end_date": null, "canvas_section_id": null, "associated_account_ids": [ ], "sequential": true, "requirements": [ { "id": 31, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_29", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_29", "listing_path": "course-path-29", "listing_image": null, "currency": "USD", "catalog": { "id": 51, "name": "Domain Account 56" }, "type": "Course", "title": "Course 29", "list_order": null, "waitlist": false, "waitlist_cap": null, "sku": "sku_18", "show_free_banner": true, "image_alt_text": null, "allowed_payment_types": [ "standard" ], "tag_names": [ ], "listing_url": "http://www.my-catalog.edu/courses/course-path-29", "start_date": "2024/06/24 08:28:59 +0000", "end_date": "2024/07/08 08:28:59 +0000", "canvas_section_id": null, "associated_account_ids": [ ], "canvas_course": { "id": 18 } } ] }, { "id": 30, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_28", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 6.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_28", "listing_path": "program-path-28", "listing_image": null, "currency": "USD", "catalog": { "id": 51, "name": "Domain Account 56" }, "type": "Program", "title": "Program 28", "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-28", "start_date": "2024/06/24 08:28:59 +0000", "end_date": null, "canvas_section_id": null, "associated_account_ids": [ ], "sequential": true, "requirements": [ { "id": 32, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_30", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_30", "listing_path": "course-path-30", "listing_image": null, "currency": "USD", "catalog": { "id": 51, "name": "Domain Account 56" }, "type": "Course", "title": "Course 30", "list_order": null, "waitlist": false, "waitlist_cap": null, "sku": "sku_19", "show_free_banner": true, "image_alt_text": null, "allowed_payment_types": [ "standard" ], "tag_names": [ ], "listing_url": "http://www.my-catalog.edu/courses/course-path-30", "start_date": "2024/06/24 08:28:59 +0000", "end_date": "2024/07/08 08:28:59 +0000", "canvas_section_id": null, "associated_account_ids": [ ], "canvas_course": { "id": 19 } }, { "id": 33, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_31", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_31", "listing_path": "course-path-31", "listing_image": null, "currency": "USD", "catalog": { "id": 51, "name": "Domain Account 56" }, "type": "Course", "title": "Course 31", "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": [ ], "listing_url": "http://www.my-catalog.edu/courses/course-path-31", "start_date": "2024/06/24 08:28:59 +0000", "end_date": "2024/07/08 08:28:59 +0000", "canvas_section_id": null, "associated_account_ids": [ ], "canvas_course": { "id": 20 } } ] } ] }}

Listing programs

Endpoint

GET https://www.my-catalog.edu/api/v1/programs

Request

Route

GET https://www.my-catalog.edu/api/v1/programs

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 3Content-Type: application/json; charset=utf-8X-CSRF-Token: GB5QY1XEE/m5imjFp8q1qF6j54MOYfEWZmQFXwGV2yWoVW/XtTGGpWgBT+DPkt7+K5GQsujWm1U1wVx2KY4SHA==ETag: W/"5c57f1e189e5e73003536580b0a62907"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=Ym1wUVlvcTdWbC82c2NoNnF6enRnVnovUGwyaHpsVFNlb084RFpuMUFvaDh2TmFCMk1WUVczY3luSGpSbUFyckk3Z1V3RUJqRm1YcFVXVW1xbGFoYVB3MFNJS2NWcWFsaGZFNXozRXYvV2hVRHp5RjNYWHF5bjJqTHk1cTZKQzZzeWg5ZVFFcVRDOTh4OHFWQS96THZ6SFpjNnlOYVQzdkpsNTcxQjcySXppK2xPNHBvYWR0bi9ubzRxSnd3QzNTLS1QMkVFZG80QnVuTjN0ejVWNU15QkV3PT0%3D--60947cef1a3d6a0990c663f07b4c8699d005caf9; path=/; HttpOnlyX-Request-Id: a8d8c7d3-eb47-43c0-a596-1224985a934bX-Runtime: 0.196642Content-Length: 9637

Body

{ "programs": [ { "id": 21, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_20", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 9.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_20", "listing_path": "program-path-20", "listing_image": null, "currency": "USD", "catalog": { "id": 49, "name": "Domain Account 54" }, "type": "Program", "title": "Program 20", "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-20", "start_date": "2024/06/24 08:28:59 +0000", "end_date": null, "canvas_section_id": null, "associated_account_ids": [ ], "sequential": true, "requirements": [ { "id": 22, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_21", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_21", "listing_path": "program-path-21", "listing_image": null, "currency": "USD", "catalog": { "id": 49, "name": "Domain Account 54" }, "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": [ ], "listing_url": "http://www.my-catalog.edu/programs/program-path-21", "start_date": "2024/06/24 08:28:59 +0000", "end_date": null, "canvas_section_id": null, "associated_account_ids": [ ], "sequential": true, "requirements": [ { "id": 24, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_23", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_23", "listing_path": "course-path-23", "listing_image": null, "currency": "USD", "catalog": { "id": 49, "name": "Domain Account 54" }, "type": "Course", "title": "Course 23", "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-23", "start_date": "2024/06/24 08:28:59 +0000", "end_date": "2024/07/08 08:28:59 +0000", "canvas_section_id": null, "associated_account_ids": [ ], "canvas_course": { "id": 15 } } ] }, { "id": 23, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_22", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 6.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_22", "listing_path": "program-path-22", "listing_image": null, "currency": "USD", "catalog": { "id": 49, "name": "Domain Account 54" }, "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": "2024/06/24 08:28:59 +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.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_24", "listing_path": "course-path-24", "listing_image": null, "currency": "USD", "catalog": { "id": 49, "name": "Domain Account 54" }, "type": "Course", "title": "Course 24", "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-24", "start_date": "2024/06/24 08:28:59 +0000", "end_date": "2024/07/08 08:28:59 +0000", "canvas_section_id": null, "associated_account_ids": [ ], "canvas_course": { "id": 16 } }, { "id": 26, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_25", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_25", "listing_path": "course-path-25", "listing_image": null, "currency": "USD", "catalog": { "id": 49, "name": "Domain Account 54" }, "type": "Course", "title": "Course 25", "list_order": null, "waitlist": false, "waitlist_cap": null, "sku": "sku_17", "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": "2024/06/24 08:28:59 +0000", "end_date": "2024/07/08 08:28:59 +0000", "canvas_section_id": null, "associated_account_ids": [ ], "canvas_course": { "id": 17 } } ] } ] }, { "id": 22, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_21", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_21", "listing_path": "program-path-21", "listing_image": null, "currency": "USD", "catalog": { "id": 49, "name": "Domain Account 54" }, "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": [ ], "listing_url": "http://www.my-catalog.edu/programs/program-path-21", "start_date": "2024/06/24 08:28:59 +0000", "end_date": null, "canvas_section_id": null, "associated_account_ids": [ ], "sequential": true, "requirements": [ { "id": 24, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_23", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_23", "listing_path": "course-path-23", "listing_image": null, "currency": "USD", "catalog": { "id": 49, "name": "Domain Account 54" }, "type": "Course", "title": "Course 23", "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-23", "start_date": "2024/06/24 08:28:59 +0000", "end_date": "2024/07/08 08:28:59 +0000", "canvas_section_id": null, "associated_account_ids": [ ], "canvas_course": { "id": 15 } } ] }, { "id": 23, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_22", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 6.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_22", "listing_path": "program-path-22", "listing_image": null, "currency": "USD", "catalog": { "id": 49, "name": "Domain Account 54" }, "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": "2024/06/24 08:28:59 +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.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_24", "listing_path": "course-path-24", "listing_image": null, "currency": "USD", "catalog": { "id": 49, "name": "Domain Account 54" }, "type": "Course", "title": "Course 24", "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-24", "start_date": "2024/06/24 08:28:59 +0000", "end_date": "2024/07/08 08:28:59 +0000", "canvas_section_id": null, "associated_account_ids": [ ], "canvas_course": { "id": 16 } }, { "id": 26, "visibility": "listed", "enrollment_open": true, "enrollment_open_from": null, "enrollment_open_to": null, "enrollment_cap": null, "description": "description_25", "enrollment_fee": 0.0, "created_at": "2024/07/01 08:28:59 +0000", "credits": 3.0, "measurement": "credit", "updated_at": "2024/07/01 08:28:59 +0000", "short_description": "teaser_25", "listing_path": "course-path-25", "listing_image": null, "currency": "USD", "catalog": { "id": 49, "name": "Domain Account 54" }, "type": "Course", "title": "Course 25", "list_order": null, "waitlist": false, "waitlist_cap": null, "sku": "sku_17", "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": "2024/06/24 08:28:59 +0000", "end_date": "2024/07/08 08:28:59 +0000", "canvas_section_id": null, "associated_account_ids": [ ], "canvas_course": { "id": 17 } } ] } ]}

Updating a program

Endpoint

PUT https://www.my-catalog.edu/api/v1/programs/:id

Parameters

Name Description Type
program[title] Listing title String
program[description] Full listing description String
program[path] Path to the listing. Used in URLs String
program[teaser] A shorter description of the listing String
program[enrollment_open] Indicates if the listing is current accepting new students Boolean
program[enrollment_open_from] If specified, enrollment is open only from this date-time Datetime
program[enrollment_open_to] If specified, enrollment is open only to this date-time Datetime
program[visibility] Indicates if the listing is visible in the web UI. Possible values: listed, unlisted, hidden String
program[enrollment_cap] A limit for the total number of enrollments Integer
program[enrollment_fee] Enrollment fee Decimal
program[allowed_payment_types] Allowed payment methods Array
program[days_to_complete] The number of days a student has to complete the requirements Integer
program[account_id] The id of the account to associate the listing to. Can be an id of any subcatalog of the catalog making the API request. Defaults to the catalog making the API request. Integer
program[list_order] Order in which the listing is shown in the catalog Integer
program[waitlist] Waitlist enabled (defaults to false) Boolean
program[waitlist_cap] Wait List Limit for the total number of wait listed enrollments Integer
program[listing_image] URL or file upload for the image to be shown with this listing. String
program[tag_names] List of tags applied to this listing Array
program[show_free_banner] Show the 'FREE' mark on the card of the listing if free Boolean
program[associated_account_ids] Other account ids where this product should be listed Array
program[requirement_ids] Ordered array of listing IDs that represent requirements for completing the program Array
program[sequential] Indicates if students are required to complete requirements in order Boolean

Request

Route

PUT https://www.my-catalog.edu/api/v1/programs/20

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "program": { "title": "Program 1", "description": "This is a very awesome program.", "path": "program-1", "teaser": "This is an example teaser", "enrollment_open": true, "visibility": "listed", "enrollment_cap": 150, "waitlist": true, "waitlist_cap": 12, "enrollment_fee": 49.99, "days_to_complete": 45, "list_order": 123, "requirement_ids": [ ], "sequential": true, "tag_names": [ "Tag", "Another Tag" ] }}

Response

Status

204

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originX-CSRF-Token: nJDR6Y6XfiDshzTMT12yP3zcKC48V/grOioUNpHMg3hp7spdaIjE6hzY8rs/03FO92BVZlOGLMecDiEZOVXfig==Cache-Control: no-cacheSet-Cookie: _gallery_session=ZXZFbWhob3hBNlBYa2lRbVRUaE1EVlhMTU0yZEhINitPSTlSUHBvN1lkWDZTQ0JoZ1hSY3QwYnFzVTVpQUU0QVY2VHhvYkZac1lVV3Z2R3RsaDRvaGNhNjg4Z1hFcXc1OEtmR0d0V0FiZ21qTm1VSUNtVEUwTVZxb1BON24xeHVBcFg1S05QZ3pKQUdoYVBqUEpLRjZCbVJtWnl1TzVyQUFiM3h1anZlbE1rSmxyUkZJVzBETzRmTVhTM2gzZ2VjLS1OeUNvWTZCYWtUK1dRcURrb0RGRlBBPT0%3D--1f91e8e45230b39af914e3ec39dcdd1fdf93ac43; path=/; HttpOnlyX-Request-Id: cad603a3-b760-4e7f-86d9-f429914d7cbbX-Runtime: 0.147492

Getting a specific progress

Endpoint

GET https://www.my-catalog.edu/api/v1/progresses/:id

Request

Route

GET https://www.my-catalog.edu/api/v1/progresses/2

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
id Progress ID Integer
account_id Catalog Account ID Integer
canvas_user_id The Canvas User ID of the user who initiated the job Integer
completion_percent The completion percent of the job Integer
workflow_state The status of the progress String
payload Any data or errors returned by the job Array
created_at The creation date for the progress job Datetime
updated_at The last time the progress job was updated Datetime

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: TSl4y1XYr4GEFIDphrLzQJkM0F4GkjlGubmtS/GcrcpmKDDx98h1jVdOPO/cewJ/MiqoQeCWnJ5bZtbT23c6+w==ETag: W/"903330333b32170600326eca0c9a52d2"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=cHlWTGlaYWNCSWlqTkpaK2JCMHN0blpBTmViSGs5MTN3RWVHa3BWMjlVYWxhNCtrK0lRcDVFU3d6WXRoQUZxS1p3cnVROVY2UUE0UktVZ3BCb21YSVFnYmNQTXZ2MVpxUG03cll5d3JnWWtua1dXRVE5ZTMvMWtBM09XeTFMcEkrdG1VT0RGN1hUa20zcWFranFJdlNWeXNEbHZuVVJRakg5ZzRrdmlqRVR6djYzQ0E1V2RXOElsUWQ4VlBkTXZSLS1JNHlvaDl6SXRlbXc3cXdVZW1GZTVBPT0%3D--8a0a3bb7e406762c233286c2f59d59b4d614ae9c; path=/; HttpOnlyX-Request-Id: 973ac14b-3571-4e36-8398-1f081941136cX-Runtime: 0.070989Content-Length: 206

Body

{ "progress": { "id": 2, "account_id": 16, "canvas_user_id": null, "completion_percent": null, "workflow_state": "queued", "payload": { }, "created_at": "2024/07/01 08:28:54 +0000", "updated_at": "2024/07/01 08:28:54 +0000" }}

The request parameters should be sent as JSON in the request body.

Creating a Tag

Endpoint

POST https://www.my-catalog.edu/api/v1/tags

Parameters

Name Description Type
name required Tag name (minimum 1 and maximum 255 characters) String
product_ids List of product ids associate to this tag Array

Request

Route

POST https://www.my-catalog.edu/api/v1/tags

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "name": "Tag 1", "product_ids": [ 1, 2, 3 ]}

Response

Response Fields

Name Description Type
id Tag id Integer
account_id Account id Integer
name Tag name String
created_at Tag created at Datetime
updated_at Tag updated at Datetime
assigned_listings Products associate to this tag Array
assigned_listings[id] Product id Integer
assigned_listings[title] Product title String
assigned_listings[type] Product type (COURSE or PROGRAM) String
assigned_listings[canvas_course_id] Product Canvas course id Integer
assigned_categories Returns empty list to indicate there are no associated categories to the newly created tag Array

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: bsoZjLw04VgU0nQpKXI3FZrwC5W5cxZGFu56btAipW7puhmSdNp1woeu0xIcgWN3FHOrem7vTNmMl3rCI+iRbA==ETag: W/"729f420efa5ba7de47b211df4fb90865"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=VmxqOG9WMU9CSTg2NTJmS0lBeDlSVU1WajArdWxMNWpTRmpKTVROclQzSDYrTlpUUUl4bGZpR2FUTDZFTHJNWmdRVlplV09FbHcwamNRWk9TbU14VGQwSTVKcllqcjIrOEZvVVNhdHhHZmZ0TEFpRGFOeHFyWDZEblR5ZlFiVjNybzZtaHg0Qmh1VTlhdWVIQ0Q0dFQrVW9sZXpPUk4wZDNXL1cyMHJnOG1lWXlRUU1CTGpObXZtREZWSEJlSVdaLS1vK0JRZFkreUpEYkpyalFTV1JVeVF3PT0%3D--10ca09d4e20f8f62904fe371f43c868a16a85c92; path=/; HttpOnlyX-Request-Id: 3a762e84-c2a9-4622-8d01-24502e99ee5fX-Runtime: 0.065631Content-Length: 347

Body

{ "id": 9, "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"}

Deleting a specific Tag

Endpoint

DELETE https://www.my-catalog.edu/api/v1/tags/:id

Request

Route

DELETE https://www.my-catalog.edu/api/v1/tags/9

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
id Tag id Integer
account_id Account id Integer
name Tag name String
created_at Tag created at Datetime
updated_at Tag updated at Datetime
assigned_listings Returns empty list to indicate associated products to this tag are deleted Array
assigned_categories Returns empty list to indicate associated categories to this tag are deleted Array
is_deleted Returns true to indicate tag is deleted Boolean

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: BWxx7F+SzxahNhSspz26tK0YUyC/npOeK5FMiscGAU8BR+pzwTsSbAbt+sDOvCaEIkhcCHlEQG67oDDSyHhwQg==ETag: W/"bb8f9a8b9204f479c86628e6aa1f79a4"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=Z3JXbzJuYklRVGVDR2xjOWJmOEYvTTJiM0RmRFp0L3ZoTXloVXlf*ckdRQTdWMU1MalZvMytNbTY5dDhZQnhmK2JmY1BkNGN4N2JEc3puYkZhS3pveHZNUmFjNktXdFJJYXpubHJndHJ1ZTFvM1ZiU1RJUjhmZTBRT3Q4RUJ0eWtqTTB0TnE4ZkVjTHJlM05IWFowOW9ZSENHd3VMUTFjbEtVQVlERWxaM0c0U0cySFV4bk1IODUzbnpNOVJTVTU3LS0vTklsUytnV0s2ZHhncW5tSU9pcExnPT0%3D--d9085934bf2cf440880ce92f6823167629f10f8e; path=/; HttpOnlyX-Request-Id: a8cb5d3c-0d0d-434e-8c17-c37dcba40139X-Runtime: 0.065312Content-Length: 190

Body

{ "id": 9, "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}

Getting a specific Tag

Endpoint

GET https://www.my-catalog.edu/api/v1/tags/:id

Request

Route

GET https://www.my-catalog.edu/api/v1/tags/9

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
id Tag id Integer
account_id Account id Integer
name Tag name String
created_at Tag created at Datetime
updated_at Tag updated at Datetime
assigned_listings Products associate to this tag Array
assigned_listings[id] Product id Integer
assigned_listings[title] Product title String
assigned_listings[type] Product type (COURSE or PROGRAM) String
assigned_listings[canvas_course_id] Product Canvas course id Integer
assigned_categories Categories associate to this tag Array
assigned_categories[id] Category id Integer
assigned_categories[account_id] Account id Integer
assigned_categories[tag_id] Tag id Integer
assigned_categories[created_at] Category created at Datetime
assigned_categories[updated_at] Category updated at Datetime

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: guSLTankQlV81JxYEP70liqMzJqPvJ9jgK7cT7m6PTHnPAYZVUMea2lR1UkZYWZeGwrmQXcAVz0bP55SMn0o4A==ETag: W/"caf9af9a544b5cd6aa0d9c47f1fff7e6"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=T1FQS0pjMHgvaVJFYW1QR3NOZ0NTNlUrWk5lWEFXb1VIL2NEdVh3WEF3MlZGbTI0cnkzTm5MMDRrRXoxWkdYdnZTSHo4TzNydDZYL2wrakVSckJNam9mV2NER0tGeVRNTTlwcmZXeDFhOXJnV3hKN0NJeTF5dGFhdW4xZGFUUDBjcFB1c0ZaOUFQUURmVU5MaEo2QSs5OG1LdjRSaEcwazFCaFk4Z0swWnZsQlIzYmRvWlhUeDE5Y1hHUlF4bGJNLS1NVTlDTVVIUUFsSUZDdllyVXZ4S3pRPT0%3D--cc15497de7d9ccaa89199ef09bf917cf36f0ab18; path=/; HttpOnlyX-Request-Id: eee61637-abcc-499f-aa2b-489496e9f84bX-Runtime: 0.086348Content-Length: 357

Body

{ "id": 9, "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": 9, "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"}

Listing Tags

Endpoint

GET https://www.my-catalog.edu/api/v1/tags

Parameters

Name Description Type
product_ids List of product ids (maximum 20 ids) Array
name Search value which will be searched in tag name and associated products names String
has_category Tag has category or not Boolean
updated_at_from Updated at from Datetime
updated_at_to Updated at to Datetime
created_at_from Created at from Datetime
created_at_to Created at to Datetime

Request

Route

GET https://www.my-catalog.edu/api/v1/tags?product_ids=1%2C2%2C3&name=tag+1&has_category=true&updated_at_from=2023-08-06T14%3A46%3A59.944581%2B02%3A00&updated_at_to=2023-08-10T14%3A46%3A59.944581-05%3A00&created_at_from=2023-08-05T14%3A46%3A59.944581%2B02%3A00&created_at_to=2023-08-09T14%3A46%3A59.944581-05%3A00

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Query Parameters

product_ids=1,2,3name=tag 1has_category=trueupdated_at_from=2023-08-06T14:46:59.944581+02:00updated_at_to=2023-08-10T14:46:59.944581-05:00created_at_from=2023-08-05T14:46:59.944581+02:00created_at_to=2023-08-09T14:46:59.944581-05:00

Response

Response Fields

Name Description Type
id Tag id Integer
account_id Account id Integer
name Tag name String
created_at Tag created at Datetime
updated_at Tag updated at Datetime
assigned_listings Products associate to this tag Array
assigned_listings[id] Product id Integer
assigned_listings[title] Product title String
assigned_listings[type] Product type (COURSE or PROGRAM) String
assigned_listings[canvas_course_id] Product Canvas course id Integer
assigned_categories Categories associate to this tag Array
assigned_categories[id] Category id Integer
assigned_categories[account_id] Account id Integer
assigned_categories[tag_id] Tag id Integer
assigned_categories[created_at] Category created at Datetime
assigned_categories[updated_at] Category updated at Datetime

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 1Content-Type: application/json; charset=utf-8X-CSRF-Token: AVE08/3weQBvTgLr/stvri/Hhjn+u/rccdI4VodBAgzhGbT3hvEneDFi9iJLOhdoPMEJ7uIUW13fK/jny6f0TQ==ETag: W/"05187bc38a68958fdb9df1ee2b495c0a"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=T1h5djQwb3FmcW5kQy9vNzZ6SnJTUlVzRXRTbmd4azZJSkpxYmFmd1h6WTNmMEVMejF1NUY4OG5sVHdVQmRiejV3UC9ud2tKNGQyTWE1bHZFeFdLTnRObTExemlvdjlMZmhqWGoxbDc0dHQvTFdaTyt0d0JoK1d5UUZjcXBRMWpqWVVFV2phWEpvWmY3ZjVJL1NJSDJiTmtKWXNrQyt3RkR0ZnVmVjNadDNDUDh3aXc5TlpiU0E1blZWVGlXbzgyLS0xN3k0TXlrZE1mbEFITmRWdUJ1OFlnPT0%3D--32cbb8e6fcd24d68fd4025a11a9c272c00a1d2e3; path=/; HttpOnlyX-Request-Id: 623c4713-b93e-4040-879e-cd891c882770X-Runtime: 0.093632Content-Length: 368

Body

{ "tags": [ { "id": 9, "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": 9, "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" } ]}

Updating a specific Tag

Endpoint

PUT https://www.my-catalog.edu/api/v1/tags/:id

Parameters

Name Description Type
name required New tag name (minimum 1 and maximum 255 characters) String

Request

Route

PUT https://www.my-catalog.edu/api/v1/tags/9

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "name": "New tag name"}

Response

Response Fields

Name Description Type
id Tag id Integer
account_id Account id Integer
name Tag name String
created_at Tag created at Datetime
updated_at Tag updated at Datetime
assigned_listings Products associate to this tag Array
assigned_listings[id] Product id Integer
assigned_listings[title] Product title String
assigned_listings[type] Product type (COURSE or PROGRAM) String
assigned_listings[canvas_course_id] Product Canvas course id Integer
assigned_categories Categories associate to this tag Array
assigned_categories[id] Category id Integer
assigned_categories[account_id] Account id Integer
assigned_categories[tag_id] Tag id Integer
assigned_categories[created_at] Category created at Datetime
assigned_categories[updated_at] Category updated at Datetime

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: iZ6jlLGlBre1xpyWiyyttKn5/4bSnr8dhc0PwiFTvZpn/2PjEu9nGcoohFvMV3fL2PFXwmjjjEckwu1SFgcbGA==ETag: W/"733be57c5f7ab9c54f6d55282af46f1e"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=Y2w2cnp2emxSeXVBZWx6WlpWeXYyN1Z1SlpXd2lRMmkyREJBWXRzWUJ0M01RYVFra3BPTnQxL1BDa3NtbDNZSVZsTWIrbk5IR3ZGUmZock5haGhoT211QUxQUklxalFiUnAyOGNYaHprOGZJdk8rMUg0MG5lWkMwNVhxNStTWkFTVllla1ZkeEU4cHlWUDlnM0dVYU9QejVGK3IxeHBxRDljMVdBZHNncGlvOVR6bXZzOHJXOURBM2VYWWNWMDZkLS1ZWUtDdVZRdnRMMDFYWjlHTURFZHJRPT0%3D--855e2fd27999ec7dae37038488a21c6facf422a4; path=/; HttpOnlyX-Request-Id: ebebf473-ac97-43c3-a89e-41c6c89ac960X-Runtime: 0.094242Content-Length: 364

Body

{ "id": 9, "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": 9, "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"}

Getting a specific user registration

DEPRECATED: use users resource instead. It has all data from the current API endpoint.
GET /api/v1/users?canvas_user_id=:id is providing similar data

Endpoint

GET https://www.my-catalog.edu/api/v1/user_registrations/:id

Parameters

Name Description
id Canvas user ID

Request

Route

GET https://www.my-catalog.edu/api/v1/user_registrations/1

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
canvas_user_id Canvas user ID Integer
name Full name String
email E-mail address String
custom_fields Custom field values, e.g. { 'phone': '(999) 123-4567' } Object
created_at Date/time registration was recorded Datetime
updated_at Date/time last updated Datetime
catalog[id] Id for the catalog this user registered for Integer
catalog[name] Name for the catalog this user registered for String

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: FT2Djbys0ZiJQ8GqC0e9sy/7rhBLFtLG2h/K10emkrCoTbknAauIf7ofq8Jz5ndYNn9xnV0UdNHvJC3sM6TGdA==ETag: W/"aead75e603996b5be4a9074bcee1c271"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=M2dDUGVIRGU5UHFHdUxnbnJNbmlXVlZscEJ3bFM4bHR1Y0gyNGRvUVdEVjI1MFJSdnlyQ0ppOEJHb2hsMmtkbTNUR0krQnFseGVjdnhZRnFBeEwvTW92dGxyRS9FUFYxZW5SOG9rWVFiRmR5R3grTmQ0ZER3VlFML2ZRTTl4TjBPc1NkaXpvcnZEc3BzTG03c0svMWJOU0x3OHlvd0NZcjkyK2FLdFg0MGNpU25razNNWHpuNEgvVlRIZVNkZ1I0LS11cTR4VlVRdmwvUWRkakxYMTZ2bC9nPT0%3D--62145985894c718c85a9b50e93435097efbc1006; path=/; HttpOnlyX-Request-Id: 45f439fd-3366-4321-852e-4d468f964342X-Runtime: 0.082178Content-Length: 293

Body

{ "user_registration": { "canvas_user_id": 1, "catalog": { "id": 30, "name": "Domain Account 35" }, "name": "User 1", "email": "user1@example.com", "custom_fields": { "favorite_color": "#BADA55", "code_of_conduct": "1", "age": "19" }, "created_at": "2024/07/01 08:28:56 +0000", "updated_at": "2024/07/01 08:28:56 +0000" }}

Listing user registrations

DEPRECATED: use users resource instead. It has all data from the current API endpoint.
GET /api/v1/users?registered_in_catalog=true is providing similar data

Endpoint

GET https://www.my-catalog.edu/api/v1/user_registrations

Parameters

Name Description
from 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.
to Latest date/time to return (optional, String). See 'from' above for format.

Request

Route

GET https://www.my-catalog.edu/api/v1/user_registrations

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 1Content-Type: application/json; charset=utf-8X-CSRF-Token: ZSMWo1jZDm/JZiE+BCs0iBkfLpzmO+z9AwNrm2YF7GxG85pFP+bpjzJF35C6LubJ4oUCIuSVWhMb5kZRC28Fgg==ETag: W/"b03da4e773edf36be17ef5b2af7fa984"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=Y3JvU1Foa1JlQ1REdkZHT3IvUG5vVTlBdlNCc0Yrb3JZV1R1UC9SS1I4bnFvM1E0Vm5Cb1VhS1I2U1ErSWV0ODNIMXVHenlCckliUldxemdCZnVFQmQzR1lZSzA3VE9hM1NKMFl0c1JGdHRQek9iVmF6Z2ZmeDFvcXA3c0gxWHZIQjRoRUhCcjRXKzhvYUFlN3V6Sk9nWlo4ZS9lV1ZiM21IY0dTaHZIRmF1djRkWDNTSDhOQXd4ZURlQXZXV2xzLS15bGJFMkdhYU1kQTZZRnlwZjRWRS9BPT0%3D--60e1e6062bbf5a4ed23e12078daa26ceb8751501; path=/; HttpOnlyX-Request-Id: f5634a86-6050-40e4-99bd-70db2938b579X-Runtime: 0.070168Content-Length: 296

Body

{ "user_registrations": [ { "canvas_user_id": 3, "catalog": { "id": 32, "name": "Domain Account 37" }, "name": "User 3", "email": "user3@example.com", "custom_fields": { "favorite_color": "#BADA55", "code_of_conduct": "1", "age": "19" }, "created_at": "2024/07/01 08:28:56 +0000", "updated_at": "2024/07/01 08:28:56 +0000" } ]}

Registering a user

DEPRECATED: use users resource instead. It has all data from the current API endpoint.
POST /api/v1/users is providing similar behavior

Endpoint

POST https://www.my-catalog.edu/api/v1/user_registrations

Parameters

Name Description
name Full name
email E-mail address (will also serve as login)
catalog_id ID of subcatalog to associate with user (optional)
custom_fields Hash of custom field values, e.g. { 'phone': '867-5309' } (optional)

Request

Route

POST https://www.my-catalog.edu/api/v1/user_registrations

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "user_registration": { "name": "Barack Obama", "email": "barack@obama.com", "custom_fields": { "phone": "(999) 123-4567" } }}

Response

Response Fields

Name Description Type
canvas_user_id Canvas user ID Integer
name Full name String
email E-mail address String
custom_fields Custom field values, e.g. { 'phone': '(999) 123-4567' } Object
created_at Date/time registration was recorded Datetime
updated_at Date/time last updated Datetime
catalog[id] Id for the catalog this user registered for Integer
catalog[name] Name for the catalog this user registered for String

Status

201

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: n4mf+TxtzY/CIv0rOXMZZv3H1qUfizm+aXXRTcQ6st7No81w3DG/tQguXI73kEGANQDXUH5MtIqld6tN4Rlsog==ETag: W/"56e1571b4451f409fe0a42078ce98061"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=aTJobFRzRENQWVhFdzNrWU1LN0Vsand2bXNveCsyNWJPdENjMHFhVVMwZG5UYnZ1Z2cxZ1NubG83T28wa29IWjBCOTFxM2t4czB0S0x3UjJqR2Nwd0dIMnd3aTQ3a2l6NXFiN3orVjhSVXlqbVlEb1JzNDFrWmtDNS9RNFRqY3lCZWNuUTh2WjdjM2l1TlA3YkMrMkQ0UStuZ3FpU1FORUJvS0FwZnFBK0xxQVRJK0lqQVBhSkoxaHlkMGtuaHFVLS1CK0t1RTdQbzF2KzRLVyt5MWNrUnB3PT0%3D--762f2a9f3d7be551725416f403b73414c66b8fa2; path=/; HttpOnlyX-Request-Id: dc72c6c2-3de7-4e81-93a9-8185f377d4abX-Runtime: 0.210846Content-Length: 242

Body

{ "user_registration": { "canvas_user_id": 1234, "catalog": { "id": 31, "name": "Domain Account 36" }, "name": "Barack Obama", "email": "barack@obama.com", "custom_fields": { }, "created_at": "2024/07/01 08:28:56 +0000", "updated_at": "2024/07/01 08:28:56 +0000" }}

Deleting a specific user with dependencies

This endpoint will delete requested existing Catalog user if the user is in the root catalog or one of sub-catalog of the root catalog that api key is generated.
When only_orders_and_enrollments parameter is TRUE, it will delete only user dependencies that are orders, enrollments, payments, bulk invitations that he created, and applicants (wait list) for that user.
When only_orders_and_enrollments is FALSE or not specified, it will delete user dependencies including user itself and its related account admins.

Endpoint

DELETE https://www.my-catalog.edu/api/v1/users/:id?only_orders_and_enrollments=:only_orders_and_enrollments

Parameters

Name Description Type
id required Catalog user id Integer
only_orders_and_enrollments Delete only orders and enrollments (user dependencies) except user and related account admins OR delete user dependencies including user and related account admins Boolean

Request

Route

DELETE https://www.my-catalog.edu/api/v1/users/1?only_orders_and_enrollments=true

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Query Parameters

only_orders_and_enrollments=true

Response

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/jsonX-CSRF-Token: iyqmrlnD6xweET4ZA554paM8MzLIOx09VFm/PeMWjBhw38hCJ9ozKD/3AQZE/3+iIrKlYg8anlgoaBNwWXqLUQ==Cache-Control: no-cacheSet-Cookie: _gallery_session=TFMxWWRpdHR2VFNSMnJjL2U3RnlORXFSOUZVRmpUNzRmQXhoQVIwYUM4cUVPaWJuelo3N0YvWTdSeDJEUG0zZ3habTU3Y1lWaU9KQ3FsSnJ5M0c5UXVqSGhwbDFSQ0lGazgzOVBueFFYMzJmMUt1WFFBWmtjV2pzcEppNFBnT0RIOFFJZzNSS3ZiWjI4OW5YODE4Vnh5Qi9Gd3RwOTRHNi9wdEhOM3RHQVZyRTVGYVZiU0NLa2F2TmJocGlzdVE3LS1jOWsxZXJPYUJaYnh3NzVqR0tqQXRRPT0%3D--a0b85799a77fc4bdff6d1a531d15283ef0bc59a4; path=/; HttpOnlyX-Request-Id: 839d6235-0fbc-490b-bf01-4bf546529621X-Runtime: 0.074582Content-Length: 0

Getting a specific User

Endpoint

GET https://www.my-catalog.edu/api/v1/users/:id

Parameters

Name Description Type
id required Catalog user id Integer

Request

Route

GET https://www.my-catalog.edu/api/v1/users/1

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
id Catalog user id Integer
root_account_id Root account id Integer
canvas_user_id Canvas user id Integer
registered_account_id The account where the user was registered Integer
canvas_root_account_uuid Canvas root account UUID String
canvas_user_uuid Canvas user UUID String
user_name Full name String
first_name First name String
last_name Last name String
email_address E-mail address String
custom_fields Custom field values, e.g. { "phone": "(999) 123-4567" } Object
created_at Date/time of creation Datetime
updated_at Date/time of last update Datetime
time_zone User timezone String
merged_into_user_id The user where the user merged into Integer

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: Sus6XNAc73FcHm5VQBG2ot+8W1zsu/6I0xMtNeuAmw6xcoyPV4xCrPWjEr+0zIi/Qey0iqoT07rvDX1GGfGbGQ==ETag: W/"d47cd001ba72e27185c8bed36bbe429f"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=RTJzZ2JxQnpPZnlkeHlNamhGS0xsNmplTVFua3k5RU5FczZIck1VQWhsN1V1cXMxR2RkSzlIQjAvb3dIbzY4VUZqMkRkNjBIcXMvVlA0aUhkcElQT0xLMVFIQ21rbG01b2JVcUFzSlhvZGdtR0dWZlRCcjVqZ1E4UXRZUHJka3BDN1ZxOHhBZkViMmRDT3EvQWt1TUZIaEdUS3dmOS83MythUTNWRFQyNis4LzhHYko5UmpnZmdhcXBCSmZ3QU9oLS0zeWpYM09QOEQwMzlGdnlDd1Y1aWN3PT0%3D--c64e838352eb9f4a984b5900b2b44b0464a72db4; path=/; HttpOnlyX-Request-Id: 9b933dae-8495-40a8-bfe9-0556c99e40f1X-Runtime: 0.064811Content-Length: 539

Body

{ "user": { "id": 2, "root_account_id": 1, "canvas_user_id": 2, "registered_account_id": 38, "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" }}

List users

Endpoint

GET https://www.my-catalog.edu/api/v1/users

Parameters

Name Description Type
registered_in_catalog If true, only queries users registered through Catalog. If false, only queries users registered through Canvas. If not specified, queries all users. Boolean
canvas_user_id Canvas user id Integer
created_at_from Created at from. Suggested format YYYY-MM-DDTHH:MM:SSZ, e.g. 2018-01-01T00:00:00Z. System time zone is UTC. Datetime
created_at_to Created at to. Suggested format YYYY-MM-DDTHH:MM:SSZ, e.g. 2018-01-01T00:00:00Z. System time zone is UTC. Datetime
updated_at_from Updated at from. Suggested format YYYY-MM-DDTHH:MM:SSZ, e.g. 2018-01-01T00:00:00Z. System time zone is UTC. Datetime
updated_at_to Updated at to. Suggested format YYYY-MM-DDTHH:MM:SSZ, e.g. 2018-01-01T00:00:00Z. System time zone is UTC. Datetime

Request

Route

GET https://www.my-catalog.edu/api/v1/users?canvas_user_id=2&registered_in_catalog=true&created_at_from=2018-01-01T00%3A00%3A00Z&created_at_to=2024-05-01T00%3A00%3A00Z&updated_at_from=2018-01-01T00%3A00%3A00Z&updated_at_to=2024-05-01T00%3A00%3A00Z

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Query Parameters

canvas_user_id=2registered_in_catalog=truecreated_at_from=2018-01-01T00:00:00Zcreated_at_to=2024-05-01T00:00:00Zupdated_at_from=2018-01-01T00:00:00Zupdated_at_to=2024-05-01T00:00:00Z

Response

Response Fields

Name Description Type
id Catalog user id Integer
root_account_id Root account id Integer
canvas_user_id Canvas user id Integer
registered_account_id The account where the user was registered Integer
canvas_root_account_uuid Canvas root account UUID String
canvas_user_uuid Canvas user UUID String
user_name Full name String
first_name First name String
last_name Last name String
email_address E-mail address String
custom_fields Custom field values, e.g. { "phone": "(999) 123-4567" } Object
created_at Date/time of creation Datetime
updated_at Date/time of last update Datetime
time_zone User timezone String
merged_into_user_id The user where the user merged into Integer

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 1Content-Type: application/json; charset=utf-8X-CSRF-Token: eN8SnDG8BNpEiPaYGEsbl54aCQmLDkH9L9jEeySuWLNFMKg+G9nQMhkXGn7f5TWzsJLItFBjLYYpCFZnoelKFg==ETag: W/"a1417892c10ad2d0da4a6477f39a426c"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=TXJTY1N1UFVxaFVUTGxnVm5zcmxPd05QSi90bnVIYXJCUkJmU0o0aFlkYUg3V2F5Nzk0VEQxSldmODkvVjEvYjlZZ2d6MnJQSUo3bm5Od08yWUlpb3kzenF3a2pYZkNEcEhBaHBCY1RZQnpLSmxwMEc0aVBYVzJzZks3RE5yR1JSUFdsb1dwYlIxRlpweTVOem1WUm8vWCt1OWliSDVZb0FmMUFVYTBsdEhwTjZYM3A0TGdoem5HQWhrZ21sREhvLS1nREhXTWNGeUlVU3hsMy9GQVgrZzNBPT0%3D--9917408c47fd75d75738cbc08cdd96a6ce61ca8a; path=/; HttpOnlyX-Request-Id: 739c2a4c-9471-4eb7-b355-f16963a0acafX-Runtime: 0.068798Content-Length: 542

Body

{ "users": [ { "id": 2, "root_account_id": 1, "canvas_user_id": 2, "registered_account_id": 39, "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" } ]}

Registering a User

Endpoint

POST https://www.my-catalog.edu/api/v1/users

Parameters

Name Description Type
user_name required Full user name String
first_name First name String
last_name Last name String
email_address required E-mail address (will also serve as login) String
registered_account_id 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 Integer
custom_fields Hash of custom field values, e.g. { "phone": "867-5309" } (optional) Object

Request

Route

POST https://www.my-catalog.edu/api/v1/users

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Content-Type: application/jsonHost: www.my-catalog.eduCookie: 

Body

{ "user_name": "Firstname Lastname", "first_name": "Firstname", "last_name": "Lastname", "email_address": "user1@example.com", "registered_account_id": 37, "custom_fields": { "favorite_color": "#BADA55", "code_of_conduct": "1", "age": "19" }}

Response

Response Fields

Name Description Type
id Catalog user id Integer
root_account_id Root account id Integer
canvas_user_id Canvas user id Integer
registered_account_id The account where the user was registered Integer
canvas_root_account_uuid Canvas root account UUID String
canvas_user_uuid Canvas user UUID String
user_name Full name String
first_name First name String
last_name Last name String
email_address E-mail address String
custom_fields Custom field values, e.g. { "phone": "(999) 123-4567" } Object
created_at Date/time of creation Datetime
updated_at Date/time of last update Datetime
confirmation_url User confirmation url String
terms_of_use User term of use flag Boolean
locale User locale based on registered account String

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: ERe+zs+8JP7VDxR0R6G4bJTUe+dF3Ucxg2EBWV+4D8r+P5/hUeeip2aWRGZRqvrr3zdjNEnNpzgkSMn3+GDZDA==ETag: W/"2badbbb98a10db11ad71ec781baa2abd"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=enZKYnFaU21qMmFGdEtjSCtjS2hUTVZsVWFFbFJDRE1GdHZsbldwMXhnNGRzeFJkbWlKU2huMk9BWFdUSElVQUwxV3VId1V4dnlPV3ExVXErYzRrcTZKQUJoeFdaazJSQW5vMXZ0MnREeWpYbGxSMWllTVNYVnN3a0V1VGJmQnRYMWZ4d2pRLzM3TXRqeXlKa3Vnc0hyL3J3blZWdmo5ejBaK2dKU3hIeTFUazBOVzF6MGhIUDIvTDBHNHcxRTg5LS1MWUlJMGs4ZFY3ZUM1YkNCcFFOZ05BPT0%3D--973629152dbc25166ca0c997d5051402a335e706; path=/; HttpOnlyX-Request-Id: 409f6f3c-006a-4ca2-b5b7-610df3350bdfX-Runtime: 0.096153Content-Length: 602

Body

{ "user": { "id": 2, "root_account_id": 1, "canvas_user_id": 2, "registered_account_id": 37, "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" }}

Delete applicants

Endpoint

DELETE https://www.my-catalog.edu/api/v1/applicants

Parameters

Name Description
listing_id required applicants for the specified listing (Integer)
canvas_user_id delete for the specific canvas user id (optional, Integer)

Request

Route

DELETE https://www.my-catalog.edu/api/v1/applicants

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduContent-Type: application/x-www-form-urlencodedCookie: 

Body

listing_id=16

Response

Status

204

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originX-CSRF-Token: MiVp5Ohug14WHoIysCLS0tjAx23BNeXspB5l/xMl2WclyPRl8ZqG6Of0aW2fJCuJRakYHgr+LYppSN6Y3RRoUw==Cache-Control: no-cacheSet-Cookie: _gallery_session=cmtHVWMyUTRwRDRyYnBIM0E0NC94ZENqb3E1Z3hqTE5rRkR6a2FzdG1iWjc3a0E5bFhSOFFYYjlmL2ttMTMrMys0S3hWOGFtL2Q1TkJvbW5OWjJxMThLdjJyM0VtRjNuVDhNbFhmb2lOTnJnWUN1TXFBSnQyZWU2OGtScXhWUDNXQXpRWjErZmxKMDlsQmhOdFhlOFVEam1KM1dFRlU5UGxkdENKYXZUVU9ramVBd0IvcUt3TkVDYVZIQ2Q5SW5WLS1SdDNTUUd3dlVEKzA5aDhtTHU1QjVRPT0%3D--81f80de0fd60ba3d8e5bb6ddc0d90ae0f440e2fb; path=/; HttpOnlyX-Request-Id: 869831b6-c2e1-4cc7-9a24-f0d98f5e3d2fX-Runtime: 0.071134

Getting a specific applicant record

Endpoint

GET https://www.my-catalog.edu/api/v1/applicants/:id

Request

Route

GET https://www.my-catalog.edu/api/v1/applicants/2

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Response Fields

Name Description Type
id Identifier for this applicant Integer
listing[id] Identifier for listing Integer
listing[title] Listing title String
user[id] User ID Integer
user[name] Full name String
user[email] E-mail address String
status Status (waitlist, accepted, expired, or error) String
notified_of_opening_at Time user was notified of opening Datetime
created_at The creation date for the applicant Datetime
updated_at The last time the applicant was updated Datetime

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originContent-Type: application/json; charset=utf-8X-CSRF-Token: LoXIwGAy50Yqg2AdOYCo0jb+ckjBmZB0nxJYLVG2r5t+aYfaaR3YLpaXbp/tAxy+als73Tzt8rVedQLcRlw6pw==ETag: W/"4a40d14e97f8e06baa077e73b14257d6"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=KzU0b3NZVjZxVjlpMFNDd1BaWWVxWUFuV0lPVmtReTJrV0xtTllja01aTnFiZjYzc3pER0ZXY2thQkxHNTNKaTUyY0o3Qyt1UFYyRTdwK3hNcGN2cDBNcy9MYzVVN3ZsUnR0VlAxQ1F6YjFEeGNUUkFnc0w2dlJnL3EyZEhRM0E3TXRuOFFTUk9acTlKTVhHdXRlejVsSHViT2p1U1gvVVlBSVovWGxwNnJaakh1cXptZVk5aFYxUVI1TmVBZXE4LS1ZZU5ydzExdTFVWFFrWXZsQUl0OHRRPT0%3D--386e46d8690e7e2b31838d734f0d770cc3bd59ca; path=/; HttpOnlyX-Request-Id: 24714230-ec80-4386-88b8-febc5cc49ba1X-Runtime: 0.071399Content-Length: 255

Body

{ "applicant": { "id": 2, "user": { "id": 2, "name": "Applicant", "email": "plz@letmein.com" }, "listing": { "id": 15, "title": "Course 14" }, "notified_of_opening_at": null, "status": "waitlist", "created_at": "2024/07/01 08:28:56 +0000", "updated_at": "2024/07/01 08:28:56 +0000" }}

Listing applicants

Endpoint

GET https://www.my-catalog.edu/api/v1/applicants

Parameters

Name Description
listing_id Only include applicants for the specified listing (optional, Integer)
status Only include applicants for the specified status (optional, String)

Request

Route

GET https://www.my-catalog.edu/api/v1/applicants

Headers

Version: HTTP/1.0Authorization: Token token="my-token"Host: www.my-catalog.eduCookie: 

Response

Status

200

Headers

X-Frame-Options: SAMEORIGINX-XSS-Protection: 1; mode=blockX-Content-Type-Options: nosniffX-Download-Options: noopenX-Permitted-Cross-Domain-Policies: noneReferrer-Policy: strict-origin-when-cross-originPer-Page: 20Total: 1Content-Type: application/json; charset=utf-8X-CSRF-Token: 5JIfKCuoUZwkBr8avCer1NWQSXYarsSOXvQHmv65SQASnWja3d81XAm5sMxzt7CE8aYcH5lwurM8avTOqdDGAQ==ETag: W/"213eeda51511193f31ba1b2c3ac4d239"Cache-Control: max-age=0, private, must-revalidateSet-Cookie: _gallery_session=NEhhNlppa2NjNWcxQzNlU3dzRFNqR0hLaG1TSVVlRStNdHRYS1hia0dQcDJPN2pOOGRRek1qbk1PMHlxOXhkTitUSnJHS3RXZ2lsYnR2SEFIMGhoS3VBWG5sUmpxV09GWWVXSXpxQU9oREJQaUZOTGhEWldTd2VselFyMEdPVnMvVmd6UTRyZTZzbmVZWWJxQkNHNWNQOTBpbGNhWDZ0NVdWdkFVQ3gxalBFUEMrWnhBUGZhQXhVbEk4TTJINVJJLS0yU09SVWkvNDY3VFBUdXNORXU5VFNBPT0%3D--9988eaecfc8c837e57db48f32a322677d6395219; path=/; HttpOnlyX-Request-Id: a3eb547a-5c57-4b20-a221-2a2c7f5d72abX-Runtime: 0.090655Content-Length: 258

Body

{ "applicants": [ { "id": 1, "user": { "id": 1, "name": "Applicant", "email": "plz@letmein.com" }, "listing": { "id": 14, "title": "Course 13" }, "notified_of_opening_at": null, "status": "waitlist", "created_at": "2024/07/01 08:28:56 +0000", "updated_at": "2024/07/01 08:28:56 +0000" } ]}
Catalog API Documentation (2024)

References

Top Articles
Latest Posts
Article information

Author: Prof. An Powlowski

Last Updated:

Views: 6070

Rating: 4.3 / 5 (44 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Prof. An Powlowski

Birthday: 1992-09-29

Address: Apt. 994 8891 Orval Hill, Brittnyburgh, AZ 41023-0398

Phone: +26417467956738

Job: District Marketing Strategist

Hobby: Embroidery, Bodybuilding, Motor sports, Amateur radio, Wood carving, Whittling, Air sports

Introduction: My name is Prof. An Powlowski, I am a charming, helpful, attractive, good, graceful, thoughtful, vast person who loves writing and wants to share my knowledge and understanding with you.