Skilljar Users API
The Users API from Skilljar — 3 operation(s) for users.
The Users API from Skilljar — 3 operation(s) for users.
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-users-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 Users 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: Users
paths:
/v1/users:
get:
operationId: users_list
description: 'List users registered on at least one domain.
Returns a paginated list of users who have registered on any domain in your organization.
Supports filtering by email, first name, and last name.
This endpoint uses cursor-based pagination by default — it performs consistently
regardless of dataset size. Follow the `next` URL in each response to page forward.
Pass `?page=N` to use page-number pagination instead.'
parameters:
- in: query
name: email
schema:
type: string
description: Filter users by email address
- in: query
name: first_name
schema:
type: string
description: Filter users by first name - case sensitive
- in: query
name: is_inactive
schema:
type: boolean
description: Filter users by inactive status (true returns inactive users, false returns active users)
- in: query
name: last_name
schema:
type: string
description: Filter users by last name - case sensitive
tags:
- Users
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedUserOverviewList'
description: ''
summary: Users list
x-summary-source: derived
/v1/users/{user_id}:
get:
operationId: users_retrieve
description: 'Retrieve a user''s registration and course overview.
Returns detailed information about a specific user, including registration and completion counts,
recent activity, and profile details.'
parameters:
- in: path
name: user_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
tags:
- Users
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserOverview'
description: ''
summary: Users retrieve
x-summary-source: derived
put:
operationId: users_update
description: 'Update user details.
Allows updating the user''s name and email address. Both PUT and PATCH perform partial updates.'
parameters:
- in: path
name: user_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
tags:
- Users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserUpdateRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UserUpdateRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/UserUpdateRequest'
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserUpdate'
description: ''
summary: Users update
x-summary-source: derived
patch:
operationId: users_partial_update
description: 'Partially update user details.
Allows updating the user''s name and email address. Both PUT and PATCH perform partial updates.'
parameters:
- in: path
name: user_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
tags:
- Users
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchedUserUpdateRequest'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/PatchedUserUpdateRequest'
multipart/form-data:
schema:
$ref: '#/components/schemas/PatchedUserUpdateRequest'
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserUpdate'
description: ''
summary: Users partial update
x-summary-source: derived
/v1/users/{user_id}/anonymize:
post:
operationId: users_anonymize_create
description: 'Permanently anonymize a user.
Obfuscates all personally identifiable information for the user, making it impossible to identify
or restore the user. This action is irreversible and prevents future platform access.'
parameters:
- in: path
name: user_id
schema:
type: string
pattern: ^[0-9a-z]+$
required: true
tags:
- Users
security:
- OrganizationApiKey: []
- tokenAuth: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UserOverview'
description: ''
summary: Users anonymize create
x-summary-source: derived
components:
schemas:
UserUpdateRequest:
type: object
description: Version of the user serializer configured to update a user's name and email address.
properties:
email:
type: string
format: email
title: Email address
description: Email address
maxLength: 254
first_name:
type: string
description: First name
maxLength: 50
last_name:
type: string
description: Last name
maxLength: 50
UserOverview:
type: object
properties:
user:
allOf:
- $ref: '#/components/schemas/ReadOnlyUser'
readOnly: true
registration_count:
type: integer
readOnly: true
description: Number of courses the user has enrolled in
completion_count:
type: integer
readOnly: true
description: Total number of courses completed by the user
signed_up_at:
type: string
format: date-time
readOnly: true
description: When the user was created
latest_activity:
type: string
format: date-time
readOnly: true
description: When the user most recently visited a course
inactive_at:
type:
- string
- 'null'
format: date-time
readOnly: true
description: When the student was set inactive. Null if the student is active.
UserUpdate:
type: object
description: Version of the user serializer configured to update a user's name and email address.
properties:
id:
type: string
readOnly: true
description: Known as user_id within the documentation
email:
type: string
format: email
title: Email address
description: Email address
maxLength: 254
first_name:
type: string
description: First name
maxLength: 50
last_name:
type: string
description: Last name
maxLength: 50
inactive_at:
type:
- string
- 'null'
format: date-time
readOnly: true
PatchedUserUpdateRequest:
type: object
description: Version of the user serializer configured to update a user's name and email address.
properties:
email:
type: string
format: email
title: Email address
description: Email address
maxLength: 254
first_name:
type: string
description: First name
maxLength: 50
last_name:
type: string
description: Last name
maxLength: 50
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
PaginatedUserOverviewList:
type: array
items:
$ref: '#/components/schemas/UserOverview'
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