Learn
Retrieves detailed learning progress status per user, including completion dates and history for each catalog resource.
Required permissions
View Organization Snyk Learn Reports (org.learn_report.read)
API key value must be prefixed with "Token ".
The unique identifier of the organization.
Requested API version
2024-05-13~experimentalExample: 2024-05-13~experimentalPattern: ^(wip|work-in-progress|experimental|beta|((([0-9]{4})-([0-1][0-9]))-((3[01])|(0[1-9])|([12][0-9]))(~(wip|work-in-progress|experimental|beta))?))$Return the page of results immediately after this cursor
v1.eyJpZCI6IjEwMDAifQo=Return the page of results immediately before this cursor
v1.eyJpZCI6IjExMDAifQo=Number of results to return per page
10Example: 10Filter by the learn catalog resource type
lessonPossible values: This is deprecated, use Titles instead
Filter by the title of the learning path or lesson resource
Filter by progress status of the resources
Filter by user email addresses
["[email protected]","[email protected]"]Filter by date interval in ISO 8601 format (e.g. 2024-01-01/2024-02-01)
^[\d]{4}-[\d]{2}-[\d]{2}/[\d]{4}-[\d]{2}-[\d]{2}$Organization reporting users overview
Bad Request: A parameter provided as a part of the request was invalid.
Forbidden: the request requires an authentication token with more or different permissions.
Not Found: The resource being operated on could not be found.
Internal Server Error: An error was encountered while attempting to process the request.
GET /rest/orgs/{org_id}/learn/progress/users?version=2024-05-13~experimental HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Accept: */*
{
"data": [
{
"attributes": {
"completion_date": "2025-11-12T16:21:06.678Z",
"completion_history": [
"2025-11-12T16:21:06.678Z"
],
"is_expired": true,
"resource": "learning_path",
"status": "completed"
},
"id": "123e4567-e89b-12d3-a456-426614174000",
"relationships": {
"catalog": {
"data": {
"attributes": {
"cves": [
"text"
],
"cwes": [
"text"
],
"slug": "text",
"title": "text"
},
"id": "text",
"type": "lesson"
},
"links": {
"self": "text"
}
},
"user": {
"data": {
"attributes": {
"email": "text",
"username": "text"
},
"id": "text",
"type": "user"
},
"links": {
"first": "https://example.com/api/resource?ending_before=v1.eyJpZCI6IjExIn0K",
"last": "https://example.com/api/resource?starting_after=v1.eyJpZCI6IjMwIn0K",
"next": "https://example.com/api/resource?starting_after=v1.eyJpZCI6IjEwIn0K"
}
}
},
"type": "progress"
}
],
"jsonapi": {
"version": "1.0"
},
"links": {
"first": "https://example.com/api/resource?ending_before=v1.eyJpZCI6IjExIn0K",
"last": "https://example.com/api/resource?starting_after=v1.eyJpZCI6IjMwIn0K",
"next": "https://example.com/api/resource?starting_after=v1.eyJpZCI6IjEwIn0K"
}
}Retrieves aggregated counts of users' lesson or learning path statuses (completed, in progress, todo) across all catalog resources for an organization.
Required permissions
View Organization Snyk Learn Reports (org.learn_report.read)
API key value must be prefixed with "Token ".
The unique identifier of the organization.
Requested API version
2024-05-13~experimentalExample: 2024-05-13~experimentalPattern: ^(wip|work-in-progress|experimental|beta|((([0-9]{4})-([0-1][0-9]))-((3[01])|(0[1-9])|([12][0-9]))(~(wip|work-in-progress|experimental|beta))?))$Return the page of results immediately after this cursor
v1.eyJpZCI6IjEwMDAifQo=Return the page of results immediately before this cursor
v1.eyJpZCI6IjExMDAifQo=Number of results to return per page
10Example: 10Filter by the learn catalog resource type
lessonPossible values: This is deprecated, use Titles instead
Filter by CWE rules
Filter by CVE rules
Organization reporting users overview
Bad Request: A parameter provided as a part of the request was invalid.
Forbidden: the request requires an authentication token with more or different permissions.
Not Found: The resource being operated on could not be found.
Internal Server Error: An error was encountered while attempting to process the request.
GET /rest/orgs/{org_id}/learn/progress/catalog?version=2024-05-13~experimental HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Accept: */*
{
"data": [
{
"attributes": {
"completed_count": 1,
"in_progress_count": 1,
"todo_count": 1,
"users_completed_count": 1,
"users_in_progress_count": 1,
"users_todo_count": 1
},
"id": "123e4567-e89b-12d3-a456-426614174000",
"relationships": {
"catalog": {
"data": {
"attributes": {
"cves": [
"text"
],
"cwes": [
"text"
],
"slug": "text",
"title": "text"
},
"id": "text",
"type": "lesson"
},
"links": {
"self": "text"
}
}
},
"type": "progress"
}
],
"jsonapi": {
"version": "1.0"
},
"links": {
"first": "https://example.com/api/resource?ending_before=v1.eyJpZCI6IjExIn0K",
"last": "https://example.com/api/resource?starting_after=v1.eyJpZCI6IjMwIn0K",
"next": "https://example.com/api/resource?starting_after=v1.eyJpZCI6IjEwIn0K"
},
"meta": {
"total_org_members": 1
}
}Allows an admin to create assignments in bulk for all or a subset of users within their organization.
Required permissions
Create assignments (org.learn_assignment.create)
API key value must be prefixed with "Token ".
The unique identifier of the organization.
Requested API version
2024-05-13~experimentalExample: 2024-05-13~experimentalPattern: ^(wip|work-in-progress|experimental|beta|((([0-9]{4})-([0-1][0-9]))-((3[01])|(0[1-9])|([12][0-9]))(~(wip|work-in-progress|experimental|beta))?))$Custom message given by assignment creator for email notification.
Email notification is enabled or not for new assignment creation
Assigner will receive a copy of the email
Global flag to reset progress for all lesson assignments in the request
Reset progress for all lesson assignments before this date (exclusive)
Assignments were successfully created.
Bad Request: A parameter provided as a part of the request was invalid.
Forbidden: the request requires an authentication token with more or different permissions.
Not Found: The resource being operated on could not be found.
Internal Server Error: An error was encountered while attempting to process the request.
POST /rest/orgs/{org_id}/learn/assignments?version=2024-05-13~experimental HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Content-Type: application/vnd.api+json
Accept: */*
Content-Length: 302
{
"data": [
{
"attributes": {
"lesson_ids": [
"text"
],
"user_ids": [
"123e4567-e89b-12d3-a456-426614174000"
]
},
"type": "lesson_assignment"
}
],
"due_date": "2025-11-12",
"email_custom_message": "text",
"email_notification": true,
"email_receive_copy": true,
"reset_learning_progress": true,
"reset_progress_before": "2025-11-12"
}No content
Allows an admin to update the due date for existing assignments within their organization.
Required permissions
Edit assignments (org.learn_assignment.edit)
API key value must be prefixed with "Token ".
The unique identifier of the organization.
Requested API version
2024-05-13~experimentalExample: 2024-05-13~experimentalPattern: ^(wip|work-in-progress|experimental|beta|((([0-9]{4})-([0-1][0-9]))-((3[01])|(0[1-9])|([12][0-9]))(~(wip|work-in-progress|experimental|beta))?))$Assignments due date was successfully updated.
Bad Request: A parameter provided as a part of the request was invalid.
Unauthorized: the request requires an authentication token.
Forbidden: the request requires an authentication token with more or different permissions.
Not Found: The resource being operated on could not be found.
Internal Server Error: An error was encountered while attempting to process the request.
PATCH /rest/orgs/{org_id}/learn/assignments?version=2024-05-13~experimental HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Content-Type: application/vnd.api+json
Accept: */*
Content-Length: 170
{
"data": {
"attributes": {
"assignments_ids": [
"123e4567-e89b-12d3-a456-426614174000"
],
"due_date": "2025-11-12"
},
"id": "123e4567-e89b-12d3-a456-426614174000",
"type": "resource"
}
}No content
Allows an admin to obtain a comprehensive list of all assignments within their organization.
Required permissions
View Organization assignments (org.learn_assignment.read)
API key value must be prefixed with "Token ".
The unique identifier of the organization.
Requested API version
2024-05-13~experimentalExample: 2024-05-13~experimentalPattern: ^(wip|work-in-progress|experimental|beta|((([0-9]{4})-([0-1][0-9]))-((3[01])|(0[1-9])|([12][0-9]))(~(wip|work-in-progress|experimental|beta))?))$Return the page of results immediately after this cursor
v1.eyJpZCI6IjEwMDAifQo=Return the page of results immediately before this cursor
v1.eyJpZCI6IjExMDAifQo=Number of results to return per page
10Example: 10A list of assignments was successfully retrieved.
Bad Request: A parameter provided as a part of the request was invalid.
Forbidden: the request requires an authentication token with more or different permissions.
Not Found: The resource being operated on could not be found.
Internal Server Error: An error was encountered while attempting to process the request.
GET /rest/orgs/{org_id}/learn/assignments?version=2024-05-13~experimental HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Accept: */*
{
"data": [
{
"attributes": {
"due_date": "2025-11-12",
"lesson_id": "text",
"user_id": "123e4567-e89b-12d3-a456-426614174000",
"assigning_user_id": "123e4567-e89b-12d3-a456-426614174000",
"completed_date": "2025-11-12T16:21:06.678Z",
"created_at": "2025-11-12T16:21:06.678Z",
"updated_at": "2025-11-12T16:21:06.678Z",
"assigning_user_email": "text",
"learning_program_id": "123e4567-e89b-12d3-a456-426614174000",
"lesson_created_at": "2025-11-12T16:21:06.678Z",
"lesson_slug": "text",
"lesson_title": "text",
"lesson_updated_at": "2025-11-12T16:21:06.678Z",
"user_email": "[email protected]"
},
"id": "123e4567-e89b-12d3-a456-426614174000",
"type": "lesson_assignment"
}
],
"jsonapi": {
"version": "1.0"
},
"links": {
"first": "https://example.com/api/resource?ending_before=v1.eyJpZCI6IjExIn0K",
"last": "https://example.com/api/resource?starting_after=v1.eyJpZCI6IjMwIn0K",
"next": "https://example.com/api/resource?starting_after=v1.eyJpZCI6IjEwIn0K"
}
}Allows an admin to delete multiple assignments within their organization.
Note: Assignments that are part of a Learning Program cannot be deleted through this endpoint.
Required permissions
Delete assignments (org.learn_assignment.delete)
API key value must be prefixed with "Token ".
The unique identifier of the organization.
Requested API version
2024-05-13~experimentalExample: 2024-05-13~experimentalPattern: ^(wip|work-in-progress|experimental|beta|((([0-9]{4})-([0-1][0-9]))-((3[01])|(0[1-9])|([12][0-9]))(~(wip|work-in-progress|experimental|beta))?))$Assignments were successfully deleted.
Bad Request: A parameter provided as a part of the request was invalid.
Forbidden: the request requires an authentication token with more or different permissions.
Not Found: The resource being operated on could not be found.
Conflict - The assignment cannot be deleted because it is part of a Learning Program.
Internal Server Error: An error was encountered while attempting to process the request.
DELETE /rest/orgs/{org_id}/learn/assignments?version=2024-05-13~experimental HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Content-Type: application/vnd.api+json
Accept: */*
Content-Length: 83
{
"data": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"type": "lesson_assignment"
}
]
}No content
List Snyk Learn's catalog resources
API key value must be prefixed with "Token ".
Requested API version
2024-05-13~experimentalExample: 2024-05-13~experimentalPattern: ^(wip|work-in-progress|experimental|beta|((([0-9]{4})-([0-1][0-9]))-((3[01])|(0[1-9])|([12][0-9]))(~(wip|work-in-progress|experimental|beta))?))$The source of educational resources
Number of results to return per page
10Example: 10Return the page of results immediately after this cursor
v1.eyJpZCI6IjEwMDAifQo=Return the page of results immediately before this cursor
v1.eyJpZCI6IjExMDAifQo=Returns a list of catalog resources
Not Found: The resource being operated on could not be found.
Internal Server Error: An error was encountered while attempting to process the request.
GET /rest/learn/catalog?version=2024-05-13~experimental HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Accept: */*
{
"data": [
{
"attributes": {
"author": "text",
"date_published": "2025-11-12",
"description": "text",
"education_content_category": "security education",
"estimated_duration": 1,
"image": "text",
"lesson_ids": [
"text"
],
"name": "text",
"seo_title": "text",
"slug": "text",
"tags": [
{
"tag_type": "text",
"tag_values": [
"text"
]
}
],
"url": "text"
},
"id": "123e4567-e89b-12d3-a456-426614174000",
"type": "lesson"
}
],
"jsonapi": {
"version": "1.0"
},
"links": {
"first": "https://example.com/api/resource?ending_before=v1.eyJpZCI6IjExIn0K",
"last": "https://example.com/api/resource?starting_after=v1.eyJpZCI6IjMwIn0K",
"next": "https://example.com/api/resource?starting_after=v1.eyJpZCI6IjEwIn0K"
}
}Last updated
Was this helpful?

