Skilljar Domains > Plans > Enrollments API
The Domains > Plans > Enrollments API from Skilljar — 2 operation(s) for domains > plans > enrollments.
The Domains > Plans > Enrollments API from Skilljar — 2 operation(s) for domains > plans > enrollments.
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-domains-plans-enrollments-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 Domains > Plans > Enrollments 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: Domains > Plans > Enrollments
paths:
/v1/domains/{domain_name}/plan/{plan_id}/plan-enrollments:
get:
operationId: domains_plan_plan_enrollments_list
description: 'List all enrollments for a specific Plan.
Returns a paginated list of enrollments.
Each enrollment includes user information, enrollment status, and purchase details if available.
A user may have multiple enrollments for a Plan. Access to a Plan is granted if at least one enrollment
is active and not expired.'
parameters:
- in: path
name: domain_name
schema:
type: string
pattern: ^[-:\.0-9a-z]+$
required: true
- 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
- in: path
name: plan_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
tags:
- Domains > Plans > Enrollments
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedPlanEnrollmentList'
description: ''
summary: Domains plan plan enrollments list
x-summary-source: derived
post:
operationId: domains_plan_plan_enrollments_create
description: 'Enroll a user in a Plan.
This operation is idempotent for the combination of user ID and enrollment date.
If an enrollment already exists for the specified user and date, a new enrollment will not be created.
Each call with a new user or enrollment date will create a new enrollment.
The user must already have a domain membership to be enrolled.'
parameters:
- in: path
name: domain_name
schema:
type: string
pattern: ^[-:\.0-9a-z]+$
required: true
- in: path
name: plan_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
tags:
- Domains > Plans > Enrollments
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePlanEnrollmentRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/CreatePlanEnrollmentRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/CreatePlanEnrollmentRequest'
required: true
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePlanEnrollment'
description: ''
summary: Domains plan plan enrollments create
x-summary-source: derived
/v1/domains/{domain_name}/plan/{plan_id}/plan-enrollments/{plan_enrollment_id}:
get:
operationId: domains_plan_plan_enrollments_retrieve
description: 'Retrieve details for a specific Plan enrollment.
Returns enrollment information, including user details, enrollment status, and purchase information if
the enrollment was associated with a purchase or registration through the platform.'
parameters:
- in: path
name: domain_name
schema:
type: string
pattern: ^[-:\.0-9a-z]+$
required: true
- in: path
name: plan_enrollment_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
- in: path
name: plan_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
tags:
- Domains > Plans > Enrollments
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PlanEnrollment'
description: ''
summary: Domains plan plan enrollments retrieve
x-summary-source: derived
put:
operationId: domains_plan_plan_enrollments_update
description: 'Update details for a Plan enrollment.
Both PUT and PATCH requests perform partial updates to the enrollment record.'
parameters:
- in: path
name: domain_name
schema:
type: string
pattern: ^[-:\.0-9a-z]+$
required: true
- in: path
name: plan_enrollment_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
- in: path
name: plan_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
tags:
- Domains > Plans > Enrollments
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePlanEnrollmentRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UpdatePlanEnrollmentRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UpdatePlanEnrollmentRequest'
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePlanEnrollment'
description: ''
summary: Domains plan plan enrollments update
x-summary-source: derived
patch:
operationId: domains_plan_plan_enrollments_partial_update
description: 'Update details for a Plan enrollment.
Both PUT and PATCH requests perform partial updates to the enrollment record.'
parameters:
- in: path
name: domain_name
schema:
type: string
pattern: ^[-:\.0-9a-z]+$
required: true
- in: path
name: plan_enrollment_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
- in: path
name: plan_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
tags:
- Domains > Plans > Enrollments
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedUpdatePlanEnrollmentRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedUpdatePlanEnrollmentRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedUpdatePlanEnrollmentRequest'
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UpdatePlanEnrollment'
description: ''
summary: Domains plan plan enrollments partial update
x-summary-source: derived
components:
schemas:
PurchaseOfferPrice:
type: object
properties:
amount:
type: string
default: '0.00'
currency_code:
type: string
default: USD
Price:
type: object
properties:
amount:
type: string
default: '0.00'
currency_code:
type: string
default: USD
UpdatePlanEnrollment:
type: object
properties:
id:
type: string
readOnly: true
user:
allOf:
- $ref: '#/components/schemas/ReadOnlyUser'
readOnly: true
enrolled_at:
type: string
format: date-time
readOnly: true
expires_at:
type:
- string
- 'null'
format: date-time
active:
type: boolean
purchase:
allOf:
- $ref: '#/components/schemas/EnrollmentPurchase'
readOnly: true
CreatePlanEnrollmentRequest:
type: object
properties:
user:
$ref: '#/components/schemas/ReadOnlyUserRequest'
enrolled_at:
type: string
format: date-time
expires_at:
type: string
format: date-time
active:
type:
- boolean
- 'null'
default: true
purchase:
allOf:
- $ref: '#/components/schemas/EnrollmentPurchaseRequest'
required:
- user
PaymentProcessorEnum:
enum:
- NONE
- STRIPE
- STRIPE_BTC
- PAYPAL
- PAYFLOW
- CYBERSRC
- MES
- EXTERNAL
type: string
description: '* `NONE` - None
* `STRIPE` - Stripe
* `STRIPE_BTC` - Stripe Bitcoin
* `PAYPAL` - PayPal
* `PAYFLOW` - Payflow
* `CYBERSRC` - Cybersource
* `MES` - Merchant e-Solutions
* `EXTERNAL` - External'
EnrollmentPurchaseRequest:
type: object
properties:
purchase_price:
$ref: '#/components/schemas/PriceRequest'
purchase_state:
$ref: '#/components/schemas/PurchaseStateEnum'
purchased_at:
type: string
format: date-time
tax_price_cents:
type:
- integer
- 'null'
maximum: 2147483647
minimum: 0
ReadOnlyUserRequest:
type: object
description: Version of the user serializer configured to lookup a user given the user's id. It will not create new users.
properties:
id:
type: string
minLength: 1
description: Known as user_id within the documentation
required:
- id
PaginatedPlanEnrollmentList:
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/PlanEnrollment'
UpdatePlanEnrollmentRequest:
type: object
properties:
expires_at:
type:
- string
- 'null'
format: date-time
active:
type: boolean
PatchedUpdatePlanEnrollmentRequest:
type: object
properties:
expires_at:
type:
- string
- 'null'
format: date-time
active:
type: boolean
CreatePlanEnrollment:
type: object
properties:
id:
type: string
readOnly: true
user:
$ref: '#/components/schemas/ReadOnlyUser'
enrolled_at:
type: string
format: date-time
expires_at:
type: string
format: date-time
active:
type:
- boolean
- 'null'
default: true
purchase:
allOf:
- $ref: '#/components/schemas/EnrollmentPurchase'
required:
- user
PlanEnrollment:
type: object
properties:
id:
type: string
readOnly: true
user:
$ref: '#/components/schemas/ReadOnlyUser'
enrolled_at:
type: string
format: date-time
expires_at:
type: string
format: date-time
active:
type:
- boolean
- 'null'
default: true
purchase:
allOf:
- $ref: '#/components/schemas/EnrollmentPurchase'
readOnly: true
required:
- user
ReadOnlyUser:
type: object
description: Version of the user serializer configured to lookup a user given the user's id. It will not create new users.
properties:
id:
type: string
description: Known as user_id within the documentation
email:
type: string
format: email
readOnly: true
title: Email address
description: Email address
first_name:
type: string
readOnly: true
description: First name
last_name:
type: string
readOnly: true
description: Last name
required:
- id
PurchaseStateEnum:
enum:
- CREATED
- SUCCESS
- FAILED
- REFUNDED
- CANCELLED
- FLAGGED
- PENDING
type: string
description: '* `CREATED` - CREATED
* `SUCCESS` - SUCCESS
* `FAILED` - FAILED
* `REFUNDED` - REFUNDED
* `CANCELLED` - CANCELLED
* `FLAGGED` - FLAGGED
* `PENDING` - PENDING'
EnrollmentPurchase:
type: object
properties:
order_id:
type: string
readOnly: true
offer_price:
allOf:
- $ref: '#/components/schemas/PurchaseOfferPrice'
readOnly: true
purchase_price:
$ref: '#/components/schemas/Price'
quantity:
type: integer
readOnly: true
purchase_state:
$ref: '#/components/schemas/PurchaseStateEnum'
payment_processor:
allOf:
- $ref: '#/components/schemas/PaymentProcessorEnum'
readOnly: true
default: NONE
purchase_id:
type: string
readOnly: true
purchased_at:
type: string
format: date-time
tax_price_cents:
type:
- integer
- 'null'
maximum: 2147483647
minimum: 0
PriceRequest:
type: object
properties:
amount:
type: string
minLength: 1
default: '0.00'
currency_code:
type: string
minLength: 1
default: USD
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