Alternate Purchase Paths
Configure a secondary purchase CTA on a content item — admin CRUD, bulk replace, and the learner-facing visible read.
An alternate purchase path is a secondary CTA on a catalog content item — for
example "Subscribe for unlimited access" next to the à-la-carte buy button. Admins
configure one or more entries per course; the learner-facing read returns the
first entry that survives the visibility rules, or null.
These endpoints are v3. Call
https://{instance}.thoughtindustries.com/v3/..., not the /incoming/v2
base used by the rest of this reference. Authenticate with
Authorization: Bearer from Settings → Security.
Admin writes require the settings.alternatePurchasePaths permission. A company
API key satisfies that. The learner read is session-authenticated; a company API
key call returns { "data": null } because the API-key principal is not a
learner UUID. See Get visible alternate purchase path.
contentId is a course UUID. Learning paths are valid as ti_item targets
only, not as the source content item. Allowed targets: an active, priced course,
learning path, subscription (client_subscription bundle), or collection
(discount group), or an http(s) external URL with a title.
Admin
| Page | Method | Path |
|---|---|---|
| List | GET | /v3/admin/content/:contentId/alternate-purchase-paths |
| Get | GET | /v3/admin/content/:contentId/alternate-purchase-paths/:entryId |
| Create | POST | /v3/admin/content/:contentId/alternate-purchase-paths |
| Update | PATCH | /v3/admin/content/:contentId/alternate-purchase-paths/:entryId |
| Delete | DELETE | /v3/admin/content/:contentId/alternate-purchase-paths/:entryId |
| Bulk replace | PUT | /v3/admin/content/alternate-purchase-paths/bulk |
| Filter purchasable targets | POST | /v3/admin/content/alternate-purchase-paths/purchasable-targets |
Learner
| Page | Method | Path |
|---|---|---|
| Get visible | GET | /v3/content/:contentId/alternate-purchase-path |
Successful responses use the v3 { "data": ... } envelope. List returns an
array under data. The learner read returns a single object or null.