Skilljar Offers API
The Offers API from Skilljar — 2 operation(s) for offers.
The Offers API from Skilljar — 2 operation(s) for offers.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/skilljar:skilljar-offers-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Skilljar Offers API
version: 1.0.0
description: The Skilljar API provides comprehensive access to our customer education platform, enabling you to programmatically manage courses, users, enrollments, and more.
tags:
- name: Offers
paths:
/v1/offers:
get:
operationId: offers_list
description: 'Retrieve a paginated list of Offers available to your organization.
Returns a list of Offer resources, filtered and paginated according to the request parameters.'
parameters:
- name: page
required: false
in: query
description: A page number within the paginated result set.
schema:
type: integer
- name: page_size
required: false
in: query
description: Number of results to return per page.
schema:
type: integer
tags:
- Offers
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedOfferItemList'
description: ''
summary: Offers list
x-summary-source: derived
/v1/offers/{offer_id}:
get:
operationId: offers_retrieve
description: 'Retrieve details for a specific Offer.
Returns the Offer resource identified by the given offer ID.'
parameters:
- in: path
name: offer_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
tags:
- Offers
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OfferItem'
description: ''
summary: Offers retrieve
x-summary-source: derived
put:
operationId: offers_update
description: 'Update an Offer price if it is an à la carte Offer for a `PublishedCourse`.
PUT and PATCH are identical - both do partial updates.'
parameters:
- in: path
name: offer_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
tags:
- Offers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/OfferItemRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/OfferItemRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/OfferItemRequest'
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OfferItem'
description: ''
summary: Offers update
x-summary-source: derived
patch:
operationId: offers_partial_update
description: 'Update an Offer if it is an à la carte Offer for a `PublishedCourse`.
PUT and PATCH are identical - both do partial updates.'
parameters:
- in: path
name: offer_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
tags:
- Offers
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedOfferItemRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedOfferItemRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedOfferItemRequest'
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/OfferItem'
description: ''
summary: Offers partial update
x-summary-source: derived
components:
schemas:
CurrencyCodeEnum:
enum:
- AUD
- BRL
- CAD
- CNY
- EUR
- GBP
- JPY
- KRW
- MXN
- NZD
- RUB
- SEK
- SGD
- USD
- ZAR
type: string
description: '* `AUD` - AUD
* `BRL` - BRL
* `CAD` - CAD
* `CNY` - CNY
* `EUR` - EUR
* `GBP` - GBP
* `JPY` - JPY
* `KRW` - KRW
* `MXN` - MXN
* `NZD` - NZD
* `RUB` - RUB
* `SEK` - SEK
* `SGD` - SGD
* `USD` - USD
* `ZAR` - ZAR'
OfferItemRequest:
type: object
properties:
price_cents:
type: integer
minimum: 0
description: The price of the offer in cents
currency_code:
allOf:
- $ref: '#/components/schemas/CurrencyCodeEnum'
description: 'Available currency codes: AUD, BRL, CAD, CNY, EUR, GBP, JPY, KRW, MXN, NZD, RUB, SEK, SGD, USD, ZAR
* `AUD` - AUD
* `BRL` - BRL
* `CAD` - CAD
* `CNY` - CNY
* `EUR` - EUR
* `GBP` - GBP
* `JPY` - JPY
* `KRW` - KRW
* `MXN` - MXN
* `NZD` - NZD
* `RUB` - RUB
* `SEK` - SEK
* `SGD` - SGD
* `USD` - USD
* `ZAR` - ZAR'
price_credits:
type:
- integer
- 'null'
minimum: 0
description: Number of credits, if enabled for your organization
OfferTypeEnum:
enum:
- published_path
- domain
- published_course
- plan
type: string
description: '* `published_path` - Course Bundle
* `domain` - Domain
* `published_course` - Published Course
* `plan` - Plan'
PatchedOfferItemRequest:
type: object
properties:
price_cents:
type: integer
minimum: 0
description: The price of the offer in cents
currency_code:
allOf:
- $ref: '#/components/schemas/CurrencyCodeEnum'
description: 'Available currency codes: AUD, BRL, CAD, CNY, EUR, GBP, JPY, KRW, MXN, NZD, RUB, SEK, SGD, USD, ZAR
* `AUD` - AUD
* `BRL` - BRL
* `CAD` - CAD
* `CNY` - CNY
* `EUR` - EUR
* `GBP` - GBP
* `JPY` - JPY
* `KRW` - KRW
* `MXN` - MXN
* `NZD` - NZD
* `RUB` - RUB
* `SEK` - SEK
* `SGD` - SGD
* `USD` - USD
* `ZAR` - ZAR'
price_credits:
type:
- integer
- 'null'
minimum: 0
description: Number of credits, if enabled for your organization
PaginatedOfferItemList:
type: object
required:
- count
- results
properties:
count:
type: integer
example: 123
next:
type:
- string
- 'null'
format: uri
example: http://api.example.org/accounts/?page=4
previous:
type:
- string
- 'null'
format: uri
example: http://api.example.org/accounts/?page=2
results:
type: array
items:
$ref: '#/components/schemas/OfferItem'
OfferItem:
type: object
properties:
id:
type: string
readOnly: true
description: Known as offer_id within the documentation
course_series_id:
type: string
readOnly: true
published_path_id:
type: string
readOnly: true
published_course_id:
type: string
readOnly: true
plan_id:
type: string
readOnly: true
domain_name:
type:
- string
- 'null'
readOnly: true
offer_type:
allOf:
- $ref: '#/components/schemas/OfferTypeEnum'
readOnly: true
price_cents:
type: integer
minimum: 0
description: The price of the offer in cents
currency_code:
allOf:
- $ref: '#/components/schemas/CurrencyCodeEnum'
description: 'Available currency codes: AUD, BRL, CAD, CNY, EUR, GBP, JPY, KRW, MXN, NZD, RUB, SEK, SGD, USD, ZAR
* `AUD` - AUD
* `BRL` - BRL
* `CAD` - CAD
* `CNY` - CNY
* `EUR` - EUR
* `GBP` - GBP
* `JPY` - JPY
* `KRW` - KRW
* `MXN` - MXN
* `NZD` - NZD
* `RUB` - RUB
* `SEK` - SEK
* `SGD` - SGD
* `USD` - USD
* `ZAR` - ZAR'
price_credits:
type:
- integer
- 'null'
minimum: 0
description: Number of credits, if enabled for your organization
sku:
type: string
readOnly: true
max_quantity:
type: integer
readOnly: true
active:
type: boolean
readOnly: true
starts_at:
type: string
format: date-time
readOnly: true
description: ISO 8601 formatted datetime string indicating when the offer starts at
ends_at:
type: string
format: date-time
readOnly: true
description: ISO 8601 formatted datetime string indicating when the offer ends at
linked_to_plan:
type: boolean
description: Returns True if the offer is included in a Plan offer.
readOnly: true
securitySchemes:
OrganizationApiKey:
type: http
scheme: basic
description: API key authentication using HTTP Basic Auth. Use your API key as the username and leave password empty.
tokenAuth:
type: http
scheme: bearer