openapi: 3.1.0
info:
title: api-settings
version: '1.0'
servers:
- url: https://app.workramp.com
components:
securitySchemes:
sec0:
type: apiKey
name: Authorization
in: header
x-bearer-format: bearer
x-default: ACCESS_TOKEN
security:
- sec0: []
paths:
/api/v1/users:
get:
summary: Get All Users
description: 'Gets all users within the enterprise.
See also: Get All Users (Including Attributes)'
operationId: get-all-users-in-enterprise
parameters:
- name: limit
in: query
description: Limit the number of results returned per page. See warnings above -- failure to limit
can result in your request being blocked due to rate-limiting. **Best practice is to always
set to 1 when querying for one user, or less than 100 when doing batches.**
schema:
type: integer
format: int32
- name: page
in: query
description: When used in conjunction with "limit," indicate what page (zero indexed) of results
to return. The last "page" will have potentially fewer results than "limit," and pages beyond
results will have return an empty array.
schema:
type: integer
format: int32
- name: includeDeleted
in: query
description: Default behavior is to return users where isDeleted is "false". You can set this
parameter to "true" to return users for which isDeleted is either "true" or "false".
schema:
type: boolean
default: false
- name: email
in: query
description: Optional - To filter to a single email address. If a user with this email address
exists in the system, then only that user will be in the return data. If no user exists with
that email, then a blank list will be returned.
schema:
type: string
- name: name
in: query
description: Optional - To filter by name, pass in a name to search, please note this is case
sensitive
schema:
type: string
- name: custom_attributes
in: query
description: 'Optional - To filter to only users with a certain custom attribute value, pass an
object with a single key-value pair where the key represents the custom attribute name and the
value represents the custom attribute value. (ie. `{ "custom_attributes": { "isAdmin": true
} }`)'
schema:
properties: {}
type: object
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "[\n {\n \"id\": 1925,\n \"name\": \"John Doe\",\n \"email\": \"johndoe@workramp.com\"\
,\n \"isAdmin\": false,\n \"isDeleted\": false,\n \t\t\"isPermanentlyDeleted\"\
: false,\n \"createdAt\": 1466832522351.831,\n \"updatedAt\": 1469950882088.9028,\n\
\ \"directReports\": [\n {\n \"id\": 4,\n \"name\": \"Managee\
\ Doe\",\n \"email\": \"manageedoe@workramp.com\"\n }\n ],\n \"\
certifications\": [\n {\n \"id\": 1,\n \"title\": \"Certification\
\ 1\"\n }\n ]\n },\n {\n \"id\": 1954,\n \"name\": \"Beth Samuels\"\
,\n \"email\": \"bethsamuels@workramp.com\",\n \"isAdmin\": true,\n \"isDeleted\"\
: false,\n \t\t\"isPermanentlyDeleted\": false,\n \"createdAt\": 1467515797325.3892,\n\
\ \"updatedAt\": 1467515860387.0022,\n \"directReports\": [],\n \"certifications\"\
: []\n },\n {\n \"id\": 1955,\n \"name\": \"Julie Thomas\",\n \"email\"\
: \"juliethomas@workramp.com\",\n \"isAdmin\": false,\n \"isDeleted\": false,\n\
\ \t\t\"isPermanentlyDeleted\": false,\n \"createdAt\": 1467515822265.4888,\n \
\ \"updatedAt\": 1467515932613.6372,\n \"directReports\": [],\n \"certifications\"\
: []\n }\n]\n"
schema:
type: array
items:
type: object
properties:
id:
type: integer
example: 1925
default: 0
name:
type: string
example: John Doe
email:
type: string
example: johndoe@workramp.com
isAdmin:
type: boolean
example: false
default: true
isDeleted:
type: boolean
example: false
default: true
isPermanentlyDeleted:
type: boolean
example: false
default: true
createdAt:
type: number
example: 1466832522351.831
default: 0
updatedAt:
type: number
example: 1469950882088.9028
default: 0
directReports:
type: array
items:
type: object
properties:
id:
type: integer
example: 4
default: 0
name:
type: string
example: Managee Doe
email:
type: string
example: manageedoe@workramp.com
certifications:
type: array
items:
type: object
properties:
id:
type: integer
example: 1
default: 0
title:
type: string
example: Certification 1
'429':
description: Too Many Requests
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: The error
default: Rate Limited...
required:
- error
examples:
Rate Limited:
summary: Rate Limited
value:
error: Rate limited. See info at https://developers.workramp.com/reference/get-all-users-in-enterprise
deprecated: false
/api/v1/users/{user_id}:
delete:
summary: Delete User
description: Delete an existing user
operationId: delete-user
parameters:
- name: user_id
in: path
description: ID of user to be deleted
schema:
type: integer
format: int32
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: 'true'
schema:
type: boolean
example: true
default: true
deprecated: false
/api/v1/groups:
get:
summary: Get all Groups
description: Get all groups within the enterprise
operationId: get-all-groups
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "[\n {\n \"id\": 8,\n \"enterpriseId\": 23,\n \"name\": \"SDR New Hires\
\ - August\",\n \"createdAt\": 1435038275166.556,\n \"updatedAt\": 1437021409461.621\n\
\ },\n {\n \"id\": 116,\n \"enterpriseId\": 23,\n \"name\": \"SDRs\",\n\
\ \"createdAt\": 1457236933952.727,\n \"updatedAt\": 1457236933952.727\n }\n\
]\n"
schema:
type: array
items:
type: object
properties:
id:
type: integer
example: 8
default: 0
enterpriseId:
type: integer
example: 23
default: 0
name:
type: string
example: SDR New Hires - August
createdAt:
type: number
example: 1435038275166.556
default: 0
updatedAt:
type: number
example: 1437021409461.621
default: 0
deprecated: false
/api/v1/groups/{group_id}/users:
get:
summary: Get All Users in a Group
description: Get all users in a specific group
operationId: get-all-users-in-a-group
parameters:
- name: Authorization
in: header
schema:
type: string
- name: group_id
in: path
schema:
type: string
required: true
- name: Content-type
in: header
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "[\n {\n \"id\": 1925,\n \"name\": \"John Doe\",\n \"email\": \"johndoe@workramp.com\"\
,\n \"isAdmin\": false,\n \"isDeleted\": false,\n \t\t\"isPermanentlyDeleted\"\
: false,\n \"createdAt\": 1656355073141,\n \"updatedAt\": 1658343360219,\n \
\ \"directReports\": [\n {\n \"id\": 4,\n \"name\": \"Managee\
\ Doe\",\n \"email\": \"manageedoe@workramp.com\"\n }\n ],\n \"\
certifications\": [\n {\n \"id\": 1,\n \"title\": \"Certification\
\ 1\"\n }\n ],\n \"customAttributes\": [\n {\n \"id\": 1,\n\
\ \"apiName\": \"alias\",\n \"value\": \"rockstar\"\n }\n ]\n\
\ },\n {\n \"id\": 1954,\n \"name\": \"Beth Samuels\",\n \"email\": \"\
bethsamuels@workramp.com\",\n \"isAdmin\": true,\n \"isDeleted\": false,\n \t\
\t\"isPermanentlyDeleted\": false,\n \"createdAt\": 1656355073125,\n \"updatedAt\"\
: 1636355073144,\n \"directReports\": [],\n \"certifications\": [],\n \"\
customAttributes\": []\n }\n]\n"
schema:
type: array
items:
type: object
properties:
id:
type: integer
example: 1925
default: 0
name:
type: string
example: John Doe
email:
type: string
example: johndoe@workramp.com
isAdmin:
type: boolean
example: false
default: true
isDeleted:
type: boolean
example: false
default: true
isPermanentlyDeleted:
type: boolean
example: false
default: true
createdAt:
type: integer
example: 1656355073141
default: 0
updatedAt:
type: integer
example: 1658343360219
default: 0
directReports:
type: array
items:
type: object
properties:
id:
type: integer
example: 4
default: 0
name:
type: string
example: Managee Doe
email:
type: string
example: manageedoe@workramp.com
certifications:
type: array
items:
type: object
properties:
id:
type: integer
example: 1
default: 0
title:
type: string
example: Certification 1
customAttributes:
type: array
items:
type: object
properties:
id:
type: integer
example: 1
default: 0
apiName:
type: string
example: alias
value:
type: string
example: rockstar
deprecated: false
x-readme:
code-samples:
- language: curl
code: 'curl https://app.workramp.com/api/v1/grous/2/users \
-H "Authorization: Bearer ACCESS_TOKEN"
-H "Content-type: application/json" \'
samples-languages:
- curl
/api/v1/users/:user_id/assignments/:
get:
summary: Get all User Assignments
description: For provided user_id, returns all Course, Training Series (Paths), Challenge, and SCORM
assignments.
operationId: get-all-user-assignments
parameters:
- name: :user_id
in: path
schema:
type: string
required: true
- name: Authorization
in: header
schema:
type: string
- name: webhook_payloads
in: query
description: Use webhook formats for assignment payloads
schema:
type: boolean
default: false
- in: query
name: legacy_mode
schema:
type: boolean
default: 'true'
description: For accounts provisioned prior to November 11, 2025, the optional query parameter
legacy_mode can be set to bypass pagination. When legacy_mode is enabled, the API will return
the entire result set in a single, non-paginated response.
responses:
'200':
description: '200'
content:
application/json:
examples:
default:
value:
page: 1
per_page: 20
has_more: false
item_count: 6
url: /api/v1/users/27483/assignments
data:
challenge_assignments:
- id: d09f7598-bc99-11e8-bb1c-06cfa4e7b2f4
user_id: 27483
title: Challenge 1 Title
challenge_id: 8b439e84-bc99-11e8-a7f4-06cfa4e7b2f4
training_series_user_assignment_id: d07067f8-bc99-11e8-bb1c-06cfa4e7b2f4
due_date: 1538784000000
reviewers_due_date: null
is_submitted: false
is_partially_graded: false
is_fully_graded: false
calculated_grade: 0
passed: false
created_at: 1537422945092
updated_at: 1541702793186
completed_at: null
completion_percentage: 0
tags: []
status: not_started
is_completed: false
is_completed_on_time: null
passing_grade_required: null
is_overdue: null
num_days_overdue: null
date_first_accessed: null
date_last_accessed: null
assigner_id: null
- id: 32509f28-4044-11e9-823e-06cfa4e7b2f4
user_id: 27483
title: Challenge 2 Title
challenge_id: eb6008b0-3ac6-11e9-b297-0260b0cd3c00
training_series_user_assignment_id: null
due_date: 1553126400000
reviewers_due_date: 1553817600000
is_submitted: false
is_partially_graded: false
is_fully_graded: false
calculated_grade: 0
passed: false
created_at: 1551899725760
updated_at: 1551899725919
completed_at: null
completion_percentage: 0
tags: []
status: not_started
is_completed: false
is_completed_on_time: null
passing_grade_required: null
is_overdue: null
num_days_overdue: null
date_first_accessed: null
date_last_accessed: null
assigner_id: null
guide_assignments:
- id: d20a8ddc-02ad-11e9-af0d-0260b0cd3c00
user_id: 27483
title: Guide 1 Title
course_id: c52ca028-02ad-11e9-8d2f-0260b0cd3c00
training_series_user_assignment_id: null
training_series_user_assignment_ids: []
assigner_id: null
due_date: 1545955200000
num_viewed_tasks: 3
num_completed_tasks: 3
num_completed_test_questions: 5
num_graded_test_questions: 4
num_correct_test_questions: 3
score: 75
is_archived: null
is_completed: false
completion_percentage: 100
created_at: 1545128118800
updated_at: 1545328427200
completed_at: 1545328427200
tags: []
status: completed
is_completed_on_time: null
passed: true
passing_grade_required: null
is_overdue: null
num_days_overdue: null
is_retaken: false
retake_count: 0
time_spent: null
first_accessed_at: null
last_accessed_at: null
- id: d07457d2-bc99-11e8-bb1c-06cfa4e7b2f4
user_id: 27483
title: Guide 2 Title
course_id: 72647668-bc99-11e8-a7f4-06cfa4e7b2f4
training_series_user_assignment_id: d07067f8-bc99-11e8-bb1c-06cfa4e7b2f4
training_series_user_assignment_ids: []
assigner_id: null
due_date: 1538784000000
num_viewed_tasks: 1
num_completed_tasks: 0
num_completed_test_questions: 0
num_graded_test_questions: 0
num_correct_test_questions: 0
score: null
is_archived: null
is_completed: false
completion_percentage: 0
created_at: 1537422944809
updated_at: 1537422969899
completed_at: null
tags: []
status: in_progress
is_completed_on_time: null
passed: false
passing_grade_required: null
is_overdue: null
num_days_overdue: null
is_retaken: false
retake_count: 0
time_spent: null
first_accessed_at: null
last_accessed_at: null
path_assignments:
- id: d07067f8-bc99-11e8-bb1c-06cfa4e7b2f4
user_id: 27483
title: Path 1 Title
training_series_id: 7d30e004-bc99-11e8-86d3-0260b0cd3c00
assigner_id: 27484
overall_grade: null
is_completed: false
due_date: 1538784000000
created_at: 1537422944784
updated_at: 1537422944784
created_through: null
num_modules: 4
modules_completed: 2
completion_percentage: 50
completed_at: null
tags: []
time_spent: 32
status: in_progress
is_completed_on_time: null
passed: false
passing_grade_required: null
is_overdue: null
num_days_overdue: null
first_accessed_at: null
last_accessed_at: null
scorm_assignments:
- assigner_user_id: null
completion_percentage: 100
due_at: 1551899725760
due_date: 1551899725760
id: 019659d6-4c16-7707-bc7e-966a6cfa3a0b
is_completed: true
score: 100
tags:
- Ad Solutions
- Trending Takeover
- Reddit Takeover
- Front Page Takeover
- Category Takeover
- Takeovers
top_level_content_id: 019659d6-6758-7f30-af63-9446f9011d1e
training_series_user_assignment_ids:
- 01965e3b-1627-7bfc-a1d3-01d28d78e873
- 01965e3b-409f-7cad-b2fa-8889cffd799d
webhook_payloads:
summary: webhook_payloads
value:
challengeAssignments: []
guideAssignments: []
pathAssignments: []
scormAssignments: []
legacy_mode:
summary: legacy_mode
value:
courseAssignments:
- id: d20a8ddc-02ad-11e9-af0d-0260b0cd3c00
userId: 27483
title: Guide 1 Title
courseId: c52ca028-02ad-11e9-8d2f-0260b0cd3c00
trainingSeriesUserAssignmentId: null
dueDate: 1545955200000
numViewedTasks: 3
numCompletedTasks: 3
numCompletedTestQuestions: 5
numGradedTestQuestions: 4
numCorrectTestQuestions: 3
score: 75
isArchived: null
isCompleted: false
createdAt: 1545128118800
updatedAt: 1545328427200
completedAt: 1545328427200
completionPercentage: 100
- id: d07457d2-bc99-11e8-bb1c-06cfa4e7b2f4
userId: 27483
title: Guide 2 Title
courseId: 72647668-bc99-11e8-a7f4-06cfa4e7b2f4
trainingSeriesUserAssignmentId: d07067f8-bc99-11e8-bb1c-06cfa4e7b2f4
dueDate: 1538784000000
numViewedTasks: 1
numCompletedTasks: 0
numCompletedTestQuestions: 0
numGradedTestQuestions: 0
numCorrectTestQuestions: 0
score: null
isArchived: null
isCompleted: false
createdAt: 1537422944809
updatedAt: 1537422969899
completedAt: null
completionPercentage: 0
trainingSeriesAssignments:
- id: d07067f8-bc99-11e8-bb1c-06cfa4e7b2f4
userId: 27483
title: Path 1 Title
trainingSeriesId: 7d30e004-bc99-11e8-86d3-0260b0cd3c00
assignerId: 27484
overallGrade: null
isCompleted: false
dueDate: 1538784000000
createdAt: 1537422944784
updatedAt: 1537422944784
createdThrough: null
numModules: 4
modulesCompleted: 2
completionPercentage: 50
timeSpent: 32
challengeAssignments:
- id: d09f7598-bc99-11e8-bb1c-06cfa4e7b2f4
userId: 27483
title: Challenge 1 Title
challengeId: 8b439e84-bc99-11e8-a7f4-06cfa4e7b2f4
trainingSeriesUserAssignmentId: d07067f8-bc99-11e8-bb1c-06cfa4e7b2f4
dueDate: 1538784000000
reviewersDueDate: null
isSubmitted: false
isPartiallyGraded: false
isFullyGraded: false
calculatedGrade: 0
passed: false
createdAt: 1537422945092
updatedAt: 1541702793186
completedAt: null
completionPercentage: 0
- id: 32509f28-4044-11e9-823e-06cfa4e7b2f4
userId: 27483
title: Challenge 2 Title
challengeId: eb6008b0-3ac6-11e9-b297-0260b0cd3c00
trainingSeriesUserAssignmentId: null
dueDate: 1553126400000
reviewersDueDate: 1553817600000
isSubmitted: false
isPartiallyGraded: false
isFullyGraded: false
calculatedGrade: 0
passed: false
createdAt: 1551899725760
updatedAt: 1551899725919
completedAt: null
completionPercentage: 0
scormAssignments:
- id: 019659d6-4c16-7707-bc7e-966a6cfa3a0b
topLevelContentId: 019659d6-6758-7f30-af63-9446f9011d1e
isCompleted: true
completionPercentage: 100
score: 100
dueAt: 1551899725760
dueDate: 1551899725760
tags:
- Ad Solutions
- Trending Takeover
- Reddit Takeover
- Front Page Takeover
- Category Takeover
- Takeovers
trainingSeriesUserAssignmentIds:
- 01965e3b-1627-7bfc-a1d3-01d28d78e873
- 01965e3b-409f-7cad-b2fa-8889cffd799d
schema:
oneOf:
- title: legacy_mode
type: object
properties:
courseAssignments:
type: array
items:
type: object
properties:
id:
type: string
example: d20a8ddc-02ad-11e9-af0d-0260b0cd3c00
userId:
type: integer
example: 27483
default: 0
title:
type: string
example: Guide 1 Title
courseId:
type: string
example: c52ca028-02ad-11e9-8d2f-0260b0cd3c00
trainingSeriesUserAssignmentId: {}
dueDate:
type: integer
example: 1545955200000
default: 0
numViewedTasks:
type: integer
example: 3
default: 0
numCompletedTasks:
type: integer
example: 3
default: 0
numCompletedTestQuestions:
type: integer
example: 5
default: 0
numGradedTestQuestions:
type: integer
example: 4
default: 0
numCorrectTestQuestions:
type: integer
example: 3
default: 0
score:
type: integer
example: 75
default: 0
isArchived: {}
isCompleted:
type: boolean
example: false
default: true
createdAt:
type: integer
example: 1545128118800
default: 0
updatedAt:
type: integer
example: 1545328427200
default: 0
completedAt:
type: integer
example: 1545328427200
default: 0
completionPercentage:
type: integer
example: 100
default: 0
trainingSeriesAssignments:
type: array
items:
type: object
properties:
id:
type: string
example: d07067f8-bc99-11e8-bb1c-06cfa4e7b2f4
userId:
type: integer
example: 27483
default: 0
title:
type: string
example: Path 1 Title
trainingSeriesId:
type: string
example: 7d30e004-bc99-11e8-86d3-0260b0cd3c00
assignerId:
type: integer
example: 27484
default: 0
overallGrade: {}
isCompleted:
type: boolean
example: false
default: true
dueDate:
type: integer
example: 1538784000000
default: 0
createdAt:
type: integer
example: 1537422944784
default: 0
updatedAt:
type: integer
example: 1537422944784
default: 0
createdThrough: {}
numModules:
type: integer
example: 4
default: 0
modulesCompleted:
type: integer
example: 2
default: 0
completionPercentage:
type: integer
example: 50
default: 0
timeSpent:
type: integer
example: 32
default: 0
challengeAssignments:
type: array
items:
type: object
properties:
id:
type: string
example: d09f7598-bc99-11e8-bb1c-06cfa4e7b2f4
userId:
type: integer
example: 27483
default: 0
title:
type: string
example: Challenge 1 Title
challengeId:
type: string
example: 8b439e84-bc99-11e8-a7f4-06cfa4e7b2f4
trainingSeriesUserAssignmentId:
type: string
example: d07067f8-bc99-11e8-bb1c-06cfa4e7b2f4
dueDate:
type: integer
example: 1538784000000
default: 0
reviewersDueDate: {}
isSubmitted:
type: boolean
example: false
default: true
isPartiallyGraded:
type: boolean
example: false
default: true
isFullyGraded:
type: boolean
example: false
default: true
calculatedGrade:
type: integer
example: 0
default: 0
passed:
type: boolean
example: false
default: true
createdAt:
type: integer
example: 1537422945092
default: 0
updatedAt:
type: integer
example: 1541702793186
default: 0
completedAt: {}
completionPercentage:
type: integer
example: 0
default: 0
scormAssignments:
type: array
items:
type: object
properties:
id:
type: string
example: 019659d6-4c16-7707-bc7e-966a6cfa3a0b
topLevelContentId:
type: string
example: 019659d6-6758-7f30-af63-9446f9011d1e
isCompleted:
type: boolean
example: true
default: true
completionPercentage:
type: integer
example: 100
default: 0
score:
type: integer
example: 100
default: 0
dueAt:
type: integer
example: 1551899725760
default: 0
dueDate:
type: integer
example: 1551899725760
default: 0
tags:
type: array
items:
type: string
example: Ad Solutions
trainingSeriesUserAssignmentIds:
type: array
items:
type: string
example: 01965e3b-1627-7bfc-a1d3-01d28d78e873
- title: webhook_payloads
type: object
properties:
challengeAssignments:
type: array
guideAssignments:
type: array
pathAssignments:
type: array
scormAssignments:
type: array
- type: object
properties:
page:
type: number
default: '1'
per_page:
type: number
default: '20'
has_more:
type: boolean
default: 'false'
item_count:
type: number
url:
type: string
data:
type: object
properties:
challenge_assignments:
type: array
items:
properties: {}
type: object
guide_assignments:
type: array
items:
properties: {}
type: object
path_assignments:
type: array
items:
properties: {}
type: object
scorm_assignments:
type: array
items:
properties: {}
type: object
required:
- page
title: default
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: curl
code: 'curl https://app.workramp.com/api/v1/users/1/assignments \
-H "Authorization: Bearer ACCESS_TOKEN"
-H "Content-type: application/json" \'
samples-languages:
- curl
/api/v1/users/attributes:
get:
summary: Get All Users (Including Attributes)
description: 'This returns a list of all users, including built-in and custom attributes.
See also: Get All Users'
operationId: get-all-users-attributes
parameters:
- name: includeDeleted
in: query
description: Default behavior is to return custom attributes for users where isDeleted is "false".
You can set this parameter to "true" to return custom attributes for users where isDeleted is
either "true" or "false".
schema:
type: boolean
default: false
- in: query
name: legacy_mode
schema:
type: boolean
default: 'true'
description: For accounts provisioned prior to November 11, 2025, the optional query parameter
legacy_mode can be set to bypass pagination. When legacy_mode is enabled, the API will return
the entire result set in a single, non-paginated response.
- in: query
name: page
schema:
type: integer
format: int32
default: '1'
description: 'Page of results to return
'
- in: query
name: per_page
schema:
type: integer
format: int32
default: '20'
description: Number of results to return per page (1-200)
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
page:
type: number
default: '1'
per_page:
type: number
default: '20'
has_more:
type: boolean
default: 'false'
item_count:
type: number
url:
type: string
data:
type: object
properties:
users:
type: array
items:
properties:
id:
type: number
name:
type: string
email:
type: string
is_admin:
type: boolean
is_deleted:
type: boolean
is_permanently_deleted:
type: boolean
created_at:
type: number
updated_at:
type: number
custom_attributes:
type: object
properties:
id:
type: number
api_name:
type: string
value:
type: string
type: object
required:
- page
examples:
OK:
summary: OK
value: "{\n \"page\": 1,\n \"per_page\": 20,\n \"has_more\": false,\n \"item_count\"\
: 3,\n \"url\": \"/api/v1/users/attributes\",\n \"data\": {\n \"users\": [\n\
\ {\n \"id\": 1925,\n \"name\": \"John Doe\",\n \"email\"\
: \"johndoe@workramp.com\",\n \"is_admin\": false,\n \"is_deleted\"\
: false,\n \"is_permanently_deleted\": false,\n \"created_at\": 1466832522352,\n\
\ \"updated_at\": 1469950882089,\n \"custom_attributes\": [\n \
\ {\n \"id\": 13,\n \"api_name\": \"custom_attribute\",\n\
\ \"value\": \"Custom Attribute Value\"\n },\n {\n \
\ \"id\": 15,\n \"api_name\": \"custom_attribute\",\n \
\ \"value\": \"Custom Attribute Value\"\n }\n ]\n },\n \
\ {\n \"id\": 1954,\n \"name\": \"Beth Samuels\",\n \"email\"\
: \"bethsamuels@workramp.com\",\n \"is_admin\": true,\n \"is_deleted\"\
: false,\n \"is_permanently_deleted\": false,\n \"created_at\": 1467515797325,\n\
\ \"updated_at\": 1467515860387,\n \"custom_attributes\": [\n \
\ {\n \"id\": 13,\n \"api_name\": \"custom_attribute\",\n\
\ \"value\": \"Custom Attribute Value\"\n }\n ]\n \
\ },\n {\n \"id\": 1955,\n \"name\": \"Julie Thomas\",\n \
\ \"email\": \"juliethomas@workramp.com\",\n \"is_admin\": false,\n \
\ \"is_deleted\": false,\n \"is_permanently_deleted\": false,\n \"\
created_at\": 1467515822265,\n \"updated_at\": 14"
OK - legacy_mode:
summary: OK - legacy_mode
value:
- id: 1925
name: John Doe
email: johndoe@workramp.com
isAdmin: false
isDeleted: false
isPermanentlyDeleted: false
createdAt: 1466832522351.831
updatedAt: 1469950882088.9028
customAttributes:
- id: 13
apiName: custom_attribute
value: Custom Attribute Value
- id: 15
apiName: custom_attribute
value: Custom Attribute Value
- id: 1954
name: Beth Samuels
email: bethsamuels@workramp.com
isAdmin: true
isDeleted: false
isPermanentlyDeleted: false
createdAt: 1467515797325.3892
updatedAt: 1467515860387.0022
customAttributes:
- id: 13
apiName: custom_attribute
value: Custom Attribute Value
- id: 1955
name: Julie Thomas
email: juliethomas@workramp.com
isAdmin: false
isDeleted: false
isPermanentlyDeleted: false
createdAt: 1467515822265.4888
updatedAt: 1467515932613.6372
directReports: []
certifications: []
customAttributes: []
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/attributes/user/:user_id:
get:
summary: List a User's Custom Attributes
description: List a user's custom attributes
operationId: list-custom-user-attributes
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \t\"Location\": \"Building 1\",\n \"Indirect manager\": \"Michael M.\"\
\n}"
schema:
type: object
properties:
Location:
type: string
example: Building 1
Indirect manager:
type: string
example: Michael M.
deprecated: false
/api/v1/guides:
get:
summary: Get All Guides
description: ''
operationId: get-all-guides
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
page:
type: number
default: '1'
per_page:
type: number
default: '20'
has_more:
type: boolean
default: 'false'
item_count:
type: number
url:
type: string
data:
type: object
properties:
guides:
type: array
items:
properties:
id:
type: string
title:
type: string
num_total_tasks:
type: number
num_total_test_questions:
type: number
created_at:
type: number
updated_at:
type: number
tags:
type: array
items:
type: string
type: object
required:
- page
examples:
OK:
summary: OK
value:
page: 1
per_page: 20
has_more: false
item_count: 5
url: /api/v1/guides
data:
guides:
- id: 5525a100-50a1-11e6-b0f4-06871305d8f3
title: Sales Onboarding
num_total_tasks: 20
num_total_test_questions: 45
created_at: 1469256453510
updated_at: 1469422217610
tags:
- Sales
- Onboarding
- id: 1311829e-3a33-11e6-b978-06d818d6b395
title: CSM Onboarding
num_total_tasks: 15
num_total_test_questions: 20
created_at: 1466831403590
updated_at: 1469949861174
tags:
- Onboarding
- id: 1309d2f0-3a94-11e6-ba78-06d818a6b395
title: Challenger Training Prework
num_total_tasks: 8
num_total_test_questions: 20
created_at: 1466831833036
updated_at: 1466832487093
tags: []
- id: 53fd4646-3c17-a1e6-9484-0ad818a6b395
title: API Overview
num_total_tasks: 7
num_total_test_questions: 5
created_at: 1466998157240
updated_at: 1466998157240
tags: []
- id: 6b3a41da-56f5-a1e6-ae63-06d818a6b395
title: New Product Releases
num_total_tasks: 8
num_total_test_questions: 15
created_at: 1469952274733
updated_at: 1469952509535
tags:
- Releases
OK - legacy_mode:
summary: OK - legacy_mode
value:
- id: 5525a100-50a1-11e6-b0f4-06871305d8f3
title: Sales Onboarding
numTotalTasks: 20
numTotalTestQuestions: 45
createdAt: 1469256453510.3901
updatedAt: 1469422217609.812
tags:
- Sales
- Onboarding
- id: 1311829e-3a33-11e6-b978-06d818d6b395
title: CSM Onboarding
numTotalTasks: 15
numTotalTestQuestions: 20
createdAt: 1466831403589.577
updatedAt: 1469949861173.6838
tags:
- Onboarding
- id: 1309d2f0-3a94-11e6-ba78-06d818a6b395
title: Challenger Training Prework
numTotalTasks: 8
numTotalTestQuestions: 20
createdAt: 1466831833035.932
updatedAt: 1466832487092.9001
tags: []
- id: 53fd4646-3c17-a1e6-9484-0ad818a6b395
title: API Overview
numTotalTasks: 7
numTotalTestQuestions: 5
createdAt: 1466998157239.662
updatedAt: 1466998157239.662
tags: []
- id: 6b3a41da-56f5-a1e6-ae63-06d818a6b395
title: New Product Releases
numTotalTasks: 8
numTotalTestQuestions: 15
createdAt: 1469952274733.3948
updatedAt: 1469952509534.7478
tags:
- Releases
deprecated: false
parameters:
- in: query
name: legacy_mode
schema:
type: boolean
default: 'true'
description: For accounts provisioned prior to November 11, 2025, the optional query parameter
legacy_mode can be set to bypass pagination. When legacy_mode is enabled, the API will return
the entire result set in a single, non-paginated response.
- in: query
name: page
schema:
type: integer
default: '1'
format: int32
description: 'Page of results to return
'
- in: query
name: per_page
schema:
type: integer
default: '20'
format: int32
description: Number of results to return per page (1-200)
/api/v1/guides/{GuideID}/assignments:
get:
summary: Get All Assignments for a Guide
description: Get all assignment for a specified guide
operationId: get-all-assignments-for-a-guide
parameters:
- name: user_id
in: query
description: 'Optional parameter: only assignments for this user id will be returned in the response'
schema:
type: integer
format: int32
- name: GuideID
in: path
description: ID of the guide to get assignments for
schema:
type: string
required: true
- in: query
name: legacy_mode
schema:
type: boolean
default: 'true'
description: For accounts provisioned prior to November 11, 2025, the optional query parameter
legacy_mode can be set to bypass pagination. When legacy_mode is enabled, the API will return
the entire result set in a single, non-paginated response.
- in: query
name: page
schema:
type: integer
format: int32
default: '1'
description: Page of results to return
- in: query
name: per_page
schema:
type: integer
format: int32
default: '20'
description: Number of results to return per page (1-200)
responses:
'200':
description: OK
content:
application/json:
examples:
OK:
summary: OK
value: "{\"page\" => 1,\n \"per_page\" => 20,\n \"has_more\" => false,\n \"item_count\"\
\ => 2,\n \"url\" => \"/api/v1/guides/019adb1d-ad5f-729e-8411-6c784bf94ddf/assignments\"\
,\n \"data\" =>\n {\"assignments\" =>\n [{\"id\" => \"019adb1d-aede-7747-a5dc-ad0de8f8a734\"\
,\n \"user_id\" => 73,\n \"title\" => \"Biomedical Science\",\n \"\
course_id\" => \"019adb1d-ad5f-729e-8411-6c784bf94ddf\",\n \"training_series_user_assignment_id\"\
\ => nil,\n \"training_series_user_assignment_ids\" =>\n [\"019adb1d-aeb5-7364-89a2-368611243b5d\"\
,\n \"019adb1d-aec0-7add-ae2f-216ee4dfa677\"],\n \"assigner_id\" => 70,\n\
\ \"due_date\" => nil,\n \"num_viewed_tasks\" => 1,\n \"num_completed_tasks\"\
\ => 0,\n \"num_completed_test_questions\" => nil,\n \"num_graded_test_questions\"\
\ => 0,\n \"num_correct_test_questions\" => 0,\n \"score\" => nil,\n \
\ \"is_archived\" => false,\n \"is_completed\" => false,\n \"completion_percentage\"\
\ => 0,\n \"created_at\" => 1764612746974,\n \"updated_at\" => 1764612746974,\n\
\ \"completed_at\" => nil,\n \"tags\" => [nil, nil],\n \"status\" =>\
\ \"not_started\",\n \"is_completed_on_time\" => nil,\n \"passed\" => false,\n\
\ \"passing_grade_required\" => nil,\n \"is_overdue\" => false,\n \"\
num_days_overdue\" => nil,\n \"is_retaken\" => false,\n \"retake_count\"\
\ => 0,\n \"time_spent\" => nil,\n \"first_accessed_at\" => nil,\n \
\ \"last_accessed_at\" => nil,\n \"paths\" =>\n [{\"id\" => \"019adb1d-ae17-726c-95cb-4e121b08c643\"\
,\n \"name\" => \"Dave O'Connell DDS\"},\n {\"id\" => \"019adb1d-ae52-7e1a-8c08-5eab7adbf473\"\
,\n \"name\" => \"Alysa Ferry\"}]},\n {\"id\" => \"019adb1d-aee5-780c-8680-4b2d27c6c54c\"\
,\n \"user_id\" => 70,\n \"title\" => \"Biomedical Science\",\n \"\
course_id\" => \"019adb1d-ad5f-729e-8411-6c784bf94ddf\",\n \"training_series_user_assignment_id\"\
\ => nil,\n \"training_series_user_assignment_ids\" =>\n [\"019adb1d-aeba-7b09-8394-565b1ce02751\"\
,\n \"019adb1d-aec5-7e30-9ba2-58e669924f30\"],\n \"assigner_id\" => 70,\n\
\ \"due_date\" => nil,\n \"num_viewed_tasks\" => 1,\n \"num_completed_tasks\"\
\ => 0,\n \"num_completed_test_questions\" => nil,\n \"num_graded_test_questions\"\
\ => 0,\n \"num_correct_test_questions\" => 0,\n \"score\" => nil,\n \
\ \"is_archived\" => false,\n \"is_completed\" => false,\n \"completion_percentage\"\
\ => 0,\n \"created_at\" => 1764612746981,\n \"updated_at\" => 1764612746981,\n\
\ \"completed_at\" => nil,\n \"tags\" => [nil, nil],\n \"status\" =>\
\ \"not_started\",\n \"is_completed_on_time\" => nil,\n \"passed\" => false,\n\
\ \"passing_grade_required\" => nil,\n \"is_overdue\" => false,\n \"\
num_days_overdue\" => nil,\n \"is_retaken\" => false,\n \"retake_count\"\
\ => 0,\n \"time_spent\" => nil,\n \"first_accessed_at\" => nil,\n \
\ \"last_accessed_at\" => nil,\n \"paths\" =>\n [{\"id\" => \"019adb1d-ae17-726c-95cb-4e121b08c643\"\
,\n \"name\" => \"Dave O'Connell DDS\"},\n {\"id\" => \"019adb1d-ae52-7e1a-8c08-5eab7adbf473\"\
,\n \"name\" => \"Alysa Ferry\"}]}]}}"
OK - legacy_mode:
summary: OK - legacy_mode
value: "[\n {\n \"id\": \"8f44e9fa-56ef-11e6-8622-06871305d8f3\",\n \
\ \"userId\": 1955,\n \"title\": \"Guide 1 Title\",\n \"courseId\"\
: \"e585fd3e-509d-11e6-9bd0-06d818a6b395\",\n \"dueDate\": 1469689200000,\n\
\ \"numViewedTasks\": 1,\n \"numCompletedTasks\": 0,\n \"numCompletedTestQuestions\"\
: 0,\n \"numGradedTestQuestions\": 0,\n \"numCorrectTestQuestions\"\
: 0,\n \"score\": null,\n \"isArchived\": null,\n \"isCompleted\"\
: false,\n \"createdAt\": 1469949758220,\n \"updatedAt\": 1471145372226,\n\
\ \"completedAt\": null,\n \t\"completionPercentage\": 0,\n \"\
timeSpent\": 0,\n \"tags\": [\n \t\"Guide 1\"\n ],\n \"\
paths\": [\n {\n \"id\": \"8f44e9fa-56ef-11e6-a622-06871305d8f3\"\
,\n \"title\": \"Path 1 Title\"\n },\n {\n \
\ \"id\": \"8f4as9fa-56ef-d1e6-a122-068713addd8f3\",\n \"title\": \"Path\
\ 2 Title\"\n },\n ]\n },\n {\n \"id\": \"348bbdd8-509e-11e6-b0f4-06871305d8f3\"\
,\n \"userId\": 1918,\n \"title\": \"Guide 1 Title\",\n \"courseId\"\
: \"e585fd3e-509d-11e6-9bd0-06d818a6b395\",\n \"dueDate\": 1469775600000,\n\
\ \"numViewedTasks\": 7,\n \"numCompletedTasks\": 2,\n \"numCompletedTestQuestions\"\
: 1,\n \"numGradedTestQuestions\": 1,\n \"numCorrectTestQuestions\"\
: 1,\n \"score\": 100.0,\n \"isArchived\": null,\n \"isCompleted\"\
: false,\n \"createdAt\": 1469255109800,\n \"updatedAt\": 1491615188754,\n\
\ \"completedAt\": null,\n \t\"completionPercentage\": 28,\n \"\
timeSpent\": 0,\n \t\"tags\": [\n \t\"Guide 1\"\n ],\n \"\
paths\": []\n },\n {\n \"id\": \"2b1b2c8e-509e-11e6-9bd0-06d818a6b395\"\
,\n \"userId\": 1923,\n \"title\": \"Guide 1 Title\",\n \"courseId\"\
: \"e585fd3e-509d-11e6-9bd0-06d818a6b395\",\n \"dueDate\": 1469775600000,\n\
\ \"numViewedTasks\": 0,\n \"numCompletedTasks\": 0,\n \"numCompletedTestQuestions\"\
: 0,\n \"numGradedTestQuestions\": 0,\n \"numCorrectTestQuestions\"\
: 0,\n \"score\": null,\n \"isArchived\": null,\n \"isCompleted\"\
: true,\n \"createdAt\": 1469255093963,\n \"updatedAt\": 1471145372967,\n\
\ \"completedAt\": 1544579460840,\n \t\"completionPercentage\": 100,\n\
\ \"timeSpent\": 100,\n \t\"tags\": [\n \t\"Guide 1\"\n \
\ ],\n \"paths\": []\n }\n]"
schema:
type: object
properties:
page:
type: string
per_page:
type: string
has_more:
type: string
item_count:
type: string
url:
type: string
data:
type: object
properties:
assignments:
type: array
items:
properties: {}
type: object
required:
- page
deprecated: false
/api/v1/guide_assignments/{GuideAssignmentID}:
delete:
summary: Delete Assignment
description: Update an assignment for a user
operationId: delete-assignment
parameters:
- name: GuideAssignmentID
in: path
description: ID of the assignment to delete
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: 'true
'
schema:
type: boolean
example: true
default: true
deprecated: false
/api/v1/{UserID}/guide_assignments:
get:
summary: Get Assignments for User
description: Gets assignments for a specific user.
operationId: get-assignments-for-user
parameters:
- name: UserID
in: path
description: ID of the user to fetch assignments for
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "[\n { \n \"userId\":\"assignment.user_id\",\n \"courseId\":\"assignment.course_id\"\
,\n \"dueDate\":\"assignment.due_date\",\n \"numViewedTasks\":\"assignment.num_viewed_tasks\"\
,\n \"numCompletedTasks\":\"assignment.num_completed_tasks\",\n \"numCompletedTestQuestions\"\
:\"assignment.num_completed_test_questions\",\n \"isCompleted\":\"assignment.is_completed\"\
,\n \"isArchived\":\"assignment.is_archived\"\n\t}, \n\t{ \n \"userId\"\
:\"assignment.user_id\",\n \"courseId\":\"assignment.course_id\",\n \"dueDate\"\
:\"assignment.due_date\",\n \"numViewedTasks\":\"assignment.num_viewed_tasks\"\
,\n \"numCompletedTasks\":\"assignment.num_completed_tasks\",\n \"numCompletedTestQuestions\"\
:\"assignment.num_completed_test_questions\",\n \"isCompleted\":\"assignment.is_completed\"\
,\n \"isArchived\":\"assignment.is_archived\"\n\t},\n ...\n]"
deprecated: false
/api/v1/logs/guide_assignments?startTime={startTime}&endTime={endTime}:
get:
summary: Get All Guide Assignment Changes
description: ''
operationId: get-all-guide-assignment-changes
parameters:
- name: startTime
in: query
description: Any path events occurring after this time will be returned (in unixtime in milliseconds)
required: true
schema:
type: integer
format: int64
- name: endTime
in: query
description: Any path events occurring before this time will be returned (in unixtime in milliseconds)
required: true
schema:
type: integer
format: int64
- name: limit
in: query
description: Max value of 10,000
schema:
type: integer
format: int32
default: 1000
- name: offset
in: query
schema:
type: integer
format: int32
default: 0
- name: createdThrough
in: query
description: A tag that can be used to filter which changes are returned in the response. This
tag should match what was passed in when creating the path/guide assignment originally.
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "[\n {\n \t\"guideId\": \"6192892b-11e9-4ad8-bd04-8bdc7df9726b\",\n \
\ \t\"id\": \"b03a11c5-507a-4c95-8e56-24088d4c0023\",\n \"occurredAt\"\
: 1557462936300,\n \t\"status\": \"assigned\",\n \"trainingSeriesId\"\
: \"eeb14848-a13e-4ca2-b902-6c0a7d0bb570\",\n \"guideName\": \"test guide 1\"\
,\n \"userId\": 100,\n \t\"userEmail\": \"user1@workramp.com\"\n },\n\
\ \t{\n \t\"guideId\": \"dcd63edd-9b02-44cf-8c93-c266bc172064\",\n \t\"\
id\": \"f6c981f9-65f4-48ba-bb0c-0a96138b85bd\",\n \"occurredAt\": 1557462936300,\n\
\ \t\"status\": \"completed\",\n \"trainingSeriesId\": \"eeb14848-a13e-4ca2-b902-6c0a7d0bb570\"\
,\n \"guideName\": \"test guide 2\",\n \"userId\": 100,\n \t\"\
userEmail\": \"user1@workramp.com\"\n },\n \t{\n \t\"guideId\": \"6192892b-11e9-4ad8-bd04-8bdc7df9726b\"\
,\n \t\"id\": \"d834db1f-a3d6-46cf-ab63-724d1055b350\",\n \"occurredAt\"\
: 1557462936300,\n \t\"status\": \"deleted\",\n \"trainingSeriesId\":\
\ \"eeb14848-a13e-4ca2-b902-6c0a7d0bb570\",\n \"guideName\": \"test guide 1\"\
,\n \"userId\": 105,\n \t\"userEmail\": \"user2@workramp.com\"\n }\n\
]"
schema:
type: array
items:
type: object
properties:
guideId:
type: string
example: 6192892b-11e9-4ad8-bd04-8bdc7df9726b
id:
type: string
example: b03a11c5-507a-4c95-8e56-24088d4c0023
occurredAt:
type: integer
example: 1557462936300
default: 0
status:
type: string
example: assigned
trainingSeriesId:
type: string
example: eeb14848-a13e-4ca2-b902-6c0a7d0bb570
guideName:
type: string
example: test guide 1
userId:
type: integer
example: 100
default: 0
userEmail:
type: string
example: user1@workramp.com
deprecated: false
/api/v1/logs/guides:
get:
summary: Get All Unique Guide Assignment Changes
description: ''
operationId: get-all-unique-guide-assignment-changes
parameters:
- name: startTime
in: query
description: Any path events occurring after this time will be returned (in unixtime in milliseconds)
required: true
schema:
type: integer
format: int64
- name: endTime
in: query
description: Any path events occurring before this time will be returned (in unixtime in milliseconds)
required: true
schema:
type: integer
format: int64
- name: limit
in: query
description: Max value of 10,000
schema:
type: integer
format: int32
default: 1000
- name: offset
in: query
schema:
type: integer
format: int32
default: 0
- name: createdThrough
in: query
description: A tag that can be used to filter which changes are returned in the response. This
tag should match what was passed in when creating the path/guide assignment originally.
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "[\n {\n \t\"guideId\": \"6192892b-11e9-4ad8-bd04-8bdc7df9726b\",\n \
\ \t\"id\": \"b03a11c5-507a-4c95-8e56-24088d4c0023\",\n \"occurredAt\"\
: 1557462936300,\n \t\"status\": \"assigned\",\n \"trainingSeriesId\"\
: \"eeb14848-a13e-4ca2-b902-6c0a7d0bb570\",\n \"guideName\": \"test guide 1\"\
,\n \"userId\": 100,\n \t\"userEmail\": \"user1@workramp.com\"\n },\n\
\ \t{\n \t\"guideId\": \"dcd63edd-9b02-44cf-8c93-c266bc172064\",\n \t\"\
id\": \"f6c981f9-65f4-48ba-bb0c-0a96138b85bd\",\n \"occurredAt\": 1557462936300,\n\
\ \t\"status\": \"completed\",\n \"trainingSeriesId\": \"eeb14848-a13e-4ca2-b902-6c0a7d0bb570\"\
,\n \"guideName\": \"test guide 2\",\n \"userId\": 100,\n \t\"\
userEmail\": \"user1@workramp.com\"\n },\n \t{\n \t\"guideId\": \"6192892b-11e9-4ad8-bd04-8bdc7df9726b\"\
,\n \t\"id\": \"d834db1f-a3d6-46cf-ab63-724d1055b350\",\n \"occurredAt\"\
: 1557462936300,\n \t\"status\": \"deleted\",\n \"trainingSeriesId\":\
\ \"eeb14848-a13e-4ca2-b902-6c0a7d0bb570\",\n \"guideName\": \"test guide 1\"\
,\n \"userId\": 105,\n \t\"userEmail\": \"user2@workramp.com\"\n }\n\
]"
schema:
type: array
items:
type: object
properties:
guideId:
type: string
example: 6192892b-11e9-4ad8-bd04-8bdc7df9726b
id:
type: string
example: b03a11c5-507a-4c95-8e56-24088d4c0023
occurredAt:
type: integer
example: 1557462936300
default: 0
status:
type: string
example: assigned
trainingSeriesId:
type: string
example: eeb14848-a13e-4ca2-b902-6c0a7d0bb570
guideName:
type: string
example: test guide 1
userId:
type: integer
example: 100
default: 0
userEmail:
type: string
example: user1@workramp.com
deprecated: false
/api/v1/paths:
get:
summary: Get All Paths
description: ''
operationId: get-all-paths
parameters:
- name: Authorization
in: header
schema:
type: string
- in: query
name: legacy_mode
schema:
type: boolean
default: 'true'
description: For accounts provisioned prior to November 11, 2025, the optional query parameter
legacy_mode can be set to bypass pagination. When legacy_mode is enabled, the API will return
the entire result set in a single, non-paginated response.
- in: query
name: page
schema:
type: integer
format: int32
default: '1'
description: Page of results to return
- in: query
name: per_page
schema:
type: integer
format: int32
default: '20'
description: Number of results to return per page (1-200)
responses:
'200':
description: '200'
content:
application/json:
schema:
type: object
properties:
page:
type: number
default: '1'
per_page:
type: number
default: '20'
has_more:
type: boolean
default: 'false'
item_count:
type: number
url:
type: string
data:
type: object
properties:
paths:
type: array
items:
properties:
id:
type: string
name:
type: string
description:
type: string
sequential_unlock:
type: boolean
passing_score_required_for_unlock:
type: number
created_at:
type: number
updated_at:
type: number
card_banner:
type: string
time_estimate_seconds:
type: number
num_guides:
type: number
num_resources:
type: number
num_challenges:
type: number
tags:
type: array
items:
type: string
type: object
examples:
OK:
summary: OK
value:
page: 1
per_page: 20
has_more: false
item_count: 3
url: /api/v1/paths
data:
paths:
- id: 23af7b44-e671-11e7-bcac-02ae264840ac
name: My First Path
description: This is a path for onboarding
sequential_unlock: false
passing_score_required_for_unlock: false
created_at: 1513875926143
updated_at: 1513875940034
card_banner: https://bulletinboardfiles-dev.s3-us-west-1.amazonaws.com/uploads/bb/models/training_series/card_banner/678a1042-b4a3-11e9-a065-3af9d3af309e/test-image-1080p.jpg?X-Amz-Expires=86400&X-Amz-Date=20190813T184459Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=REDACTED_AWS_ACCESS_KEY_ID/20190813/us-west-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=cfa268e5e8a8ff1fe57ea57c921b497d7933041b7c02c247540a2e982ba6cc89
time_estimate_seconds: 18000
num_guides: 3
num_resources: 1
num_challenges: 1
tags:
- Onboarding
- id: 72713b46-f738-11e7-a950-06a818a6b395
name: My Second Path
description: This is a path that I'm testing out
sequential_unlock: false
passing_score_required_for_unlock: false
created_at: 1515720753544
updated_at: 1515720775278
card_banner: https://bulletinboardfiles-dev.s3-us-west-1.amazonaws.com/uploads/bb/models/training_series/card_banner/678a1042-b4a3-11e9-a065-3af9d3af309e/test-image-1080p.jpg?X-Amz-Expires=86400&X-Amz-Date=20190813T184459Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=REDACTED_AWS_ACCESS_KEY_ID/20190813/us-west-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=cfa268e5e8a8ff1fe57ea57c921b497d7933041b7c02c247540a2e982ba6cc89
time_estimate_seconds: 12000
num_guides: 3
num_resources: 3
num_challenges: 4
tags:
- Testing
- id: 2c343060-f739-11e7-9e82-02ae164840ac
name: My Third Path
description: This is a new path
sequential_unlock: false
passing_score_required_for_unlock: false
created_at: 1515721056812
updated_at: 1515721056812
card_banner: https://bulletinboardfiles-dev.s3-us-west-1.amazonaws.com/uploads/bb/models/training_series/card_banner/678a1042-b4a3-11e9-a065-3af9d3af309e/test-image-1080p.jpg?X-Amz-Expires=86400&X-Amz-Date=20190813T184459Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=REDACTED_AWS_ACCESS_KEY_ID/20190813/us-west-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=cfa268e5e8a8ff1fe57ea57c921b497d7933041b7c02c247540a2e982ba6cc89
time_estimate_seconds: 6000
num_guides: 3
num_resources: 2
num_challenges: 6
tags: []
OK - legacy_mode:
summary: OK - legacy_mode
value: "[\n\n {\n\n \"id\": \"23af7b44-e671-11e7-bcac-02ae264840ac\",\n\n \"\
name\": \"My First Path\",\n\n \"description\": \"This is a path for onboarding\"\
,\n\n \"sequentialUnlock\": false,\n\n \"passingScoreRequiredForUnlock\": false,\n\
\n \"createdAt\": 1513875926143,\n\n \"updatedAt\": 1513875940034,\n\n \"\
cardBanner\": \"https://bulletinboardfiles-dev.s3-us-west-1.amazonaws.com/uploads/bb/models/training_series/card_banner/678a1042-b4a3-11e9-a065-3af9d3af309e/test-image-1080p.jpg?X-Amz-Expires=86400&X-Amz-Date=20190813T184459Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=REDACTED_AWS_ACCESS_KEY_ID/20190813/us-west-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=cfa268e5e8a8ff1fe57ea57c921b497d7933041b7c02c247540a2e982ba6cc89\"\
,\n\n \"timeEstimateSeconds\": 18000,\n\n \"numGuides\": 3,\n\n \"numResources\"\
: 1,\n\n \"numChallenges\": 1,\n\n \"tags\": [\n\n \"Onboarding\"\n\n \
\ ]\n\n },\n\n {\n\n \"id\": \"72713b46-f738-11e7-a950-06a818a6b395\",\n\n\
\ \"name\": \"My Second Path\",\n\n \"description\": \"This is a path that I'm\
\ testing out\",\n\n \"sequentialUnlock\": false,\n\n \"passingScoreRequiredForUnlock\"\
: false,\n\n \"createdAt\": 1515720753544,\n\n \"updatedAt\": 1515720775278,\n\
\n \"cardBanner\": \"https://bulletinboardfiles-dev.s3-us-west-1.amazonaws.com/uploads/bb/models/training_series/card_banner/678a1042-b4a3-11e9-a065-3af9d3af309e/test-image-1080p.jpg?X-Amz-Expires=86400&X-Amz-Date=20190813T184459Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=REDACTED_AWS_ACCESS_KEY_ID/20190813/us-west-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=cfa268e5e8a8ff1fe57ea57c921b497d7933041b7c02c247540a2e982ba6cc89\"\
,\n\n \"timeEstimateSeconds\": 12000,\n\n \"numGuides\": 3,\n\n \"numResources\"\
: 3,\n\n \"numChallenges\": 4,\n\n \"tags\": [\n\n \"Testing\"\n\n ]\n\
\n },\n\n {\n\n \"id\": \"2c343060-f739-11e7-9e82-02ae164840ac\",\n\n \"name\"\
: \"My Third Path\",\n\n \"description\": \"This is a new path\",\n\n \"sequentialUnlock\"\
: false,\n\n \"passingScoreRequiredForUnlock\": false,\n\n \"createdAt\": 1515721056812,\n\
\n \"updatedAt\": 1515721056812,\n\n \"cardBanner\": \"https://bulletinboardfiles-dev.s3-us-west-1.amazonaws.com/uploads/bb/models/training_series/card_banner/678a1042-b4a3-11e9-a065-3af9d3af309e/test-image-1080p.jpg?X-Amz-Expires=86400&X-Amz-Date=20190813T184459Z&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=REDACTED_AWS_ACCESS_KEY_ID/20190813/us-west-1/s3/aws4_request&X-Amz-SignedHeaders=host&X-Amz-Signature=cfa268e5e8a8ff1fe57ea57c921b497d7933041b7c02c247540a2e982ba6cc89\"\
,\n\n \"timeEstimateSeconds\": 6000,\n\n \"numGuides\": 3,\n\n \"numResources\"\
: 2,\n\n \"numChallenges\": 6,\n\n \"tags\": []\n\n }\n\n]\n\nto be in this\
\ format:\n\n{\"page\" => 1,\n\n \"per_page\" => 20,\n\n \"has_more\" => false,\n\n\
\ \"item_count\" => 1,\n\n \"url\" => \"/api/v1/paths\",\n\n \"data\" =>\n\n {\"\
paths\" =>\n\n [{\"id\" => \"019adb25-bbbe-75e5-99b8-6ecb84fa1821\",\n\n \"\
name\" => \"empty path\",\n\n \"description\" => nil,\n\n \"sequential_unlock\"\
\ => nil,\n\n \"passing_score_required_for_unlock\" => nil,\n\n \"created_at\"\
\ => 1764613274558,\n\n \"updated_at\" => 1764613274639,\n\n \"card_banner\"\
\ => nil,\n\n \"time_estimate_seconds\" => nil,\n\n \"num_guides\" => 0,\n\
\n \"num_resources\" => 0,\n\n \"num_challenges\" => 0,\n\n \"tags\"\
\ => []}]}}"
deprecated: false
x-readme:
code-samples:
- language: curl
code: 'curl https://app.workramp.com/api/v1/paths \
-H "Authorization: Bearer ACCESS_TOKEN"'
samples-languages:
- curl
/api/v1/paths/{path_id}/assignments:
get:
summary: Get All Assignments for a Path
description: Get all assignments for a path
operationId: get-all-assignments-for-a-path
parameters:
- name: Authorization
in: header
schema:
type: string
- name: user_id
in: query
description: 'Optional parameter: only assignments for this user id will be returned in the response'
schema:
type: integer
format: int32
- name: path_id
in: path
description: ID of the path
schema:
type: string
required: true
- in: query
name: legacy_mode
schema:
type: boolean
default: 'true'
description: For accounts provisioned prior to November 11, 2025, the optional query parameter
legacy_mode can be set to bypass pagination. When legacy_mode is enabled, the API will return
the entire result set in a single, non-paginated response.
- in: query
name: page
schema:
type: integer
format: int32
default: '1'
description: Page of results to return
- in: query
name: per_page
schema:
type: integer
format: int32
default: '20'
description: Number of results to return per page (1-200)
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
page:
type: number
default: '1'
per_page:
type: number
default: '20'
has_more:
type: boolean
default: 'false'
item_count:
type: string
url:
type: string
data:
type: object
properties:
assignments:
type: array
items:
properties:
id:
type: string
user_id:
type: string
title:
type: string
training_series_id:
type: string
assigner_id:
type: string
overall_grade:
type: number
is_completed:
type: boolean
due_date:
type: number
created_at:
type: number
updated_at:
type: number
created_through:
type: string
num_modules:
type: number
modules_completed:
type: number
completion_percentage:
type: number
completed_at:
type: number
tags:
type: array
items:
type: string
time_spent:
type: string
status:
type: string
is_completed_on_time:
type: boolean
passed:
type: boolean
passing_grade_required:
type: boolean
is_overdue:
type: boolean
num_days_overdue:
type: number
first_accessed_at:
type: number
last_accessed_at:
type: number
type: object
required:
- page
examples:
OK:
summary: OK
value:
page: 1
per_page: 2
has_more: true
item_count: 2
url: /api/v1/paths/96d27096-5d63-435f-949e-5170cab307d1/assignments
data:
assignments:
- id: 9b4cdf9b-90cb-4853-989d-42e76718f1e6
user_id: 12345
title: How to make cupcakes
training_series_id: 96d27096-5d63-435f-949e-5170cab307d1
assigner_id: 1234
overall_grade: null
is_completed: false
due_date: 1767254400000
created_at: 1765316990000
updated_at: 1765316990000
created_through: Automatic Assignment
num_modules: 1
modules_completed: 0
completion_percentage: 0
completed_at: null
tags:
- MyTag
- AnotherTag
time_spent: null
status: not_started
is_completed_on_time: null
passed: false
passing_grade_required: null
is_overdue: false
num_days_overdue: null
first_accessed_at: null
last_accessed_at: null
- id: 4c429d58-6d4e-4901-8350-8314e858d1b5
user_id: 234324
title: How to make a great cup of coffee
training_series_id: 96d27096-5d63-435f-949e-5170cab307d1
assigner_id: 1234
overall_grade: null
is_completed: false
due_date: 1767254400000
created_at: 1765316990000
updated_at: 1765316990000
created_through: Automatic Assignment
num_modules: 1
modules_completed: 0
completion_percentage: 0
completed_at: null
tags:
- MyTag
- AnotherTag
time_spent: null
status: not_started
is_completed_on_time: null
passed: false
passing_grade_required: null
is_overdue: false
num_days_overdue: null
first_accessed_at: null
last_accessed_at: null
OK - legacy_mode:
summary: OK - legacy_mode
value:
- id: 782a8f52-b069-11e8-8d40-06cfa4e7b2f4
userId: 2614323
trainingSeriesId: 2be286b4-ad4f-11e8-c7e9-065821035730
assignerId: 1156812
dueDate: 1536278400000
isCompleted: false
createdAt: 1536082766785
updatedAt: 1536082766785
createdThrough: null
numModules: 4
modulesCompleted: 2
completionPercentage: 50
timeSpent: 43
tags:
- Path Tag
- id: 37eb5c4e-b081-11e8-8600-0260b0cd3c00
userId: 1156832
trainingSeriesId: 2be286b4-ad4f-11e8-c7e9-065821035730
assignerId: 1156812
dueDate: 1536278400000
isCompleted: true
createdAt: 1536092966709
updatedAt: 1536092966709
createdThrough: null
numModules: 4
modulesCompleted: 2
completionPercentage: 100
timeSpent: null
tags:
- Path Tag
deprecated: false
/api/v1/path_assignments/{assignment_id}:
delete:
summary: Delete Path Assignment
description: Delete a specific assignment
operationId: delete-assignment-1
parameters:
- name: assignment_id
in: path
description: ID of the assignment to be unassigned
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: 'true
'
schema:
type: boolean
example: true
default: true
deprecated: false
/api/v1/certifications:
get:
summary: Get All Certifications
description: Fetches all badges created in /admin/badges
operationId: get-all-certifications-1
parameters:
- name: Authorization
in: header
schema:
type: string
- in: query
name: legacy_mode
schema:
type: boolean
default: 'true'
required: false
description: For accounts provisioned prior to November 11, 2025, the optional query parameter
legacy_mode can be set to bypass pagination. When legacy_mode is enabled, the API will return
the entire result set in a single, non-paginated response.
- in: query
name: page
schema:
type: integer
format: int32
default: '1'
description: Page of results to return
- in: query
name: per_page
schema:
type: integer
format: int32
default: '20'
description: Number of results to return per page (1-200)
responses:
'200':
description: Result
content:
application/json:
examples:
? ''
: summary: ''
value: '{}'
' Result':
summary: ' Result'
value:
page: 1
per_page: 20
has_more: false
item_count: 4
url: /api/v1/certifications
data:
certifications:
- id: ecfd0b48-62d2-11e6-8ef2-06871305d8f3
title: AE Onboarding
is_deleted: false
created_at: 1471146922841
updated_at: 1471146943642
- id: 662b500e-3a93-11e3-b978-06d818a6b395
title: SDR Level 2
is_deleted: false
created_at: 1466831543009
updated_at: 1466831544553
- id: 28a78272-50a3-11e6-b0f4-06571305d8f3
title: Challenger Sales
is_deleted: false
created_at: 1469257237333
updated_at: 1470530302845
- id: 01a1452e-61d3-11e6-bff9-06d818a6b395
title: CSM Champion
is_deleted: false
created_at: 1471146957891
updated_at: 1471146959834
Result - legacy_mode enabled:
summary: Result - legacy_mode enabled
value:
- id: ecfd0b48-62d2-11e6-8ef2-06871305d8f3
title: AE Onboarding
isDeleted: false
createdAt: 1471146922840.7722
updatedAt: 1471146943641.622
- id: 662b500e-3a93-11e3-b978-06d818a6b395
title: SDR Level 2
isDeleted: false
createdAt: 1466831543009.3372
updatedAt: 1466831544553.353
- id: 28a78272-50a3-11e6-b0f4-06571305d8f3
title: Challenger Sales
isDeleted: false
createdAt: 1469257237333.28
updatedAt: 1470530302844.82
- id: 01a1452e-61d3-11e6-bff9-06d818a6b395
title: CSM Champion
isDeleted: false
createdAt: 1471146957890.85
updatedAt: 1471146959834.044
schema:
type: object
properties:
page:
type: number
example: ecfd0b48-62d2-11e6-8ef2-06871305d8f3
default: '1'
per_page:
type: number
example: AE Onboarding
default: '20'
has_more:
type: boolean
example: false
default: 'false'
item_count:
type: number
example: 1471146922840.7722
default: 0
url:
type: string
example: 1471146943641.622
default: /api/v1/certifications
data:
type: object
properties:
certifications:
type: array
items:
properties:
id:
type: string
title:
type: string
is_deleted:
type: boolean
created_at:
type: number
updated_at:
type: number
type: object
deprecated: false
x-readme:
code-samples:
- language: curl
code: 'curl https://app.workramp.com/api/v1/certifications \
-H "Authorization: Bearer ACCESS_TOKEN"'
samples-languages:
- curl
/api/v1/certifications/{certification_id}/awards:
get:
summary: Get Awards by Certification
description: ''
operationId: get-all-certifications
parameters:
- name: Authorization
in: header
schema:
type: string
- name: certification_id
in: path
description: The id of the certification
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "[\n {\n \"id\": \"32eba0bc-3a94-11e6-a66e-06871305d8f3\",\n \"userId\"\
: 1918,\n \"courseUserAssignmentId\": \"269f9aac-3a94-11e6-aa93-06d818a6b395\"\
,\n \"certificationId\": \"662b500e-3a93-11e6-b978-06d818a6b395\",\n \"fileUrl\"\
: \"https://www.url/to/file\",\n \"createdAt\": 1466831886524.865,\n \"updatedAt\"\
: 1466831886524.865\n },\n {\n \"id\": \"00e7a0ea-40cd-11e6-b7d4-06871305d8f3\"\
,\n \"userId\": 1954,\n \"courseUserAssignmentId\": \"8d8965d4-40cc-11e6-9cc0-06871305d8f3\"\
,\n \"certificationId\": \"662b500e-3a93-11e6-b978-06d818a6b395\",\n \"fileUrl\"\
: \"https://www.url/to/file\",\n \"createdAt\": 1467515990902.8079,\n \"updatedAt\"\
: 1467515990902.8079\n },\n {\n \"id\": \"a94156f0-40cd-11e6-b7d4-06871305d8f3\"\
,\n \"userId\": 1918,\n \"courseUserAssignmentId\": \"98dcc09c-40cd-11e6-b7d4-06871305d8f3\"\
,\n \"certificationId\": \"662b500e-3a93-11e6-b978-06d818a6b395\",\n \"fileUrl\"\
: \"https://www.url/to/file\",\n \"createdAt\": 1467516273348.231,\n \"updatedAt\"\
: 1467516273348.231\n },\n {\n \"id\": \"e281f456-40cd-11e6-9dae-06d818a6b395\"\
,\n \"userId\": 1954,\n \"courseUserAssignmentId\": \"65ad9fe8-40cd-11e6-bbbc-06d818a6b395\"\
,\n \"certificationId\": \"662b500e-3a93-11e6-b978-06d818a6b395\",\n \"fileUrl\"\
: \"https://www.url/to/file\",\n \"createdAt\": 1467516369401.7869,\n \"updatedAt\"\
: 1467516369401.7869\n },\n {\n \"id\": \"fc9bf256-50a4-11e6-b0f4-06871305d8f3\"\
,\n \"userId\": 2062,\n \"courseUserAssignmentId\": \"b0aa4ec0-50a3-11e6-a8ea-06871305d8f3\"\
,\n \"certificationId\": \"662b500e-3a93-11e6-b978-06d818a6b395\",\n \"fileUrl\"\
: \"https://www.url/to/file\",\n \"createdAt\": 1469258022431.205,\n \"updatedAt\"\
: 1469258022431.205\n }\n]"
schema:
type: array
items:
type: object
properties:
id:
type: string
example: 32eba0bc-3a94-11e6-a66e-06871305d8f3
userId:
type: integer
example: 1918
default: 0
courseUserAssignmentId:
type: string
example: 269f9aac-3a94-11e6-aa93-06d818a6b395
certificationId:
type: string
example: 662b500e-3a93-11e6-b978-06d818a6b395
fileUrl:
type: string
example: https://www.url/to/file
createdAt:
type: number
example: 1466831886524.865
default: 0
updatedAt:
type: number
example: 1466831886524.865
default: 0
deprecated: false
x-readme:
code-samples:
- language: curl
code: 'curl https://app.workramp.com/api/v1/certifications/562b500e-3a93-11e6-b978-06d818a6b395/awards
\
-H "Authorization: Bearer ACCESS_TOKEN"'
samples-languages:
- curl
/api/v1/events/{event_id}/session/{session_id}:
get:
summary: Get Event Session
description: Get a specific session in an event
operationId: get-event-session
parameters:
- name: event_id
in: path
description: Event ID
schema:
type: string
required: true
- name: session_id
in: path
description: Event Session ID
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "\t\"id\": \"9fdbdf98-56b8-11ec-9b11-1e00533a9645\",\n\t\"trainingClassId\":\
\ \"dcb1ec60-56ad-11ec-9b11-1e00533a9645\",\n\t\"title\": \"Session #1\",\n\t\"trainingClassSessionInstructors\"\
: [\n\t\t{\n\t\t\t\"id\": \"7c446e8c-11de-11ee-b8a2-a22f70550673\",\n\t\t\t\"sessionId\"\
: \"9fdbdf98-56b8-11ec-9b11-1e00533a9645\",\n\t\t\t\"user\": {\n\t\t\t\t\"id\": 620,\n\
\t\t\t\t\"displayName\": \"Robbie Kertzmann\",\n\t\t\t\t\"email\": \"jacinto@stoltenberg.io\"\
\n\t\t\t}\n\t\t}\n\t],\n\t\"start\": 1640973600000,\n\t\"end\": 1640980800000,\n\t\
\"zoomMeetingId\": null,\n\t\"zoomMeetingStartUrl\": null,\n\t\"zoomMeetingJoinUrl\"\
: null"
deprecated: false
/api/v1//resources:
get:
summary: Get All Resources
description: Get all resources in an enterprise
operationId: get-all-resources
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"status_code\": 200,\n \"resources\": [\n {\n \"\
id\": \"a6dc981c-5c4f-11ed-aa0d-c229bc8ef7ec\",\n \"name\": \"Design\"\
,\n \"description\": null,\n \"createdAt\": 1667573268999,\n\
\ \"updatedAt\": 1667573268999,\n },\n {\n \"\
id\": \"a6e0624e-5c4f-11ed-aa0d-c229bc8ef7ec\",\n \"name\": \"Communications\"\
,\n \"description\": null,\n \"createdAt\": 1667573269024,\n\
\ \"updatedAt\": 1667573269024,\n }\n ]\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/scim/v2/Users:
get:
summary: 'SCIM: Get All Users'
description: ''
operationId: scim-get-all-users
parameters:
- name: count
in: query
description: Number of results to return
schema:
type: integer
format: int32
default: 100
- name: startIndex
in: query
description: The page of results to return (starts with page 1)
schema:
type: integer
format: int32
default: 1
- in: query
name: attributes
schema:
type: string
description: 'The list of attributes to return. Note that the `id` attribute is always returned.
For custom attributes, include the fully qualified attribute name. Example: `userName,name,urn:ietf:params:scim:schemas:extension:workramp:2.0:User:age`'
- in: query
name: excludedAttributes
schema:
type: string
description: 'The list of attributes to not return. Note that the `id` attribute is always returned.
For custom attributes, include the fully qualified attribute name. Example: `userName,urn:ietf:params:scim:schemas:extension:workramp:2.0:User:age`'
- in: query
name: filter
schema:
type: string
description: 'A string to filter the response. Only the `eq` operator and the `userName`, `id`,
`emails`, `externalId` attributes are supported in the filter. Example: `userName eq "testuser1@workramp.com"`'
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:ListResponse\"\
\n ],\n \"startIndex\": 1,\n \"itemsPerPage\": 2,\n \"totalResults\": 2,\n \"\
Resources\": [\n {\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:User\"\
\n ],\n \"id\": 1,\n \"userName\": \"testuser1@workramp.com\",\n \
\ \"name\": {\n \"formatted\": \"Test User1\",\n \"familyName\":\
\ \"User1\",\n \"givenName\": \"Test\"\n },\n \"emails\": [\n \
\ {\n \"value\": \"testuser1@workramp.com\"\n }\n ],\n \
\ \"active\": true,\n \"meta\": {\n \"resourceType\": \"User\",\n \
\ \"location\": \"https://app.workramp.com/scim/v2/Users/1\"\n },\n \
\ \"externalId\": \"Ql7zCBW06soi60qbbz1A\"\n },\n {\n \"schemas\": [\n\
\ \"urn:ietf:params:scim:schemas:core:2.0:User\"\n ],\n \"id\": 2,\n\
\ \"userName\": \"testuser2@workramp.com\",\n \"name\": {\n \"formatted\"\
: \"Test User2\",\n \"familyName\": \"User2\",\n \"givenName\": \"Test\"\
\n },\n \"emails\": [\n {\n \"value\": \"testuser2@workramp.com\"\
\n }\n ],\n \"active\": true,\n \"meta\": {\n \"resourceType\"\
: \"User\",\n \"location\": \"https://app.workramp.com/scim/v2/Users/2\"\n\
\ }\n }\n ]\n}"
Result with excludedAttributes param:
summary: Result with excludedAttributes param
value: "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:ListResponse\"\
,\n ],\n \"startIndex\": 1,\n \"itemsPerPage\": 2,\n \"totalResults\": 2,\n \"\
Resources\": [\n {\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:User\"\
,\n \"urn:ietf:params:scim:schemas:extension:workramp:2.0:User\"\n ],\n\
\ \"id\": 1,\n \"emails\": [\n {\n \"value\": \"testuser1@workramp.com\"\
\n }\n ],\n \"active\": true,\n \"meta\": {\n \"resourceType\"\
: \"User\",\n \"location\": \"https://app.workramp.com/scim/v2/Users/1\"\n\
\ },\n \"externalId\": \"Ql7zCBW06soi60qbbz1A\",\n \"urn:ietf:params:scim:schemas:extension:workramp:2.0:User\"\
: {\n \"location\": \"US\"\n }\n },\n {\n \"schemas\": [\n\
\ \"urn:ietf:params:scim:schemas:core:2.0:User\",\n \"urn:ietf:params:scim:schemas:extension:workramp:2.0:User\"\
\n ],\n \"id\": 2,\n \"emails\": [\n {\n \"value\"\
: \"testuser2@workramp.com\"\n }\n ],\n \"active\": true,\n \
\ \"meta\": {\n \"resourceType\": \"User\",\n \"location\": \"https://app.workramp.com/scim/v2/Users/2\"\
\n },\n \"urn:ietf:params:scim:schemas:extension:workramp:2.0:User\": {\n\
\ \"location\": \"UK\"\n }\n }\n}"
Result with attributes param:
summary: Result with attributes param
value: "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:ListResponse\"\
,\n ],\n \"startIndex\": 1,\n \"itemsPerPage\": 2,\n \"totalResults\": 2,\n \"\
Resources\": [\n {\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:User\"\
,\n \"urn:ietf:params:scim:schemas:extension:workramp:2.0:User\"\n ],\n\
\ \"id\": 1,\n \"userName\": \"testuser1@workramp.com\",\n \"name\"\
: {\n \"formatted\": \"Test User1\",\n \"familyName\": \"User1\",\n\
\ \"givenName\": \"Test\"\n },\n \"urn:ietf:params:scim:schemas:extension:workramp:2.0:User\"\
: {\n \"age\": \"30\"\n }\n },\n {\n \"schemas\": [\n \
\ \"urn:ietf:params:scim:schemas:core:2.0:User\",\n \"urn:ietf:params:scim:schemas:extension:workramp:2.0:User\"\
\n ],\n \"id\": 2,\n \"userName\": \"testuser2@workramp.com\",\n \
\ \"name\": {\n \"formatted\": \"Test User2\",\n \"familyName\":\
\ \"User2\",\n \"givenName\": \"Test\"\n },\n \"urn:ietf:params:scim:schemas:extension:workramp:2.0:User\"\
: {}\n }\n ]\n}"
Result with filter params:
summary: Result with filter params
value:
schemas:
- urn:ietf:params:scim:api:messages:2.0:ListResponse
startIndex: 1
itemsPerPage: 1
totalResults: 1
Resources:
- schemas:
- urn:ietf:params:scim:schemas:core:2.0:User
id: 1
userName: testuser1@workramp.com
name:
formatted: Test User1
familyName: User1
givenName: Test
emails:
- value: testuser1@workramp.com
active: true
meta:
resourceType: User
location: https://app.workramp.com/scim/v2/Users/1
externalId: Ql7zCBW06soi60qbbz1A
schema:
type: object
properties:
schemas:
type: array
items:
type: string
example: urn:ietf:params:scim:api:messages:2.0:ListResponse
startIndex:
type: integer
example: 1
default: 0
itemsPerPage:
type: integer
example: 2
default: 0
totalResults:
type: integer
example: 2
default: 0
Resources:
type: array
items:
type: object
properties:
schemas:
type: array
items:
type: string
example: urn:ietf:params:scim:schemas:core:2.0:User
id:
type: integer
example: 1
default: 0
userName:
type: string
example: testuser1@workramp.com
name:
type: object
properties:
formatted:
type: string
example: Test User1
familyName:
type: string
example: User1
givenName:
type: string
example: Test
emails:
type: array
items:
type: object
properties:
value:
type: string
example: testuser1@workramp.com
active:
type: boolean
example: true
default: true
meta:
type: object
properties:
resourceType:
type: string
example: User
location:
type: string
example: https://app.workramp.com/scim/v2/Users/1
externalId:
type: string
example: Ql7zCBW06soi60qbbz1A
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: shell
code: 'curl https://app.workramp.com/scim/v2/Users \
-H "Authorization: Bearer ACCESS_TOKEN"'
name: ''
samples-languages:
- shell
post:
summary: 'SCIM: Create User'
description: ''
operationId: scim-create-user
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
userName:
type: string
description: Email of the user
name:
type: object
description: Name of the user
required:
- givenName
properties:
givenName:
type: string
description: Given name of the user
familyName:
type: string
description: Family name of the user
externalId:
type: string
description: Id of the user in your external system (the system where you are syncing
users from)
groups:
type: array
description: List of group ids that the user is a part of
items:
type: integer
format: int32
manager:
type: string
description: Email of the user's manager
managerName:
type: string
description: Name of the user's manager
startDate:
type: string
description: Start date of the user
format: date
urn:ietf:params:scim:schemas:extension:workramp:2․0:User:
type: object
description: Custom attributes to create for the user. Note that the custom attribute
should already exists on the enterprise. Replace "2․0" with "2.0" (normal full stop)!
properties:
key:
type: string
description: API name of the custom attribute
value:
type: string
description: Value to set the custom attribute to
displayName:
type: string
description: The name of the user. Note that this takes precedence over the `name` parameter
customAttributes:
type: object
properties:
key:
type: string
description: API name of the custom attribute
value:
type: string
description: Value to set the custom attribute to
description: Custom attributes to create for the user
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:User\"\n ],\n\
\ \"id\": 10,\n \"userName\": \"newtestuser@workramp.com\",\n \"name\": {\n \
\ \"formatted\": \"NewTest User\",\n \"familyName\": \"User\",\n \"givenName\"\
: \"NewTest\"\n },\n \"emails\": [\n {\n \"value\": \"newtestuser@workramp.com\"\
\n }\n ],\n \"active\": true,\n \"meta\": {\n \"resourceType\": \"User\"\
,\n \"location\": \"https://app.workramp.com/scim/v2/Users/10\"\n }\n}"
schema:
type: object
properties:
schemas:
type: array
items:
type: string
example: urn:ietf:params:scim:schemas:core:2.0:User
id:
type: integer
example: 10
default: 0
userName:
type: string
example: newtestuser@workramp.com
name:
type: object
properties:
formatted:
type: string
example: NewTest User
familyName:
type: string
example: User
givenName:
type: string
example: NewTest
emails:
type: array
items:
type: object
properties:
value:
type: string
example: newtestuser@workramp.com
active:
type: boolean
example: true
default: true
meta:
type: object
properties:
resourceType:
type: string
example: User
location:
type: string
example: https://app.workramp.com/scim/v2/Users/10
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: text
code: "curl https://app.workramp.com/scim/v2/Users \\\n-H \"Authorization: Bearer ACCESS_TOKEN\"\
\ \\ \n-H \"Content-type: application/json\" \\\n-d '{\"userName\": \"newtestuser@workramp.com\"\
,\"name\": {\"givenName\": \"NewTest\", \"familyName\": \"User\"},\"groups\":[24,50]}' \\\n\
-X POST"
samples-languages:
- text
/scim/v2/Users/{id}:
get:
summary: 'SCIM: Get User'
description: ''
operationId: scim-get-user
parameters:
- name: id
in: path
description: The user id to return information about
schema:
type: integer
format: int32
required: true
- in: query
name: attributes
schema:
type: string
description: 'The list of attributes to return. Note that the `id` attribute is always returned.
For custom attributes, include the fully qualified attribute name. Example: `userName,name,urn:ietf:params:scim:schemas:extension:workramp:2.0:User:age`'
- in: query
name: excludedAttributes
schema:
type: string
description: 'The list of attributes to not return. Note that the `id` attribute is always returned.
For custom attributes, include the fully qualified attribute name. Example: `userName,urn:ietf:params:scim:schemas:extension:workramp:2.0:User:age`'
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:User\"\n ],\n\
\ \"id\": 2,\n \"userName\": \"testuser1@workramp.com\",\n \"name\": {\n \"\
formatted\": \"Test User1\",\n \"familyName\": \"User1\",\n \"givenName\": \"\
Test\"\n },\n \"emails\": [\n {\n \"value\": \"testuser1@workramp.com\"\n\
\ }\n ],\n \"active\": true,\n \"meta\": {\n \"resourceType\": \"User\",\n\
\ \"location\": \"https://app.workramp.com/scim/v2/Users/1\"\n }\n}"
Result with excludedAttributes param:
summary: Result with excludedAttributes param
value:
schemas:
- urn:ietf:params:scim:schemas:core:2.0:User
- urn:ietf:params:scim:schemas:extension:workramp:2.0:User
id: 1
emails:
- value: testuser1@workramp.com
active: true
meta:
resourceType: User
location: https://app.workramp.com/scim/v2/Users/1
externalId: Ql7zCBW06soi60qbbz1A
urn:ietf:params:scim:schemas:extension:workramp:2.0:User:
location: US
Result with attributes param:
summary: Result with attributes param
value:
schemas:
- urn:ietf:params:scim:schemas:core:2.0:User
- urn:ietf:params:scim:schemas:extension:workramp:2.0:User
id: 1
userName: testuser1@workramp.com
name:
formatted: Test User1
familyName: User1
givenName: Test
urn:ietf:params:scim:schemas:extension:workramp:2.0:User:
age: '30'
schema:
type: object
properties:
schemas:
type: array
items:
type: string
example: urn:ietf:params:scim:schemas:core:2.0:User
id:
type: integer
example: 2
default: 0
userName:
type: string
example: testuser1@workramp.com
name:
type: object
properties:
formatted:
type: string
example: Test User1
familyName:
type: string
example: User1
givenName:
type: string
example: Test
emails:
type: array
items:
type: object
properties:
value:
type: string
example: testuser1@workramp.com
active:
type: boolean
example: true
default: true
meta:
type: object
properties:
resourceType:
type: string
example: User
location:
type: string
example: https://app.workramp.com/scim/v2/Users/1
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: text
code: 'curl https://app.workramp.com/scim/v2/Users/1 \
-H "Authorization: Bearer ACCESS_TOKEN"'
samples-languages:
- text
put:
summary: 'SCIM: Update User'
description: ''
operationId: scim-update-user
parameters:
- name: id
in: path
description: The user id to update
schema:
type: integer
format: int32
required: true
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
userName:
type: string
description: The email of the user
externalId:
type: string
description: Id of the user in your external system (the system where you are syncing
users from)
active:
type: boolean
description: Whether this user is deactivated or not
urn:ietf:params:scim:schemas:extension:workramp:2.0:User:
type: object
description: Custom attributes to update for the user. Note that this only updates existing
custom attributes. Replace "2․0" with "2.0" (normal full stop)!
properties:
key:
type: string
description: API name of the custom attribute
value:
type: string
description: Value to set the custom attribute to
name:
type: object
description: The name of the user (see the Response example in lower right for the exact
format required here, sent in raw JSON)
properties:
givenName:
type: string
description: Given name of the user
familyName:
type: string
description: Family name of the user
required:
- givenName
displayName:
type: string
description: The name of the user. Note that this takes precedence over the `name` parameter
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:User\"\n ],\n\
\ \"id\": 2,\n \"userName\": \"testuser1@workramp.com\",\n \"name\": {\n \"\
formatted\": \"Updated Name\",\n \"familyName\": \"Name\",\n \"givenName\":\
\ \"Updated\"\n },\n \"emails\": [\n {\n \"value\": \"testuser1@workramp.com\"\
\n }\n ],\n \"active\": false,\n \"meta\": {\n \"resourceType\": \"User\"\
,\n \"location\": \"https://app.workramp.com/scim/v2/Users/1\"\n }\n}"
schema:
type: object
properties:
schemas:
type: array
items:
type: string
example: urn:ietf:params:scim:schemas:core:2.0:User
id:
type: integer
example: 2
default: 0
userName:
type: string
example: testuser1@workramp.com
name:
type: object
properties:
formatted:
type: string
example: Updated Name
familyName:
type: string
example: Name
givenName:
type: string
example: Updated
emails:
type: array
items:
type: object
properties:
value:
type: string
example: testuser1@workramp.com
active:
type: boolean
example: false
default: true
meta:
type: object
properties:
resourceType:
type: string
example: User
location:
type: string
example: https://app.workramp.com/scim/v2/Users/1
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: text
code: "curl https://app.workramp.com/scim/v2/Users/1 \\\n-H \"Authorization: Bearer ACCESS_TOKEN\"\
\ \\ \n-H \"Content-type: application/json\" \\\n-d '{\"active\": false, \"name\": {\"givenName\"\
: \"Updated\", \"familyName\": \"Name\"}}' \\\n-X PUT"
samples-languages:
- text
/scim/v2/Groups:
get:
summary: 'SCIM: Get All Groups'
description: ''
operationId: scim-get-all-groups
parameters:
- name: count
in: query
description: Number of results to return
schema:
type: integer
format: int32
default: 100
- name: startIndex
in: query
description: The page of results to return (starts with page 1)
schema:
type: integer
format: int32
default: 1
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:ListResponse\"\
\n ],\n \"startIndex\": 1,\n \"itemsPerPage\": 1,\n \"totalResults\": 1,\n \"\
Resources\": [\n {\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:Group\"\
\n ],\n \"id\": 35,\n \"displayName\": \"Test Group\",\n \"members\"\
: [\n {\n \"value\": \"testuser1@workramp.com\",\n \"$ref\"\
: \"https://app.workramp.com/scim/v2/Users/1\",\n \"display\": \"Test User1\"\
\n }\n ]\n }\n ]\n}"
schema:
type: object
properties:
schemas:
type: array
items:
type: string
example: urn:ietf:params:scim:api:messages:2.0:ListResponse
startIndex:
type: integer
example: 1
default: 0
itemsPerPage:
type: integer
example: 1
default: 0
totalResults:
type: integer
example: 1
default: 0
Resources:
type: array
items:
type: object
properties:
schemas:
type: array
items:
type: string
example: urn:ietf:params:scim:schemas:core:2.0:Group
id:
type: integer
example: 35
default: 0
displayName:
type: string
example: Test Group
members:
type: array
items:
type: object
properties:
value:
type: string
example: testuser1@workramp.com
$ref:
type: string
example: https://app.workramp.com/scim/v2/Users/1
display:
type: string
example: Test User1
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: text
code: "curl https://app.workramp.com/scim/v2/Groups \\\n-H \"Authorization: Bearer ACCESS_TOKEN\"\
\ \\ \n-H \"Content-type: application/json\""
samples-languages:
- text
post:
summary: 'SCIM: Create Group'
description: ''
operationId: scim-create-group
parameters:
- name: displayName
in: query
description: Name of the group
schema:
type: string
- name: members
in: query
description: The users belong to this group (see the example below for the exact format required
here)
schema:
type: array
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:Group\"\n \
\ ],\n \"id\": 34,\n \"displayName\": \"New Group\",\n \"members\": [\n {\n\
\ \"value\": \"testuser1@workramp.com\",\n \"$ref\": \"https://app.workramp.com/scim/v2/Users/1\"\
,\n \"display\": \"Test User1\"\n },\n {\n \"value\": \"testuser2@workramp.com\"\
,\n \"$ref\": \"https://app.workramp.com/scim/v2/Users/25\",\n \"display\"\
: \"Test User2\"\n }\n ]\n}"
schema:
type: object
properties:
schemas:
type: array
items:
type: string
example: urn:ietf:params:scim:schemas:core:2.0:Group
id:
type: integer
example: 34
default: 0
displayName:
type: string
example: New Group
members:
type: array
items:
type: object
properties:
value:
type: string
example: testuser1@workramp.com
$ref:
type: string
example: https://app.workramp.com/scim/v2/Users/1
display:
type: string
example: Test User1
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: text
code: "curl https://app.workramp.com/scim/v2/Groups \\\n-H \"Authorization: Bearer ACCESS_TOKEN\"\
\ \\ \n-H \"Content-type: application/json\" \\\n-d '{\"displayName\": \"New Group\",\"members\"\
: [{\"value\": 1}, {\"value\": 25}]}' \\\n-X POST"
samples-languages:
- text
/scim/v2/Groups/{id}:
get:
summary: 'SCIM: Get Group'
description: ''
operationId: scim-get-group
parameters:
- name: id
in: path
description: The group id to return information about
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:Group\"\n \
\ ],\n \"id\": 35,\n \"displayName\": \"Test Group\",\n \"members\": [\n {\n\
\ \"value\": \"testuser1@workramp.com\",\n \"$ref\": \"https://app.workramp.com/scim/v2/Users/1\"\
,\n \"display\": \"Test User1\"\n }\n ]\n}"
schema:
type: object
properties:
schemas:
type: array
items:
type: string
example: urn:ietf:params:scim:schemas:core:2.0:Group
id:
type: integer
example: 35
default: 0
displayName:
type: string
example: Test Group
members:
type: array
items:
type: object
properties:
value:
type: string
example: testuser1@workramp.com
$ref:
type: string
example: https://app.workramp.com/scim/v2/Users/1
display:
type: string
example: Test User1
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: text
code: "curl https://app.workramp.com/scim/v2/Groups/35 \\\n-H \"Authorization: Bearer ACCESS_TOKEN\"\
\ \\ \n-H \"Content-type: application/json\""
samples-languages:
- text
patch:
summary: 'SCIM: Patch Group'
description: ''
operationId: scim-patch-group
parameters:
- name: id
in: path
description: The group id to patch
schema:
type: integer
format: int32
required: true
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
Operations:
type: array
description: The operations to perform to patch/update this group (see the example below
for the exact format required here)
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "All the above examples will have a response in the following format as an example:\n\
\n{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:Group\"\n ],\n\
\ \"id\": 34,\n \"displayName\": \"Group\",\n \"members\": [\n {\n \"value\"\
: \"testuser1@workramp.com\",\n \"$ref\": \"https://app.workramp.com/scim/v2/Users/1\"\
,\n \"display\": \"Test User1\"\n },\n {\n \"value\": \"testuser2@workramp.com\"\
,\n \"$ref\": \"https://app.workramp.com/scim/v2/Users/25\",\n \"display\"\
: \"Test User2\"\n }\n ]\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: text
code: "# Updating the name of a group\ncurl https://app.workramp.com/scim/v2/Groups/1 \\\n-H\
\ \"Authorization: Bearer ACCESS_TOKEN\" \\ \n-H \"Content-type: application/json\" \\\n-d\
\ '{\"Operations\": [{\"op\": \"replace\", \"value\": {\"displayName\": \"Updated Group\"\
}}]}' \\\n-X PATCH\n\n# Adding users (with ids 2 and 4) to the group\ncurl https://app.workramp.com/scim/v2/Groups/1\
\ \\\n-H \"Authorization: Bearer ACCESS_TOKEN\" \\ \n-H \"Content-type: application/json\"\
\ \\\n-d '{\"Operations\": [{\"op\": \"add\", \"path\": \"members\", \"value\": [{\"value\"\
: 2}, {\"value\": 4}]}]}' \\\n-X PATCH\n\n# Removing user (with id 2) from the group\ncurl\
\ https://app.workramp.com/scim/v2/Groups/1 \\\n-H \"Authorization: Bearer ACCESS_TOKEN\"\
\ \\ \n-H \"Content-type: application/json\" \\\n-d '{\"Operations\": [{\"op\": \"remove\"\
, \"path\": \"members\\[value eq \\\"2\\\"\\]\"}]}' \\\n-X PATCH\n\n# Replace all existing\
\ users in the group with the following users (user ids 2 and 4)\ncurl https://app.workramp.com/scim/v2/Groups/1\
\ \\\n-H \"Authorization: Bearer ACCESS_TOKEN\" \\ \n-H \"Content-type: application/json\"\
\ \\\n-d '{\"Operations\": [{\"op\": \"replace\", \"path\": \"members\", \"value\": [{\"value\"\
: 2}, {\"value\": 4}]}]}' \\\n-X PATCH\n"
samples-languages:
- text
delete:
summary: 'SCIM: Delete Group'
description: ''
operationId: scim-delete-group
parameters:
- name: id
in: path
description: The group id to delete
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: text
code: "curl https://app.workramp.com/scim/v2/Groups/34 \\\n-H \"Authorization: Bearer ACCESS_TOKEN\"\
\ \\ \n-H \"Content-type: application/json\" \\\n-X DELETE"
samples-languages:
- text
/api/v1/search/university/{search}:
get:
summary: Search Public Library
description: Search across all guides and resources in libraries that are public for the enterprise
operationId: search-across-all-public-universities
parameters:
- name: search
in: path
description: String to match against titles and descriptions for guides and resources.
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\nsearch: {SEARCH},\nresults: [\n {\n university: {UNIVERSITY_NAME},\n\
\ name: {TITLE},\n type: (guide|resource),\n description: {DESCRIPTION},\n\
\ url: {URL}\n }, ...\n]\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: curl
code: 'curl https://app.workramp.com/api/v1/search/university/string%20to%20search \
-H "Authorization: Bearer ACCESS_TOKEN"'
samples-languages:
- curl
/api/v1/search/university/{university_name}/{search}:
get:
summary: Search Within A Public Library
description: Searches across all guides and resources in a specific library that is public for the
enterprise
operationId: search-within-a-public-university
parameters:
- name: university_name
in: path
description: The name of the public university to search within.
schema:
type: string
required: true
- name: search
in: path
description: String to match against titles and descriptions for guides and resources.
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n search: {SEARCH},\n results: [\n {\n university: {UNIVERSITY},\n\
\ name: {TITLE},\n type: (guide|resource),\n description: {DESCRIPTION},\n\
\ url: {URL}\n }, ...\n ]\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: curl
code: 'curl https://app.workramp.com/api/v1/search/university/name%20of%20university/string%20to%20search
\
-H "Authorization: Bearer ACCESS_TOKEN"'
samples-languages:
- curl
/api/v1/scorms:
get:
summary: Get All SCORM Courses
description: Gets all SCORM in an enterprise
operationId: get-all-scorms
parameters:
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 20,\n \"has_more\": false,\n \"url\": \"\
/api/v1/scorms\",\n \"data\": {\n \"scorms\": [\n {\n \"id\": \"481e68e0-056f-11ee-af61-06635f23b5b5\"\
,\n \"title\": \"Title of the SCORM\",\n \"created_at\": 1686168600452,\n\
\ \"time_estimate\": 10\n },\n {\n \"id\": \"d1fa2138-06f2-11ee-b231-06635f23b5b5\"\
,\n \"title\": \"Title of another SCORM\",\n \"created_at\": 1686335046974,\n\
\ \"time_estimate\": 236\n }\n ]\n }"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/scorm/{id}/assigned_users:
get:
summary: Get All Assignments for a SCORM Course
description: 'Gets all user assignments for a specific SCORM.
Note: Only Employee Learning Cloud assignments are returned - Academy assignments have a separate
endpoint.'
operationId: get-scorm-assignments
parameters:
- name: id
in: path
description: Scorm ID
schema:
type: string
required: true
- in: query
name: legacy_mode
schema:
type: boolean
default: 'true'
description: '**Always set this to false unless you have a very compelling reason not to.**
For accounts provisioned prior to November 11, 2025, the optional query parameter legacy_mode
can be set to bypass pagination. When legacy_mode=true, the API will return the entire result
set in a single, non-paginated response, and the response format itself will be completely different
(See response examples).'
- in: query
name: page
schema:
type: integer
format: int32
default: '1'
description: Page of results to return
- in: query
name: per_page
schema:
type: integer
format: int32
default: '20'
description: Number of results to return per page (1-200)
responses:
'200':
description: '200'
content:
application/json:
examples:
OK:
summary: OK
value:
page: 1
per_page: 20
has_more: false
item_count: 2
url: /api/v1/scorm/SCORM_1_PACKAGE_ID/assigned_users
data:
scorm:
created_at: null
description: null
display_title: SCORM 1
folder_id: null
id: SCORM_1_PACKAGE_ID
source_id: null
updated_at: null
assignments:
- completed_at: null
completion_percentage: null
due_date: null
date_assigned: 1696340396481
assigner: mChief@workramp.com
time_spent_in_minutes: 2
user:
name: Dr. Mohamed Heller
email: mHeller60@workramp.com
- completed_at: 1665030173000
completion_percentage: 100
due_date: null
date_assigned: 1696340396482
assigner: eYager@workramp.com
time_spent_in_minutes: 10
user:
name: Theo Harber
email: TheoH0@workramp.com
OK - legacy_mode:
summary: OK - legacy_mode
value:
name: SCORM 1
assignments:
- completedAt: null
completionPercentage: null
dueDate: null
dateAssigned: 1696340396481
assigner: mChief@workramp.com
timeSpentInMinutes: 2
user:
name: Dr. Mohamed Heller
email: mHeller60@workramp.com
- completedAt: 1665030173000
completionPercentage: 100
dueDate: null
dateAssigned: 1696340396482
assigner: eYager@workramp.com
timeSpentInMinutes: 10
user:
name: Theo Harber
email: TheoH0@workramp.com
schema:
type: object
properties:
page:
type: number
default: '1'
per_page:
type: number
default: '20'
has_more:
type: boolean
default: 'false'
item_count:
type: number
url:
type: string
data:
type: object
properties:
scorm:
type: object
properties:
created_at:
type: number
description:
type: string
display_title:
type: string
folder_id:
type: string
id:
type: string
source_id:
type: string
updated_at:
type: number
assignments:
type: array
items:
properties:
completed_at:
type: number
completion_percentage:
type: number
due_date:
type: number
date_assigned:
type: number
assigner:
type: string
time_spent_in_minutes:
type: number
user:
type: object
properties:
name:
type: string
email:
type: string
type: object
'404':
description: '404'
content:
application/json:
examples:
Result:
value: "{\n \"type\": \"not_found\",\n \"message\": \"Error. The SCORM you are\
\ trying to search does not exist.\"\n}"
schema:
type: object
properties:
type:
type: string
example: not_found
message:
type: string
example: Error. The SCORM you are trying to search does not exist.
deprecated: false
/api/v1/challenge/{challenge_id}:
get:
summary: Get all Users for a Challenge
description: Get all the users assigned to a specific challenge
operationId: get-challenge-assignments
parameters:
- name: challenge_id
in: path
description: The id of the challenge
schema:
type: string
required: true
- in: query
name: legacy_mode
schema:
type: boolean
default: 'true'
description: For accounts provisioned prior to November 11, 2025, the optional query parameter
legacy_mode can be set to bypass pagination. When legacy_mode is enabled, the API will return
the entire result set in a single, non-paginated response.
- in: query
name: page
schema:
type: integer
format: int32
default: '1'
description: Page of results to return
- in: query
name: per_page
schema:
type: integer
format: int32
default: '20'
description: Number of results to return per page (1-200)
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
page:
type: string
per_page:
type: string
has_more:
type: string
item_count:
type: string
url:
type: string
data:
type: object
properties:
challenge:
type: object
properties:
created_at:
type: number
description:
type: string
display_title:
type: string
folder_id:
type: string
id:
type: string
updated_at:
type: number
challenge_user_assignments:
type: array
items:
properties:
completion_date:
type: number
grade:
type: object
properties:
earned_points:
type: number
total_points:
type: number
incomplete:
type: number
is_fully_graded:
type: boolean
time_spent:
type: number
passed:
type: boolean
user:
type: object
properties:
name:
type: string
email:
type: string
type: object
required:
- page
examples:
OK:
summary: OK
value:
page: 1
per_page: 20
has_more: false
item_count: 1
url: /api/v1/challenge/63e6348a-4045-11ed-b46f-ea39642a425f
data:
challenge:
created_at: null
description: null
display_title: Distributed secondary matrix
folder_id: null
id: 63e6348a-4045-11ed-b46f-ea39642a425f
updated_at: null
challenge_user_assignments:
- completion_date: 1664826769207
grade:
earned_points: 10
total_points: 20
incomplete: 0
is_fully_graded: true
time_spent: 10
passed: false
user:
name: Shubham
email: sgoyal@workramp.com
- completion_date: null
grade:
earned_points: 0
total_points: 0
incomplete: 0
is_fully_graded: false
time_spent: 10
passed: false
user:
name: Shubham
email: sgoyal@workramp.com
OK - legacy_mode:
summary: OK - legacy_mode
value:
name: Distributed secondary matrix
id: 63e6348a-4045-11ed-b46f-ea39642a425f
challengeUserAssignments:
- completionDate: 1664826769207
grade:
earnedPoints: 10
totalPoints: 20
incomplete: 0
isFullyGraded: true
timeSpent: 10
passed: false
user:
name: Shubham
email: sgoyal@workramp.com
- completionDate: null
grade:
earnedPoints: 0
totalPoints: 0
incomplete: 0
isFullyGraded: false
timeSpent: 10
passed: false
user:
name: Shubham
email: sgoyal@workramp.com
deprecated: false
/api/v1/content_catalog:
get:
summary: Get Content Catalog
description: Get your content catalog (a collection of all content in your WorkRamp instance)
operationId: get-content-catalog
parameters:
- name: Authorization
in: header
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "[\n {\n \"folderName\": \"/Guide\",\n \"universityName\": \"\
\",\n \"universityDescription\": \"\",\n \"universityFolder\": \"\"\
,\n \"pathName\": \"\",\n \"pathDescription\": \"\",\n \"itemType\"\
: \"guide\",\n \"itemName\": \"Sales Onboarding\",\n \"itemDescription\"\
: \"Sales is the best job.\",\n \"itemLink\": \"http://app.workramp.test/admin/guides/34f4g45-f648-123s-92d0-2313\"\
,\n \"lastEditedDate\": \"2022-06-30T17:36:29.718Z\",\n \"lastEditor\"\
: \"John Doe\",\n \"lastAssignedDate\": \"2022-06-27T18:38:21.811Z\",\n \
\ \"numAssignments\": 1,\n \"originalAuthor\": \"bethsamuels@example.com\"\
,\n \"createdDate\": \"2022-06-27T18:38:19.303Z\"\n },\n {\n \"\
folderName\": \"/Path\",\n \"universityName\": \"\",\n \"universityDescription\"\
: \"\",\n \"universityFolder\": \"\",\n \"pathName\": \"Learning More\"\
,\n \"pathDescription\": \"\",\n \"itemType\": \"resource\",\n \
\ \"itemName\": \"Arts\",\n \"itemDescription\": \"\",\n \"itemLink\"\
: \"http://app.workramp.test/admin/resources/1s2dss-fdsf6-11ec-dsa-5e3d23\",\n \
\ \"lastEditedDate\": \"2022-06-27T18:38:20.218Z\",\n \"lastEditor\": \"\
Bruce Wayne\",\n \"lastAssignedDate\": \"\",\n \"numAssignments\": \"\
20\",\n \"originalAuthor\": \"clarkkent@example.com\",\n \"createdDate\"\
: \"2022-04-13T14:18:30.403Z\"\n },\n {\n \"folderName\": \"/Challenge\"\
,\n \"universityName\": \"\",\n \"universityDescription\": \"\",\n \
\ \"universityFolder\": \"\",\n \"pathName\": \"\",\n \"pathDescription\"\
: \"\",\n \"itemType\": \"challenge\",\n \"itemName\": \"Challenge 101\"\
,\n \"itemDescription\": \"The hardest challenge ever\",\n \"itemLink\"\
: \"http://app.workramp.test/admin/challenges/12s42-d2df3-1fdec-6g4-d3f3f34f5\",\n\
\ \"lastEditedDate\": \"2022-02-14T22:28:09.048Z\",\n \"lastEditor\"\
: \"John Wick\",\n \"lastAssignedDate\": \"2022-04-27T18:38:26.888Z\",\n \
\ \"numAssignments\": 2,\n \"originalAuthor\": \"brucewayne@example.com\"\
,\n \"createdDate\": \"2021-01-27T15:17:20.775Z\"\n }\n]"
schema:
type: array
items:
type: object
properties:
folderName:
type: string
example: /Guide
universityName:
type: string
example: ''
universityDescription:
type: string
example: ''
universityFolder:
type: string
example: ''
pathName:
type: string
example: ''
pathDescription:
type: string
example: ''
itemType:
type: string
example: guide
itemName:
type: string
example: Sales Onboarding
itemDescription:
type: string
example: Sales is the best job.
itemLink:
type: string
example: http://app.workramp.test/admin/guides/34f4g45-f648-123s-92d0-2313
lastEditedDate:
type: string
example: '2022-06-30T17:36:29.718Z'
lastEditor:
type: string
example: John Doe
lastAssignedDate:
type: string
example: '2022-06-27T18:38:21.811Z'
numAssignments:
type: integer
example: 1
default: 0
originalAuthor:
type: string
example: bethsamuels@example.com
createdDate:
type: string
example: '2022-06-27T18:38:19.303Z'
deprecated: false
x-readme:
code-samples:
- language: curl
code: 'curl https://app.workramp.com/api/v1/content_catalog \
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-type: application/json"'
samples-languages:
- curl
/api/v1/academies/{academy_id}/users:
get:
summary: Get All Contacts
description: Get all Contacts in an Academy. Results can be filtered by name, email, email domain,
status, and custom registration fields. All filters combine with AND. By default, both Active
and Deactivated Contacts are returned, including Contacts with a pending invitation. Results are
always sorted by email, ascending.
operationId: get-academy-customer-users
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
- name: name
in: query
description: Optional. Returns Contacts whose name contains this value (case-insensitive, partial
match).
schema:
type: string
- name: email
in: query
description: Optional. Returns Contacts whose email address contains this value (case-insensitive
partial match). For example, `email=bob@example.com` also matches `alice.bob@example.com`. To
match one address exactly, use `exact_email`.
schema:
type: string
- in: query
name: email_domain
schema:
type: string
description: 'Optional. Returns Contacts whose email address ends in exactly `@` (case-insensitive).
Subdomains are not included: `example.com` does not match `bob@mail.example.com`.'
- in: query
name: exact_email
schema:
type: string
description: Optional. Returns only the Contact whose email address exactly matches this value.
Matching is case-insensitive, and surrounding whitespace is ignored. No partial matching is
performed. When `exact_email` is provided, the `email` and `email_domain` parameters are ignored.
- name: status
in: query
description: Optional. `Active` returns only active Contacts; `Deactivated` returns only deactivated
Contacts. If omitted, both are returned.
schema:
type: string
enum:
- Active
- Deactivated
- name: custom_registration_fields
in: query
description: Optional object with a single key-value pair where the key represents the custom
registration field name and the value represents the custom attribute field value. (e.g. `custom_registration_fields%5Bnickname%5D=Bobby`
) -- **NOTE:** This tool can't generate this parameter for you because the parameter name itself
(such as `custom_registration_fields[example]`) is dynamic.
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com/api/v1/academies/:academy_id/users\",\n \"data\"\
: {\n \"users\": [\n {\n \"id\": \"d3d6edf4-e25d-11ea-be19-0242ac140003\"\
,\n \"email\": \"ted+apitester1234@workramp.com\",\n \
\ \"segments\": [],\n \"display_name\": \"Jane Doe\",\n \
\ \"first_name\": \"Jane\",\n \"last_name\": \"Doe\",\n \
\ \"created_at\": \"2022-06-08 14:59:04 UTC\",\n \"custom_registration_field_values\"\
: [\n {\n \"value\": \"Gold\",\n \
\ \"name\": \"customer_tier\"\n }\n \
\ ]\n },\n {...},\n {...}\n ]\n }\n\
}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
/api/v1/academies/{academy_id}/users/{contact_id}:
get:
summary: Get Contact
description: Get a specific Contact in an Academy
operationId: get-user
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: contact_id
in: path
description: The id of the Contact
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com/api/v1/academies/:academy_id/users/:user_id\",\n\
\ \"data\": {\n \"user\": {\n \"id\": \"d3d6edf4-e25d-11ea-be19-0242ac140003\"\
,\n \"email\": \"ted+apitester1234@workramp.com\",\n \"display_name\"\
: \"Jane Doe\",\n \"first_name\": \"Jane\",\n \"last_name\"\
: \"Doe\"\n }\n }\n}"
schema:
type: object
properties:
page:
type: integer
example: 1
default: 0
per_page:
type: integer
example: 100
default: 0
has_more:
type: boolean
example: false
default: true
url:
type: string
example: https://app.workramp.com/api/v1/academies/:academy_id/users/:user_id
data:
type: object
properties:
user:
type: object
properties:
id:
type: string
example: d3d6edf4-e25d-11ea-be19-0242ac140003
email:
type: string
example: ted+apitester1234@workramp.com
display_name:
type: string
example: Jane Doe
first_name:
type: string
example: Jane
last_name:
type: string
example: Doe
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
delete:
summary: Delete Contact
description: Soft-delete/deactivate an Academy Contact
operationId: delete-academy-user
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: contact_id
in: path
description: The id of the Contact
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/invite:
post:
summary: Invite Contacts
description: Invite Contacts to an Academy
operationId: invite-users
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: Content-type
in: header
description: Always application/json
schema:
type: string
default: application/json
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
userEmailsToInvite:
type: array
description: Array of Contact emails you'd like to invite to the academy.
items:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [],\n \"newAcademyInvitations\": [\n {\n \
\ \"email\": \"test2@workramp.com\",\n \"id\": \"6b6efe96-117c-11ed-90c8-3ea79e467329\"\
,\n \"inviteHash\": \"LibFxu3D9lms3F8VMadf-A\",\n \"lastInvitedAt\"\
: 1659346159439,\n \"originallyInvitedAt\": 1659346159439\n }\n\
\ ]\n}"
schema:
type: object
properties:
errors:
type: array
newAcademyInvitations:
type: array
items:
type: object
properties:
email:
type: string
example: test2@workramp.com
id:
type: string
example: 6b6efe96-117c-11ed-90c8-3ea79e467329
inviteHash:
type: string
example: LibFxu3D9lms3F8VMadf-A
lastInvitedAt:
type: integer
example: 1659346159439
default: 0
originallyInvitedAt:
type: integer
example: 1659346159439
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/segments/{segment_id}/remove_users:
delete:
summary: Remove Contacts from Segment
description: Remove Contacts from Academy Segment
operationId: remove-users-from-segment
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: segment_id
in: path
description: The id of the segment
schema:
type: string
required: true
- name: Content-Type
in: header
description: Always application/json
schema:
type: string
default: application/json
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
userEmails:
type: array
description: Array of Contact emails you'd like to remove from the segment.
items:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"status\": true\n}"
schema:
type: object
properties:
status:
type: boolean
example: true
default: true
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/users-duplicate:
get:
summary: Get All Contacts (support duplicated)
description: Get all Contacts in an Academy
operationId: get-all-users-support-duplicated
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
custom_registration_fields:
type: string
format: json
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com/api/v1/academies/:academy_id/users\",\n \"data\"\
: {\n \"users\": [\n {\n \"id\": \"d3d6edf4-e25d-11ea-be19-0242ac140003\"\
,\n \"email\": \"ted+apitester1234@workramp.com\",\n \
\ \"segments\": [],\n \"display_name\": \"Jane Doe\",\n \
\ \"first_name\": \"Jane\",\n \"last_name\": \"Doe\",\n \
\ \"created_at\": \"2022-06-08 14:59:04 UTC\",\n \"custom_registration_field_values\"\
: [\n {\n \"value\": \"Gold\",\n \
\ \"name\": \"customer_tier\"\n }\n \
\ ]\n },\n {...},\n {...}\n ]\n }\n\
}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/segments/{segment_id}/invite:
post:
summary: Assign Segments
description: Add Contacts to an Academy Segment
operationId: assign-segments
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: segment_id
in: path
description: The id of the segment
schema:
type: string
required: true
- name: userEmails
in: query
description: 'Array of Contact emails you''d like to invite to the segment. **NOTE: Contact must
be registered in order to be placed in a segment**'
schema:
type: array
items:
type: string
- name: Content-type
in: header
schema:
type: string
default: application/json
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"numAddedToGroup\": 1,\n \"numConvertedToManual\": 0,\n \"numAlreadyInGroup\"\
: 0,\n \"numDeletedUser\": 0,\n \"numUnregisteredUser\": 0\n}"
schema:
type: object
properties:
numAddedToGroup:
type: integer
example: 1
default: 0
numConvertedToManual:
type: integer
example: 0
default: 0
numAlreadyInGroup:
type: integer
example: 0
default: 0
numDeletedUser:
type: integer
example: 0
default: 0
numUnregisteredUser:
type: integer
example: 0
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
x-readme:
code-samples:
- language: curl
code: 'curl "https://app.workramp.com/api/v1/academies/233710e8-a938-11ec-ae72-3ea79e46732a/segments/cd0ce734-0e85-11ed-bc8c-3ea79e467329/invite
-H "Authorization: Bearer ACCESS_TOKEN" \
-H "Content-type: application/json" \
-d ''{ "userEmails": ["testemail@workramp.com"] }'' \
-X POST'
samples-languages:
- curl
/api/v1/academies/{academy_id}/users/{contact_id}/awarded_certifications:
get:
summary: Get All Awarded Certifications For a Contact
description: ''
operationId: get-all-awarded-certifications-for-a-user
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: contact_id
in: path
description: The id of the Contact
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com/api/v1/academies/:academy_id/users/:user_id/awarded_certifications\"\
\ ,\n \"data\": {\n \"user_id\": \"d3d6edf4-e25d-11ea-be19-0242ac140003\"\
,\n \"awarded_certifications\": [\n {\n \"id\": 242424,\n\
\ \"badge_image\": \"some_img_1.jpg\",\n \"display_title\"\
: \"Certified Cert\"\n }\n ]\n }\n}"
schema:
type: object
properties:
page:
type: integer
example: 1
default: 0
per_page:
type: integer
example: 100
default: 0
has_more:
type: boolean
example: false
default: true
url:
type: string
example: https://app.workramp.com/api/v1/academies/:academy_id/users/:user_id/awarded_certifications
data:
type: object
properties:
user_id:
type: string
example: d3d6edf4-e25d-11ea-be19-0242ac140003
awarded_certifications:
type: array
items:
type: object
properties:
id:
type: integer
example: 242424
default: 0
badge_image:
type: string
example: some_img_1.jpg
display_title:
type: string
example: Certified Cert
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/certifications/{certification_id}/invite:
post:
summary: Assign Certificates
description: Assign certificates to Academy Contacts
operationId: assign-certificates
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: certification_id
in: path
description: The id of the certificate
schema:
type: string
required: true
- name: Content-type
in: header
description: Always use application/json
schema:
type: string
default: application/json
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
userEmails:
type: array
description: Array of Contact emails you'd like to invite to the training.
items:
type: string
dueAt:
type: integer
description: Number of milliseconds since 1970-01-01 00:00:00 UTC.
format: int32
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [],\n \"assignments\": [\n {\n \"id\"\
: \"86971320-19d3-11ed-8678-3ea79e467329\",\n \"awardedAt\": null,\n \
\ \"completed\": false,\n \"externalUser\": {\n \
\ \"academySegments\": [\n {\n \"name\"\
: \"Segment 1\"\n }\n ],\n \"id\"\
: \"40cfc380-0ed1-11ed-9885-3ea79e467329\",\n \"createdAt\": 1659052741665,\n\
\ \"displayName\": \"Test Account\",\n \"email\": \"\
test@workramp.com\",\n \"updatedAt\": 1659052741742,\n \
\ \"academyRegistrationFieldValues\": [],\n \"assignments\": [\n\
\ {\n \"id\": \"1d7b3ae0-0efe-11ed-9885-3ea79e467329\"\
,\n \"completedAt\": null\n }\n \
\ ]\n }\n }\n ],\n \"trainingInvitations\": []\n}"
schema:
type: object
properties:
errors:
type: array
assignments:
type: array
items:
type: object
properties:
id:
type: string
example: 86971320-19d3-11ed-8678-3ea79e467329
awardedAt: {}
completed:
type: boolean
example: false
default: true
externalUser:
type: object
properties:
academySegments:
type: array
items:
type: object
properties:
name:
type: string
example: Segment 1
id:
type: string
example: 40cfc380-0ed1-11ed-9885-3ea79e467329
createdAt:
type: integer
example: 1659052741665
default: 0
displayName:
type: string
example: Test Account
email:
type: string
example: test@workramp.com
updatedAt:
type: integer
example: 1659052741742
default: 0
academyRegistrationFieldValues:
type: array
assignments:
type: array
items:
type: object
properties:
id:
type: string
example: 1d7b3ae0-0efe-11ed-9885-3ea79e467329
completedAt: {}
trainingInvitations:
type: array
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/paths/{path_id}/invite:
post:
summary: Assign Paths
description: Assign paths to Academy Contacts
operationId: assign-paths
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: path_id
in: path
description: The id of the path
schema:
type: string
required: true
- name: Content-type
in: header
description: Always use application/json
schema:
type: string
default: application/json
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
userEmails:
type: array
description: Array of Contact emails you'd like to invite to the training.
items:
type: string
dueAt:
type: integer
description: Number of milliseconds since 1970-01-01 00:00:00 UTC.
format: int32
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/users/{contact_id}/registrations/{registration_id}:
get:
summary: Get Registration by Contact ID & Registration ID
description: 'Fetch a specific Academy registration by ID for a given Contact ID. NOTE: If you have
the Registration ID, you don''t need this. You could just use the **Get Registration by ID** endpoint.'
operationId: get-all-registrations-for-a-user-1
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: contact_id
in: path
description: The id of the Contact
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
- name: registration_id
in: path
description: The id of the registration
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com/api/v1/academies/:academy_id/users/:user_id/registrations\"\
,\n \"data\": {\n \"user_id\": \"d3d6edf4-e25d-11ea-be19-0242ac140003\"\
,\n \"registration\": {\n \"id\": \"d3d6edf4-e25d-11ea-be19-0242ac140004\"\
,\n \"completed_at\": 1488144236206.5808,\n \"is_completed\"\
: true,\n \"completion_percentage\": 100,\n \"score\": 95,\n\
\ \"due_at\": 1488144236206.5808,\n \"due_date\": 1488144236206.5808,\n\
\ \"pass_status\": \"passed\",\n \"content\": {\n \
\ \"id\": \"d3d6edf4-e25d-11ea-be19-0242ac140005\",\n \"academy_overview_description\"\
: \"Foo Bar\",\n \"card_banner\": \"foo_bar.jpg\",\n \
\ \"description\": \"Bar\",\n \"title\": \"Foo\",\n }\n\
\ }\n }\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/trainings/{training_id}/registrations:
get:
summary: Get All Registrations for a Training
description: ''
operationId: get-all-registrations-for-a-training
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: training_id
in: path
description: The id of the training
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com//api/v1/academies/:academy_id/trainings/:training_id/registrations\"\
\ ,\n \"data\": {\n \"academy_id\": \"123\",\n \"registrations\"\
: [\n {\n \"id\": \"12345\",\n \"completed_at\"\
: 1488144236206.5808,\n \"is_completed\": true,\n \"\
completion_percentage\": 100,\n \"score\": 95,\n \"\
due_at\": 1488144236206.5808,\n \"due_date\": 1488144236206.5808,\n\
\ \t\"grading_status\": \"completed\",\n \t\"pass_status\"\
: \"passed\", \n\t\t\t\t\t\t\t\t\"enrollment_method\": \"invited\",\n \t\t\t\t\
\t\"internal_assigner_id\": 1,\n \"content\": {\n \
\ \"id\": \"4567\",\n \"academy_overview_description\": \"Foo\
\ Bar\",\n \"card_banner\": \"foo_bar.jpg\",\n \
\ \"description\": \"Bar\",\n \"title\": \"Foo\",\n \
\ }\n },\n\t\t\t\t\t\t{\n \"id\": \"23456\",\n \
\ \"completed_at\": 1488144236206.5808,\n \"is_completed\"\
: true,\n \"completion_percentage\": 100,\n \"score\"\
: 95,\n \"due_at\": 1488144236206.5808,\n \"due_date\"\
: 1488144236206.5808,\n \t\"grading_status\": \"completed\",\n \
\ \t\"pass_status\": \"passed\", \n\t\t\t\t\t\t\t\t\"enrollment_method\": \"\
self-started\",\n \t\t\t\t\t\"internal_assigner_id\": null,\n \
\ \"content\": {\n \"id\": \"4567\",\n \"academy_overview_description\"\
: \"Foo Bar\",\n \"card_banner\": \"foo_bar.jpg\",\n \
\ \"description\": \"Bar\",\n \"title\": \"Foo\",\n \
\ }\n },\n\t\t\t\t\t\t{\n \"id\": \"43212\"\
,\n \"completed_at\": 1488144236206.5808,\n \"is_completed\"\
: true,\n \"completion_percentage\": 100,\n \"score\"\
: 95,\n \"due_at\": 1488144236206.5808,\n \"due_date\"\
: 1488144236206.5808,\n \t\"grading_status\": \"completed\",\n \
\ \t\"pass_status\": \"passed\", \n\t\t\t\t\t\t\t\t\"enrollment_method\": \"\
self-started\",\n \t\t\t\t\t\"internal_assigner_id\": null,\n \
\ \"content\": {\n \"id\": \"4567\",\n \"academy_overview_description\"\
: \"Foo Bar\",\n \"card_banner\": \"foo_bar.jpg\",\n \
\ \"description\": \"Bar\",\n \"title\": \"Foo\",\n \
\ }\n },\n\t\t\t\t\t\t{\n \"id\": \"34567\"\
,\n \"completed_at\": 1488144236206.5808,\n \"is_completed\"\
: true,\n \"completion_percentage\": 100,\n \"score\"\
: 95,\n \"due_at\": 1488144236206.5808,\n \"due_date\"\
: 1488144236206.5808,\n \t\"grading_status\": \"completed\",\n \
\ \t\"pass_status\": \"passed\", \n\t\t\t\t\t\t\t\t\"enrollment_method\": \"\
invited\",\n \t\t\t\t\t\"internal_assigner_id\": 3,\n \"content\"\
: {\n \"id\": \"4567\",\n \"academy_overview_description\"\
: \"Foo Bar\",\n \"card_banner\": \"foo_bar.jpg\",\n \
\ \"description\": \"Bar\",\n \"title\": \"Foo\",\n \
\ }\n }\n ]\n }\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/certifications/{cert_id}:
get:
summary: Get All Enrollments for a Certification
description: ''
operationId: get-certification
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: cert_id
in: path
description: The Certification ID
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
page: 1
per_page: 100
has_more: false
url: https://app.workramp.com/api/v1/academies/:academy_id/certifications/:cert_id
data:
certification:
awarded_by_name: Mr Certifications
awarded_by_title: Chief Certifier
created_at: 1754512880983
description: A really cool certification
id: 0198811d-f557-79c9-93d9-cf7f67add436
name: Cool Certification
awarded_certifictions:
- id: 0198811d-f5c3-70c5-8226-c7405dea3014
name: Jane Doe
email: JaneDoe@example.com
awarded_at: 1488144236206.5808
assigner_user_id: 1
enrollment_method: invited
progress_percentage: 100
- id: 0198811d-f593-7420-87e1-afc443ec315e
name: John Doe
email: JohnDoe@example.com
awarded_at: null
assigner_user_id: null
enrollment_method: self-started
progress_percentage: 0
schema:
type: object
properties:
page:
type: integer
example: 1
default: 0
per_page:
type: integer
example: 100
default: 0
has_more:
type: boolean
example: false
default: true
url:
type: string
example: https://app.workramp.com/api/v1/academies/:academy_id/certifications/:cert_id
data:
type: array
items:
type: object
properties:
id:
type: string
example: '14144'
name:
type: string
example: Jane Doe
email:
type: string
example: JaneDoe@workramp.com
awarded_at:
type: number
example: 1488144236206.5808
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/paths/{path_id}:
get:
summary: Get All Enrollments for a Path
description: ''
operationId: get-all-enrollments-for-a-path
parameters:
- name: academy_id
in: path
description: The ID of the Academy
schema:
type: string
required: true
- name: path_id
in: path
description: The Path ID
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
page: 1
per_page: 20
has_more: false
item_count: 1
url: /api/v1/academies/baseba11-c0de-ce11-ca11-b1adea110c8d/paths/baseba11-dead-de11-dead-b01dfacedead
data:
path:
created_at: 1665158128175
description: Here is a really excellent description
id: deedcafe-c0de-babe-1ace-ca1110c8c0de
name: Mars Pathfinder Path
completed_paths:
- id: 0198811d-f5c3-70c5-8226-c7405dea3014
name: Jane Doe
email: JaneDoe@example.com
completed_at: 1488144236206.5808
assigner_user_id: 1
enrollment_method: invited
progress_percentage: 100
- id: 0198811d-f593-7420-87e1-afc443ec315e
name: John Doe
email: JohnDoe@example.com
completed_at: null
assigner_user_id: null
enrollment_method: self-started
progress_percentage: 0
schema:
type: object
properties:
page:
type: integer
example: 1
default: 0
per_page:
type: integer
example: 20
default: 0
has_more:
type: boolean
example: false
default: true
item_count:
type: integer
example: 1
default: 0
url:
type: string
example: /api/v1/academies/baseba11-c0de-ce11-ca11-b1adea110c8d/paths/baseba11-dead-de11-dead-b01dfacedead
data:
type: object
properties:
path:
type: object
properties:
created_at:
type: integer
example: 1665158128175
default: 0
description:
type: string
example: Here is a really excellent description
id:
type: string
example: deedcafe-c0de-babe-1ace-ca1110c8c0de
name:
type: string
example: Mars Pathfinder Path
completed_paths:
type: array
items:
type: object
properties:
id:
type: string
example: baseba11-deb8-1ead-ba1d-1eafb01dface
name:
type: string
example: Donald Duck
email:
type: string
example: demoacademyuser2@example.com
completed_at:
type: number
example: 1726697288.7276318
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/registrations:
get:
summary: Get All Registrations
description: ''
operationId: get-all-registrations
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com/api/v1/academies/:academy_id/registrations\",\n\
\ \"data\": {\n \"registrations\": [\n {\n \"\
id\": \"8933b28e-dac0-11ec-b88d-0663a65fe87f\",\n \"completed_at\"\
: 1488144236206.5808,\n \"completion_percentage\": 100,\n \
\ \"created_at\": 148814423206.1234,\n \"due_at\": 1488144236206.5808,\n\
\ \"due_date\": 1488144236206.5808,\n \t\"grading_status\"\
: \"completed\",\n \"is_completed\": true,\n \"pass_status\"\
: \"passed\",\n \"score\": 95,\n \"content\": {\n \
\ \"content\": {\n \"id\": \"4567\",\n \
\ \"academy_overview_description\": \"Foo Bar\",\n \
\ \"card_banner\": \"foo_bar.jpg\",\n \"description\"\
: \"Bar\",\n \"title\": \"Foo\"\n }\n \
\ },\n \"user\": {\n \"user\": {\n\
\ \"id\": \"83d0e5a0-dac0-11ec-ab66-0626dc1a526d\",\n \
\ \"display_name\": \"Demo Learner\",\n \"\
email\": \"demolearner@workramp.com\",\n \"first_name\": \"\
Demo\",\n \"last_name\": \"Learner\"\n }\n\
\ }\n }\n ]\n }\n}\n"
schema:
type: object
properties:
page:
type: integer
example: 1
default: 0
per_page:
type: integer
example: 100
default: 0
has_more:
type: boolean
example: false
default: true
url:
type: string
example: https://app.workramp.com/api/v1/academies/:academy_id/registrations
data:
type: object
properties:
registrations:
type: array
items:
type: object
properties:
id:
type: string
example: 8933b28e-dac0-11ec-b88d-0663a65fe87f
completed_at:
type: number
example: 1488144236206.5808
default: 0
completion_percentage:
type: integer
example: 100
default: 0
created_at:
type: number
example: 148814423206.1234
default: 0
due_at:
type: number
example: 1488144236206.5808
default: 0
due_date:
type: number
example: 1488144236206.5808
default: 0
grading_status:
type: string
example: completed
is_completed:
type: boolean
example: true
default: true
pass_status:
type: string
example: passed
score:
type: integer
example: 95
default: 0
content:
type: object
properties:
content:
type: object
properties:
id:
type: string
example: '4567'
academy_overview_description:
type: string
example: Foo Bar
card_banner:
type: string
example: foo_bar.jpg
description:
type: string
example: Bar
title:
type: string
example: Foo
user:
type: object
properties:
user:
type: object
properties:
id:
type: string
example: 83d0e5a0-dac0-11ec-ab66-0626dc1a526d
display_name:
type: string
example: Demo Learner
email:
type: string
example: demolearner@workramp.com
first_name:
type: string
example: Demo
last_name:
type: string
example: Learner
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/awarded_certifications:
get:
summary: Get All Awarded Certifications
description: ''
operationId: get-all-awarded-certifications
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
- name: start
in: query
description: Return certificates awarded at or after this datetime (10-digit seconds from epoch)
schema:
type: string
format: date-time
- name: end
in: query
description: Return certificates awarded at or before this datetime (10-digit seconds from epoch)
schema:
type: string
format: date-time
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com/api/v1/academies/:academy_id/awarded_certifications\"\
,\n \"data\": {\n \"awarded_certifications\": [\n {\n \
\ \"id\": \"2242432\",\n \"name\": \"Basic Training\",\n \
\ \"description\": \"Basic Training Certification\",\n \"user_id\"\
: \"1313313\",\n \"user_name\": \"Johnny\",\n \"user_email\"\
: \"Johns\",\n \"awarded_at\": 1488144236206.5808\n }\n \
\ ]\n }\n}"
schema:
type: object
properties:
page:
type: integer
example: 1
default: 0
per_page:
type: integer
example: 100
default: 0
has_more:
type: boolean
example: false
default: true
url:
type: string
example: https://app.workramp.com/api/v1/academies/:academy_id/awarded_certifications
data:
type: object
properties:
awarded_certifications:
type: array
items:
type: object
properties:
id:
type: string
example: '2242432'
name:
type: string
example: Basic Training
description:
type: string
example: Basic Training Certification
user_id:
type: string
example: '1313313'
user_name:
type: string
example: Johnny
user_email:
type: string
example: Johns
awarded_at:
type: number
example: 1488144236206.5808
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/registrations/{registration_id}:
get:
summary: Get Registration by ID
description: ''
operationId: get-registration
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: registration_id
in: path
description: The id of the registration
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com/api/v1/academies/:academy_id/registrations/:registration_id\"\
\ ,\n \"data\": {\n \"registration\": {\n \"id\": \"12345\",\n\
\ \"completed_at\": 1488144236206.5808,\n \"is_completed\":\
\ true,\n \"completion_percentage\": 100,\n \"score\": 95,\n\
\ \"due_at\": 1488144236206.5808,\n \"due_date\": 1488144236206.5808,\n\
\ \"pass_status\": \"passed\",\n \"content\": {\n \
\ \"id\": \"4567\",\n \"academy_overview_description\": \"Foo\
\ Bar\",\n \"card_banner\": \"foo_bar.jpg\",\n \"description\"\
: \"Bar\",\n \"title\": \"Foo\",\n }\n }\n }\n\
}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
delete:
description: ''
operationId: delete_apiv1academies{academy_id}registrations{registration_id}
responses:
'200':
description: ''
content:
application/json:
examples:
Result:
summary: Result
value: true
parameters:
- name: academy_id
in: path
required: true
description: The id of the Academy
schema:
type: string
default: ''
- name: registration_id
in: path
required: true
description: The id of the Registration
schema:
type: string
default: ''
/api/v1/academies/{academy_id}/users/{contact_id}/registrations:
get:
summary: Deprecated Get All Registrations for a Contact
description: 'Fetch all Academy registrations for a given Contact id. Please consider moving to
the non-deprecated endpoint: **Get All Registrations for a Contact**'
operationId: get-all-registrations-for-a-user
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: contact_id
in: path
description: The id of the Contact
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com/api/v1/academies/:academy_id/users/:user_id/registrations\"\
,\n \"data\": {\n \"user_id\": \"d3d6edf4-e25d-11ea-be19-0242ac140003\"\
,\n \"registrations\": [\n {\n \"id\": 12345,\n \
\ \"completed_at\": 1488144236206.5808,\n \"is_completed\"\
: true,\n \"completion_percentage\": 100,\n \"score\"\
: 95,\n \"due_at\": 1488144236206.5808,\n \"due_date\"\
: 1488144236206.5808,\n \"pass_status\": \"passed\",\n \
\ \"content\": {\n \"id\": \"4567\",\n \"\
academy_overview_description\": \"Foo Bar\",\n \"card_banner\"\
: \"foo_bar.jpg\",\n \"description\": \"Bar\",\n \
\ \"title\": \"Foo\",\n }\n }\n ]\n }\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/trainings:
get:
summary: Get All Trainings
description: ''
operationId: get-all-trainings
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com/api/v1/academies/:academy_id/trainings\",\n \"\
data\": {\n \"trainings\": [\n {\n \"id\": \"d3d6edf4-e25d-11ea-be19-0242ac140013\"\
,\n \"type\": \"course\",\n \"name\": \"Some Course\",\n\
\ \"created_at\": 1488144236206.5808,\n \"card_banner\"\
: nil,\n \"description\": \"Description\",\n \"time_estimate_seconds\"\
: 1300\n }\n ]\n }\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/trainings/{training_id}:
get:
summary: Get Training
description: This endpoint is for getting the details of a particular Guide, Resource, or SCORM
course when you know its ID.
operationId: get-training
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: training_id
in: path
description: The id of the training
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Guide:
value: "{\n \"url\": \"/api/v1/academies/fffa38ac-ba81-11ec-bdee-027c588d9553/trainings/050aa80e-dabc-11ec-8ca6-067360dfb065\"\
,\n \"data\": {\n \"training\": {\n \"id\": \"050aa80e-dabc-11ec-8ca6-067360dfb065\"\
,\n \"type\": \"guide\",\n \"name\": \"Forklift Operations\"\
,\n \"created_at\": 1653326161493,\n \"card_banner\": nil,\n\
\ \"description\": \"Description\",\n \"time_estimate_seconds\"\
: 1300\n }\n }\n}\n"
SCORM:
value: "{\n \"url\": \"/api/v1/academies/fffa38ac-ba81-11ec-bdee-027c588d9553/trainings/d7ea5350-e8db-11ec-ae4e-067360dfb065\"\
,\n \"data\": {\n \"training\": {\n \"id\": \"d7ea5350-e8db-11ec-ae4e-067360dfb065\"\
,\n \"type\": \"scorm\",\n \"name\": \"How to play Golf\",\n\
\ \"created_at\": 1654879145958\n }\n }\n}\n"
Resource:
value: "{\n \"url\": \"/api/v1/academies/fffa38ac-ba81-11ec-bdee-027c588d9553/trainings/c5953390-0849-11ed-9fb5-027c588d9553\"\
,\n \"data\": {\n \"training\": {\n \"id\": \"c5953390-0849-11ed-9fb5-027c588d9553\"\
,\n \"type\": \"resource\",\n \"name\": \"Restaurant Locations\
\ near Kansas City Office\",\n \"created_at\": 1658334845887\n }\n\
\ }\n}\n"
schema:
oneOf:
- title: SCORM
type: object
properties:
url:
type: string
example: /api/v1/academies/fffa38ac-ba81-11ec-bdee-027c588d9553/trainings/d7ea5350-e8db-11ec-ae4e-067360dfb065
data:
type: object
properties:
training:
type: object
properties:
id:
type: string
example: d7ea5350-e8db-11ec-ae4e-067360dfb065
type:
type: string
example: scorm
name:
type: string
example: How to play Golf
created_at:
type: integer
example: 1654879145958
default: 0
- title: Resource
type: object
properties:
url:
type: string
example: /api/v1/academies/fffa38ac-ba81-11ec-bdee-027c588d9553/trainings/c5953390-0849-11ed-9fb5-027c588d9553
data:
type: object
properties:
training:
type: object
properties:
id:
type: string
example: c5953390-0849-11ed-9fb5-027c588d9553
type:
type: string
example: resource
name:
type: string
example: Restaurant Locations near Kansas City Office
created_at:
type: integer
example: 1658334845887
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
'404':
description: '404'
content:
application/json:
examples:
Result:
value: '{"type":"not_found","message":"Error. Not found."}'
schema:
type: object
properties:
type:
type: string
example: not_found
message:
type: string
example: Error. Not found.
deprecated: false
/api/v1/academies/{academy_id}/search/{search_term}:
get:
summary: Search for Trainings
description: ''
operationId: search-for-trainings
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: search_term
in: path
description: The search term that will be used to search for academies with that term
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com/api/v1/academies/:academy_id/search/:search_term\"\
,\n \"data\": {\n \"trainings\": [\n {\n \"id\"\
: \"1424\",\n \"type\": \"course\",\n \"title\": \"\
Some Course\",\n \"name\": \"Some Course\",\n \"created_at\"\
: 1488144236206.5808\n }\n ]\n }\n}"
schema:
type: object
properties:
page:
type: integer
example: 1
default: 0
per_page:
type: integer
example: 100
default: 0
has_more:
type: boolean
example: false
default: true
url:
type: string
example: https://app.workramp.com/api/v1/academies/:academy_id/search/:search_term
data:
type: object
properties:
trainings:
type: array
items:
type: object
properties:
id:
type: string
example: '1424'
type:
type: string
example: course
title:
type: string
example: Some Course
name:
type: string
example: Some Course
created_at:
type: number
example: 1488144236206.5808
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/paths:
get:
summary: Get All Offered Paths
description: This endpoint is for getting all the paths available to learners in your academy.
operationId: get-all-paths-academy
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
page: 1
per_page: 20
has_more: false
url: https://app.workramp.com/api/v1/academies/:academy_id/paths
data:
paths:
- created_at: 1651860613984
description: This is a description
id: c6a7baae-cd67-11ec-a110-027c588d9553
name: Path To Greatness
- created_at: 1665158128175
description: Here is a really excellent description
id: 76c09776-4658-11ed-9127-020df940d6b7
name: Mars Pathfinder Path
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
/api/v1/academies/{academy_id}/certifications:
get:
summary: Get All Offered Certifications
description: This endpoint is for getting all the certifications offered in your academy. If you
are looking to get information about learners -- their awarded certifications, see **Get All Awarded
Certifications For a Contact** or **Get All Awarded Certifications**.
operationId: get-all-certifications-2
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
page: 1
per_page: 100
has_more: false
url: https://app.workramp.com/api/v1/academies/:academy_id/certifications
data:
certifications:
- id: '22422424'
name: Some Cert
description: Some Description of the Cert
created_at: 1488144236206.5808
awarded_by_name: Jane
awarded_by_title: Doe
schema:
type: object
properties:
page:
type: integer
example: 1
default: 0
per_page:
type: integer
example: 100
default: 0
has_more:
type: boolean
example: false
default: true
url:
type: string
example: https://app.workramp.com/api/v1/academies/:academy_id/certifications
data:
type: array
items:
type: object
properties:
id:
type: string
example: '22422424'
name:
type: string
example: Some Cert
description:
type: string
example: Some Description of the Cert
created_at:
type: number
example: 1488144236206.5808
default: 0
awarded_by_name:
type: string
example: Jane
awarded_by_title:
type: string
example: Doe
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
/api/v1/academies/{academy_id}/collections:
get:
summary: Get All Offered Collections
description: This endpoint is for getting all the Collections offered in your academy.
operationId: get-all-offered-collections
parameters:
- name: academy_id
in: path
description: The ID of the Academy
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n 'has_more' => false,\n 'item_count' => 1,\n 'page' => 1,\n 'per_page'\
\ => 20,\n 'url' => https://app.workramp.com/api/v1/academies/001001001/collections,\n\
\ 'data' => {\n \t'collections' => {\n 'created_at' => 1722020032546\n\
\ 'description' => \"Description,\n 'id' => \"112112112\",\n \
\ 'name' => \"Name\"\n }\n \t}\n \n "
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/collections/{collection_id}:
get:
summary: Get Collection
description: This endpoint is for getting detailed information for a specific Collection in your
Academy. The response will include information about each piece of content within the Collection.
operationId: get-collection
parameters:
- name: academy_id
in: path
description: The ID of the Academy
schema:
type: string
required: true
- name: collection_id
in: path
description: The ID of the Collection
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n 'url' => https://app.workramp.com/api/v1/academies/001001001/collections/334334334,\n\
\ 'data' => {\n 'collection' => {\n \"academy_collection_contents\" => [\n\
\ {\n \"id\" => \"112112112\",\n \"content_id\" => \"22422424\"\
,\n \"content_type\" => \"guide\",\n \"content\" => {\n \
\ \"card_banner\" => nil,\n \"description\" => \"Description,\n \
\ \"id\" => \"22422424\",\n \"time_estimate_seconds\" => 1200,\n\
\ \"title\" => \"Title\"\n }\n }\n ]\n }\n }\n\
}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/paths/{path_id}/details:
get:
summary: Get Path
description: This endpoint is for getting detailed information for a specific Path in your Academy.
The response will include information about each piece of content within the Path.
operationId: get-path
parameters:
- name: academy_id
in: path
description: The ID of the Academy
schema:
type: string
required: true
- name: path_id
in: path
description: The ID of the Path
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n 'url' => https://app.workramp.com/api/v1/academies/001001001/paths/112112112/details,\n\
\ 'data' => {\n 'path' => {\n \"academy_certification_contents\" => [\n \
\ {\n \"id\" => 223223223,\n \"academy_certification_id\"\
\ => 112112112,\n \"content_id\" => 334334334,\n \"content_type\"\
\ => \"guide\",\n \"ui_order\" => 1,\n \"created_at\" => 1722020033428,\n\
\ \t\"updated_at\" => 1722020033715,\n \"content\" => {\n \
\ \"card_banner\" => nil,\n \"description\" => \"Description\",\n\
\ \"id\" => 334334334,\n \"time_estimate_seconds\" => 1200,\n\
\ \"title\" => \"Guide Title\"\n }\n ]\n \t}\n \
\ }\n },\n \"banner_image\" => nil,\n \"id\" => 112112112,\n \"title\" => \"\
Path Title\"\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/certifications/{certification_id}/details:
get:
summary: Get Certification
description: This endpoint is for getting detailed information for a specific Certification in your
Academy. The response will include information about each piece of content within the Certification.
operationId: get-certification-1
parameters:
- name: academy_id
in: path
description: The ID of the Academy
schema:
type: string
required: true
- name: certification_id
in: path
description: The ID of the Certification
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n 'url' => https://app.workramp.com/api/v1/academies/001001001/certifications/112112112/details,\n\
\ 'data' => {\n 'certification' => {\n \"academy_certification_contents\"\
\ => [\n {\n \"id\" => 223223223,\n \"academy_certification_id\"\
\ => 112112112,\n \"content_id\" => 334334334,\n \"content_type\"\
\ => \"guide\",\n \"ui_order\" => 1,\n \"created_at\" => 1722020033428,\n\
\ \t\"updated_at\" => 1722020033715,\n \"content\" => {\n \
\ \"card_banner\" => nil,\n \"description\" => \"Description\",\n\
\ \"id\" => 334334334,\n \"time_estimate_seconds\" => 1200,\n\
\ \"title\" => \"Guide Title\"\n }\n ]\n \t}\n \
\ }\n },\n \"banner_image\" => nil,\n \"id\" => 112112112,\n \"title\" => \"\
Certification Title\"\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/events:
get:
summary: Get All Events
description: ''
operationId: get-all-academy-events
parameters:
- name: academy_id
in: path
schema:
type: string
required: true
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n\t\t\"page\": 1,\n \t\t\"per_page\": 20,\n \t\t\"has_more\": false,\n \t\t\
\"item_count\": 3,\n \t\t\"url\": \"/api/v1/academies/:academy_id/events\",\n \t\t\
\"data\": {\n \t\t\t\"events\": [\n {\n \"created_at\": \"\
2024-12-31T16:00:00Z\",\n \"description\": \"some description\",\n \
\ \"id\": \"019321c0-86d5-73bc-8999-1edda9b69d32\",\n \"num_live_sessions\"\
: 2,\n \"num_on_demand_content\": 2,\n \"published\": true,\n\
\ \"title\": \"Torphy, Champlin and Dare\",\n \"updated_at\"\
: \"2024-12-31T16:00:00Z\"\n },\n {\n \"created_at\"\
: \"2024-12-31T16:00:00Z\",\n \"description\": \"some description\",\n\
\ \"id\": \"019321c0-86db-7b87-a952-939b49748376\",\n \"\
num_live_sessions\": 3,\n \"num_on_demand_content\": 1,\n \
\ \"published\": true,\n \"title\": \"Beatty Group\",\n \
\ \"updated_at\": \"2024-12-31T16:00:00Z\"\n },\n {\n \
\ \"created_at\": \"2024-12-31T16:00:00Z\",\n \"description\"\
: \"some description\",\n \"id\": \"019321c0-86e0-7c69-9a1f-e89a11f4d2ff\"\
,\n \"num_live_sessions\": 4,\n \"num_on_demand_content\"\
: 2,\n \"published\": false,\n \"title\": \"Goyette, Beahan\
\ and Rohan\",\n \"updated_at\": \"2024-12-31T16:00:00Z\"\n \
\ }\n \t]\n \t}\n}"
schema:
type: object
properties:
page:
type: integer
example: 1
default: 0
per_page:
type: integer
example: 20
default: 0
has_more:
type: boolean
example: false
default: true
item_count:
type: integer
example: 3
default: 0
url:
type: string
example: /api/v1/academies/:academy_id/events
data:
type: object
properties:
events:
type: array
items:
type: object
properties:
created_at:
type: string
example: '2024-12-31T16:00:00Z'
description:
type: string
example: some description
id:
type: string
example: 019321c0-86d5-73bc-8999-1edda9b69d32
num_live_sessions:
type: integer
example: 2
default: 0
num_on_demand_content:
type: integer
example: 2
default: 0
published:
type: boolean
example: true
default: true
title:
type: string
example: Torphy, Champlin and Dare
updated_at:
type: string
example: '2024-12-31T16:00:00Z'
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/events/{event_id}:
get:
summary: Get Sessions For Event
description: ''
operationId: get-all-event-sessions
parameters:
- name: academy_id
in: path
schema:
type: string
required: true
- name: event_id
in: path
schema:
type: string
required: true
- name: after
in: query
description: 'ex: 2024-12-31T16:00:00Z. Use to filter sessions so that none are returned with
a start time prior to the specified value.'
schema:
type: string
- name: before
in: query
description: 'ex: 2024-12-31T16:00:00Z. Use to filter sessions so that none are returned with
a start time after the specified value.'
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \t\"url\": \"/api/v1/academies/:academy_id/events/:event_id\",\n \t\t\"\
data\": {\n \t\"event\": {\n \t\"created_at\": \"2024-12-31T16:00:00Z\"\
,\n \"description\": nil,\n \"id\": \"01932258-3f67-72f2-b2a8-cf6bd1560c5a\"\
,\n \"num_live_sessions\": 2,\n \"num_on_demand_content\"\
: 1,\n \"published\": false,\n \"title\": \"Swaniawski and\
\ Sons\",\n \"updated_at\": \"2024-12-31T16:00:00Z\",\n \"\
academy_event_sessions\": [\n \t\t{\n \"created_at\"\
: \"2024-12-31T16:00:00Z\",\n \"description\": \"some description\"\
,\n \"end_time\": \"2024-12-31T16:00:00Z,\n \
\ \"id\": \"01932258-3f71-7286-be59-5da0408db832\",\n \"start_time\"\
: \"2025-01-11T14:00:00Z,\n \"title\": \"The Wizard of Oz\",\n\
\ \"updated_at\": \"2025-01-11T16:00:00Z\",\n \
\ \"url\": \"\",\n \"zoom_api_account_id\": nil,\n \
\ \"zoom_meeting_id\": nil,\n \"zoom_meeting_join_url\"\
: nil,\n \"zoom_meeting_start_url\": nil\n }\n\
\ ]\n }\n }\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/events/{event_id}/attendees:
get:
summary: Get Attendees For Event
description: ''
operationId: get-attendees-for-event
parameters:
- name: academy_id
in: path
schema:
type: string
required: true
- name: event_id
in: path
schema:
type: string
required: true
- name: after
in: query
description: 'ex: 2024-12-31T16:00:00Z. Use to filter sessions so that none are returned with
a start time prior to the specified value.'
schema:
type: string
- name: before
in: query
description: 'ex: 2024-12-31T16:00:00Z. Use to filter sessions so that none are returned with
a start time after the specified value.'
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/event_sessions/{event_session_id}/attendees:
get:
summary: Get Attendees for Event Session
description: ''
operationId: get-attendees-for-event-session
parameters:
- name: academy_id
in: path
schema:
type: string
required: true
- name: event_session_id
in: path
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/webhook_subscriptions:
get:
summary: Get All Webhook Subscriptions
description: ''
operationId: get-all-webhook-subscriptions
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: Authorization
in: header
schema:
type: string
- name: Content-Type
in: header
schema:
type: string
default: application/json
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "[\n {\n \"webhookID\": \"id-string-here\",\n \"webhookName\": \"Fancy\
\ Webhook\",\n \"url\": \"https://example.com/workramp-webhook-endpoint\",\n \
\ \"eventTypes\": [\n \"userRegistration\"\n ]\n },\n {\n \"webhookID\"\
: \"id-string-here\",\n \"webhookName\": \"Fancy Webhook #2\",\n \"url\": \"\
https://example.com/workramp-webhook-endpoint-2\",\n \"eventTypes\": [\n \"\
contentCompletion.path\"\n ]\n }\n]\n"
schema:
type: array
items:
type: object
properties:
webhookID:
type: string
example: id-string-here
webhookName:
type: string
example: Fancy Webhook
url:
type: string
example: https://example.com/workramp-webhook-endpoint
eventTypes:
type: array
items:
type: string
example: userRegistration
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/webhook_subscriptions/{subscription_id}:
get:
summary: Get Webhook Subscription
description: ''
operationId: get-webhook-subscription
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: subscription_id
in: path
description: The id of the webhook subscription
schema:
type: string
required: true
- name: Authorization
in: header
schema:
type: string
- name: Content-Type
in: header
schema:
type: string
default: application/json
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"webhookID\": \"id-string-here\",\n \"webhookName\": \"Fancy Webhook\"\
,\n \"url\": \"https://example.com/workramp-webhook-endpoint\",\n \"eventTypes\"\
: [\n \"userRegistration\"\n ]\n}"
schema:
type: object
properties:
webhookID:
type: string
example: id-string-here
webhookName:
type: string
example: Fancy Webhook
url:
type: string
example: https://example.com/workramp-webhook-endpoint
eventTypes:
type: array
items:
type: string
example: userRegistration
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
delete:
summary: Delete Webhook Subscription
description: ''
operationId: delete-webhook-subscription
parameters:
- name: academy_id
in: path
description: The id of the Academy
schema:
type: string
required: true
- name: subscription_id
in: path
description: The id of the webhook subscription
schema:
type: string
required: true
- name: Authorization
in: header
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"success\": true\n}"
schema:
type: object
properties:
success:
type: boolean
example: true
default: true
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/:
get:
description: ''
operationId: get_academy_object_attribute_values
responses:
'200':
description: ''
content:
application/json:
examples:
New Example:
summary: New Example
value: ''
New Example 1:
summary: New Example 1
value:
page: 1
per_page: 20
has_more: false
item_count: 2
url: /api/v1/academies/:academy_id/academy_object_attributes
data:
academy_object_attributes:
- id: 0197a76a-3a98-799e-a828-5d5acf131c4e
name: Difficulty
academy_object_attribute_values:
- id: 0197a76a-4834-712c-874e-e503a14a5775
name: Beginner
- id: 0197a76a-5ffc-71d4-9b95-630287b28941
name: Intermediate
- id: 0197a76a-6dd9-7c9e-b8ea-4b148bc5a330
name: Advanced
- id: 0197a76a-154a-7f5c-9da7-b3322894a1b7
name: Content Type
academy_object_attribute_values:
- id: 0197a76a-25c8-7ee1-894d-b01ee1dffefa
name: Certification
- id: 0197a76a-79de-77cd-bbf6-ba87341ae6bb
name: Course
parameters: []
/api/v1/academies/{academy_id}/academy_object_attributes:
get:
description: ''
operationId: get_academy_object_attribute_values
responses:
'200':
description: ''
content:
application/json:
examples:
New Example:
summary: New Example
value: ''
New Example 1:
summary: New Example 1
value: ''
Result:
summary: Result
value:
page: 1
per_page: 20
has_more: false
item_count: 2
url: /api/v1/academies/:academy_id/academy_object_attributes
data:
academy_object_attributes:
- id: 0197a76a-3a98-799e-a828-5d5acf131c4e
name: Difficulty
academy_object_attribute_values:
- id: 0197a76a-4834-712c-874e-e503a14a5775
name: Beginner
- id: 0197a76a-5ffc-71d4-9b95-630287b28941
name: Intermediate
- id: 0197a76a-6dd9-7c9e-b8ea-4b148bc5a330
name: Advanced
- id: 0197a76a-154a-7f5c-9da7-b3322894a1b7
name: Content Type
academy_object_attribute_values:
- id: 0197a76a-25c8-7ee1-894d-b01ee1dffefa
name: Certification
- id: 0197a76a-79de-77cd-bbf6-ba87341ae6bb
name: Course
parameters:
- in: path
name: academy_id
schema:
type: string
default: ''
required: true
description: The id of the Academy
- name: page
in: query
required: false
description: The page number of the results
schema:
type: integer
format: int32
default: '1'
- name: per_page
in: query
required: false
description: The number of results returned per page
schema:
type: integer
format: int32
default: '20'
/api/v1/academies/{academy_id}/academy_object_attribute:
get:
description: ''
operationId: get_academy_object_attribute_values
responses:
'200':
description: ''
content:
application/json:
examples:
New Example:
summary: New Example
value: ''
New Example 1:
summary: New Example 1
value: ''
Result:
summary: Result
value:
page: 1
per_page: 20
has_more: false
item_count: 5
url: /api/v1/academies/:academy_id/academy_object_attribute_values
data:
academy_object_attribute_values:
- id: 0197a76a-25c8-7ee1-894d-b01ee1dffefa
name: Certification
academy_object_attribute:
id: 0197a76a-154a-7f5c-9da7-b3322894a1b7
name: Content Type
- id: 0197a76a-4834-712c-874e-e503a14a5775
name: Beginner
academy_object_attribute:
id: 0197a76a-3a98-799e-a828-5d5acf131c4e
name: Difficulty
- id: 0197a76a-5ffc-71d4-9b95-630287b28941
name: Intermediate
academy_object_attribute:
id: 0197a76a-3a98-799e-a828-5d5acf131c4e
name: Difficulty
- id: 0197a76a-6dd9-7c9e-b8ea-4b148bc5a330
name: Advanced
academy_object_attribute:
id: 0197a76a-3a98-799e-a828-5d5acf131c4e
name: Difficulty
- id: 0197a76a-79de-77cd-bbf6-ba87341ae6bb
name: Course
academy_object_attribute:
id: 0197a76a-154a-7f5c-9da7-b3322894a1b7
name: Content Type
parameters:
- in: path
name: academy_id
schema:
type: string
required: true
- name: page
in: query
required: false
description: ''
schema:
type: integer
format: int32
default: '1'
- name: per_page
in: query
required: false
description: ''
schema:
type: integer
format: int32
default: '20'
/api/v1/academies/{academy_id/academy_object_attributes:
get:
description: ''
operationId: get_academy_object_attribute_values
responses:
'200':
description: ''
content:
application/json:
examples:
New Example:
summary: New Example
value: ''
New Example 1:
summary: New Example 1
value:
page: 1
per_page: 20
has_more: false
item_count: 2
url: /api/v1/academies/:academy_id/academy_object_attributes
data:
academy_object_attributes:
- id: 0197a76a-3a98-799e-a828-5d5acf131c4e
name: Difficulty
academy_object_attribute_values:
- id: 0197a76a-4834-712c-874e-e503a14a5775
name: Beginner
- id: 0197a76a-5ffc-71d4-9b95-630287b28941
name: Intermediate
- id: 0197a76a-6dd9-7c9e-b8ea-4b148bc5a330
name: Advanced
- id: 0197a76a-154a-7f5c-9da7-b3322894a1b7
name: Content Type
academy_object_attribute_values:
- id: 0197a76a-25c8-7ee1-894d-b01ee1dffefa
name: Certification
- id: 0197a76a-79de-77cd-bbf6-ba87341ae6bb
name: Course
parameters: []
/api/v1/academies/{academy_id}/academy_object_attributess:
get:
description: ''
operationId: get_academy_object_attribute_values
responses:
'200':
description: ''
content:
application/json:
examples:
New Example:
summary: New Example
value: ''
New Example 1:
summary: New Example 1
value: ''
Result:
summary: Result
value:
page: 1
per_page: 20
has_more: false
item_count: 5
url: /api/v1/academies/:academy_id/academy_object_attribute_values
data:
academy_object_attribute_values:
- id: 0197a76a-25c8-7ee1-894d-b01ee1dffefa
name: Certification
academy_object_attribute:
id: 0197a76a-154a-7f5c-9da7-b3322894a1b7
name: Content Type
- id: 0197a76a-4834-712c-874e-e503a14a5775
name: Beginner
academy_object_attribute:
id: 0197a76a-3a98-799e-a828-5d5acf131c4e
name: Difficulty
- id: 0197a76a-5ffc-71d4-9b95-630287b28941
name: Intermediate
academy_object_attribute:
id: 0197a76a-3a98-799e-a828-5d5acf131c4e
name: Difficulty
- id: 0197a76a-6dd9-7c9e-b8ea-4b148bc5a330
name: Advanced
academy_object_attribute:
id: 0197a76a-3a98-799e-a828-5d5acf131c4e
name: Difficulty
- id: 0197a76a-79de-77cd-bbf6-ba87341ae6bb
name: Course
academy_object_attribute:
id: 0197a76a-154a-7f5c-9da7-b3322894a1b7
name: Content Type
parameters:
- in: path
name: academy_id
schema:
type: string
required: true
- name: page
in: query
required: false
description: ''
schema:
type: integer
format: int32
default: '1'
- name: per_page
in: query
required: false
description: ''
schema:
type: integer
format: int32
default: '20'
/api/v1/academies/:academy_id/academy_object_attributes:
get:
description: ''
operationId: get_new-endpoint
responses:
'200':
description: ''
parameters: []
/api/v1/academies/{academy_id}/academy_object_attributes_2:
get:
description: ''
operationId: get_apiv1academies{academy_id}academy_object_attribute_values
responses:
'200':
description: ''
content:
application/json:
examples:
New Example:
summary: New Example
value:
page: 1
per_page: 20
has_more: false
item_count: 2
url: /api/v1/academies/:academy_id/academy_object_attributes
data:
academy_object_attributes:
- id: 0197a76a-154a-7f5c-9da7-b3322894a1b7
name: Content Type
academy_object_attribute_values:
- id: 0197a76a-25c8-7ee1-894d-b01ee1dffefa
name: Certification
- id: 0197a76a-79de-77cd-bbf6-ba87341ae6bb
name: Course
parameters:
- in: path
name: academy_id
schema:
type: string
default: ''
required: true
description: The id of the Academy
- name: page
in: query
required: false
description: The page number of the results
schema:
type: integer
format: int32
default: '1'
- name: per_page
in: query
required: false
description: The number of results returned per page
schema:
type: integer
format: int32
default: '20'
x-readme:
samples-languages:
- shell
/api/v1/academies/${academy_id}/academy_object_attributes:
get:
description: ''
operationId: get_apiv1academies{academy_id}academy_object_attribute_values
responses:
'200':
description: ''
parameters:
- name: academy_id
in: path
required: true
description: The id of the Academy
schema:
type: string
default: ''
- name: page
in: query
required: false
description: ''
schema:
type: integer
format: int32
default: '1'
- name: per_page
in: query
required: false
description: ''
schema:
type: integer
format: int32
default: '20'
/api/v1/academies/:academy id/paths_users:
get:
summary: Get All Completed Path Enrollments
description: ''
operationId: get-all-paths-1
parameters:
- name: page
in: query
description: The page number of the results
schema:
type: integer
format: int32
default: 1
- name: per_page
in: query
description: The number of results returned per page
schema:
type: integer
format: int32
default: 20
- name: completed_only
in: query
description: To get all path users, set to false
schema:
type: string
default: 'true'
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"page\": 1,\n \"per_page\": 100,\n \"has_more\": false,\n \"\
url\": \"https://app.workramp.com/api/v1/academies/:academy id/paths_users/\",\n \
\ \"data\": {\n \"paths_users\": [\n {\n \"id\":\
\ \"1424242\",\n \"user_id\": \"2242432\",\n \"user_name\"\
: \"Johnny\",\n \"user_email\": \"johnny@jimmy.com\",\n \
\ \"path_id\": \"2242432\",\n \"path_name\": \"Basic Training\",\n \
\ \"path_description\": \"Basic Training Path\",\n \"progress_percentage\"\
: 100,\n \"completed_at\": 1488144236206.5808\n }\n \
\ }\n ]\n }\n}"
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
/api/v1/academies/{academy_id}/registrations/by_date_range:
get:
description: ''
operationId: get_apiv1academies:academy_idregistrationsby_date_range
responses:
'400':
description: ''
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: ''
enum:
- 'Missing required parameter: start_time'
- Invalid date format. Use Unix timestamp or ISO8601.
required:
- error
'404':
description: Not Found
content:
application/json:
schema:
type: object
properties:
error:
type: string
required:
- error
parameters:
- in: path
name: academy_id
schema:
type: string
required: true
- in: query
name: start_time
schema:
type: string
format: date
description: ' Start of date range (Unix timestamp or ISO8601)'
required: true
- in: query
name: end_time
schema:
type: string
default: Now
description: End of date range (Unix timestamp or ISO8601)
- in: query
name: training_id
schema:
type: string
description: Filter results to a specific training (Guide, Resource, or SCORM)
- in: query
name: page
schema:
type: string
default: '1'
description: Page number for pagination
- in: query
name: per_page
schema:
type: string
default: '20'
description: Items per page
/api/v1/users/{user_id}/certifications:
get:
summary: Get Awards by User
description: ''
operationId: get-all-awards
parameters:
- name: Authorization
in: header
schema:
type: string
- name: user_id
in: path
description: The id of the user
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
schema:
type: array
items:
type: object
properties:
id:
type: string
description: ID of the award
userId:
type: integer
description: ID of the user
certificationId:
type: string
description: ID of the badge/certification
createdAt:
type: integer
description: Timestamp with milliseconds for when the award was created
updatedAt:
type: integer
description: Timestamp with milliseconds for when the award was updated
assignmentId:
type: string
description: ID of the user's SCORM assignment (if awarded via SCORM)
challengeUserAssignmentId:
type: string
description: ID of the user's challenge assignment (if awarded via challenge)
courseUserAssignmentId:
type: string
description: ID of the user's course assignment (if awarded via course)
trainingClassSessionAttendeeId:
type: string
description: ID of the user's event/training class session attendance (if awarded
via event session)
trainingSeriesUserAssignmentId:
type: string
description: ID of the user's path/training series assignment (if awarded via path)
required:
- id
- certificationId
- userId
- createdAt
- updatedAt
examples:
OK:
summary: OK
value:
- id: 019cde5d-f782-7ca8-82b2-d0db9619ef23
userId: 1
certificationId: 019cde5d-f782-7ef1-95b5-77deff867844
courseUserAssignmentId: 019cde5d-f782-75d3-8cca-a0e60c0b43da
createdAt: 1773252000000
updatedAt: 1773252000000
- id: 019cde5d-f782-7fce-a84e-206aed0c2470
userId: 1
certificationId: 019cde5d-f782-75b9-821e-a6344b95bb0f
challengeUserAssignmentId: 019cde5d-f782-7e5e-965d-daaddbad3817
createdAt: 1773252000000
updatedAt: 1773252000000
- id: 019cde5d-f782-7ec8-92f0-9e1c197994fa
userId: 1
certificationId: 019cde5d-f782-77a4-9ea8-c225469135c9
trainingClassSessionAttendeeId: 019cde5d-f782-7d00-b320-86bfbb2b94f6
createdAt: 1773252000000
updatedAt: 1773252000000
- id: 019cde5d-f782-79d7-8db0-a53fb53d3ce3
userId: 1
certificationId: 019cde5d-f782-7283-9bb9-92fdd368b65a
trainingSeriesUserAssignmentId: 019cde5d-f782-7a61-a4a0-72d85bb8557b
createdAt: 1773252000000
updatedAt: 1773252000000
- id: 019cde5d-f782-7553-bf66-641291d98163
userId: 1
certificationId: 019cde5d-f782-78c7-9c13-1b68019c94d8
assignmentId: 019cde5d-f782-796b-88f1-8959e502fc03
createdAt: 1773252000000
updatedAt: 1773252000000
deprecated: false
x-readme:
code-samples:
- language: curl
code: 'curl https://app.workramp.com/api/v1/users/1918/certifications \
-H "Authorization: Bearer ACCESS_TOKEN"'
samples-languages:
- curl
x-readme:
headers: []
explorer-enabled: false
proxy-enabled: true
x-readme-fauxas: true