Learn

This document uses the REST API. For more details, see the Authentication for API page.

Create a new learning program (Early Access)

post

Creates a new learning program in DRAFT status

Required permissions

  • Edit Tenant Details (tenant.edit)
Authorizations
Path parameters
tenant_idstring · uuidRequired

The unique identifier of the tenant.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
Body
Responses
201

A learning program was created successfully.

application/vnd.api+json
post
POST /rest/tenants/{tenant_id}/learn/learning_programs HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Content-Type: application/vnd.api+json
Accept: */*
Content-Length: 86

{
  "data": {
    "attributes": {
      "description": "text",
      "name": "text"
    },
    "type": "learning_program"
  }
}
{
  "data": {
    "attributes": {
      "created_at": "2025-09-02T17:11:43.657Z",
      "creator_user_id": "123e4567-e89b-12d3-a456-426614174000",
      "description": "text",
      "duration": 1,
      "name": "text",
      "start_date": "2025-09-02",
      "status": "draft",
      "tenant_id": "123e4567-e89b-12d3-a456-426614174000",
      "updated_at": "2025-09-02T17:11:43.657Z"
    },
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "type": "learning_program"
  },
  "jsonapi": {
    "version": "1.0"
  },
  "links": {
    "self": "https://example.com/api/this_resource"
  }
}

List learning programs for a tenant (Early Access)

get

Retrieves a paginated list of learning programs available for the specified tenant.

Required permissions

  • Edit Tenant Details (tenant.edit)
Authorizations
Path parameters
tenant_idstring · uuidRequired

The unique identifier of the tenant.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
limitinteger · int32 · min: 10 · max: 100Optional

Number of results to return per page

Default: 10Example: 10
starting_afterstringOptional

Return the page of results immediately after this cursor

Example: v1.eyJpZCI6IjEwMDAifQo=
ending_beforestringOptional

Return the page of results immediately before this cursor

Example: v1.eyJpZCI6IjExMDAifQo=
namestring · min: 1 · max: 255Optional

Search learning programs by name (case-insensitive partial match)

Responses
200

Returns a paginated list of learning programs

application/vnd.api+json
get
GET /rest/tenants/{tenant_id}/learn/learning_programs HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "attributes": {
        "created_at": "2025-09-02T17:11:43.657Z",
        "creator_user_id": "123e4567-e89b-12d3-a456-426614174000",
        "description": "text",
        "duration": 1,
        "name": "text",
        "start_date": "2025-09-02",
        "status": "draft",
        "tenant_id": "123e4567-e89b-12d3-a456-426614174000",
        "updated_at": "2025-09-02T17:11:43.657Z"
      },
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "type": "learning_program"
    }
  ],
  "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"
  }
}

Get a single learning program for a tenant (Early Access)

get

Retrieves a single learning program by its ID for the specified tenant.

Required permissions

  • Edit Tenant Details (tenant.edit)
Authorizations
Path parameters
tenant_idstring · uuidRequired

The unique identifier of the tenant.

learning_program_idstring · uuidRequired

The unique identifier of the learning program.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
Responses
200

Returns a single learning program

application/vnd.api+json
get
GET /rest/tenants/{tenant_id}/learn/learning_programs/{learning_program_id} HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Accept: */*
{
  "data": {
    "attributes": {
      "created_at": "2025-09-02T17:11:43.657Z",
      "creator_user_id": "123e4567-e89b-12d3-a456-426614174000",
      "description": "text",
      "duration": 1,
      "name": "text",
      "start_date": "2025-09-02",
      "status": "draft",
      "tenant_id": "123e4567-e89b-12d3-a456-426614174000",
      "updated_at": "2025-09-02T17:11:43.657Z"
    },
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "type": "learning_program"
  },
  "jsonapi": {
    "version": "1.0"
  },
  "links": {
    "self": "https://example.com/api/this_resource"
  }
}

Delete a learning program (Early Access)

delete

Deletes a learning program by its ID for the specified tenant.

Required permissions

  • Edit Tenant Details (tenant.edit)
Authorizations
Path parameters
tenant_idstring · uuidRequired

The unique identifier of the tenant.

learning_program_idstring · uuidRequired

The unique identifier of the learning program.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
Responses
204

The learning program was deleted successfully.

delete
DELETE /rest/tenants/{tenant_id}/learn/learning_programs/{learning_program_id} HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Accept: */*

No content

Get participants of a learning program (Early Access)

get

Retrieves a paginated list of participants enrolled in a specific learning program.

Required permissions

  • Edit Tenant Details (tenant.edit)
Authorizations
Path parameters
tenant_idstring · uuidRequired

The unique identifier of the tenant.

learning_program_idstring · uuidRequired

The unique identifier of the learning program.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
limitinteger · int32 · min: 10 · max: 100Optional

Number of results to return per page

Default: 10Example: 10
starting_afterstringOptional

Return the page of results immediately after this cursor

Example: v1.eyJpZCI6IjEwMDAifQo=
ending_beforestringOptional

Return the page of results immediately before this cursor

Example: v1.eyJpZCI6IjExMDAifQo=
Responses
200

Returns a paginated list of learning program participants

application/vnd.api+json
get
GET /rest/tenants/{tenant_id}/learn/learning_programs/{learning_program_id}/participants HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "attributes": {
        "learning_program_id": "123e4567-e89b-12d3-a456-426614174000",
        "user_id": "123e4567-e89b-12d3-a456-426614174000"
      },
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "type": "learning_program_participant"
    }
  ],
  "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_participants_count": 1
  }
}

Create learning program content (Early Access)

post

Creates content for an existing learning program

Required permissions

  • Edit Tenant Details (tenant.edit)
Authorizations
Path parameters
tenant_idstring · uuidRequired

The unique identifier of the tenant.

learning_program_idstring · uuidRequired

The unique identifier of the learning program.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
Body
Responses
204

The learning program content was created successfully.

post
POST /rest/tenants/{tenant_id}/learn/learning_programs/{learning_program_id}/contents HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Content-Type: application/vnd.api+json
Accept: */*
Content-Length: 97

{
  "data": [
    {
      "lesson_id": "123e4567-e89b-12d3-a456-426614174000",
      "type": "learning_program_content"
    }
  ]
}

No content

Get contents of a learning program (Early Access)

get

Retrieves a paginated list of contents for a specific learning program.

Required permissions

  • Edit Tenant Details (tenant.edit)
Authorizations
Path parameters
tenant_idstring · uuidRequired

The unique identifier of the tenant.

learning_program_idstring · uuidRequired

The unique identifier of the learning program.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
limitinteger · int32 · min: 10 · max: 100Optional

Number of results to return per page

Default: 10Example: 10
starting_afterstringOptional

Return the page of results immediately after this cursor

Example: v1.eyJpZCI6IjEwMDAifQo=
ending_beforestringOptional

Return the page of results immediately before this cursor

Example: v1.eyJpZCI6IjExMDAifQo=
Responses
200

Returns a paginated list of learning program contents

application/vnd.api+json
get
GET /rest/tenants/{tenant_id}/learn/learning_programs/{learning_program_id}/contents HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "attributes": {
        "learning_program_id": "123e4567-e89b-12d3-a456-426614174000",
        "lesson_id": "123e4567-e89b-12d3-a456-426614174000"
      },
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "type": "learning_program_content"
    }
  ],
  "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"
  }
}

Get individual user learning progress (Early Access)

get

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)
Authorizations
Path parameters
org_idstring · uuidRequired

The unique identifier of the organization.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
starting_afterstringOptional

Return the page of results immediately after this cursor

Example: v1.eyJpZCI6IjEwMDAifQo=
ending_beforestringOptional

Return the page of results immediately before this cursor

Example: v1.eyJpZCI6IjExMDAifQo=
limitinteger · int32 · min: 10 · max: 100Optional

Number of results to return per page

Default: 10Example: 10
typestring · enumOptional

Filter by the learn catalog resource type

Default: lessonPossible values:
titlestringOptionalDeprecated

This is deprecated, use Titles instead

titlesstring[] · min: 1 · max: 50Optional

Filter by the title of the learning path or lesson resource

statusstring · enumOptional

Filter by progress status of the resources

Possible values:
emailsstring · email[] · min: 1 · max: 50Optional

Filter by user email addresses

Example: ["[email protected]","[email protected]"]
completion_intervalstringOptional

Filter by date interval in ISO 8601 format (e.g. 2024-01-01/2024-02-01)

Pattern: ^[\d]{4}-[\d]{2}-[\d]{2}/[\d]{4}-[\d]{2}-[\d]{2}$
Responses
200

Organization reporting users overview

application/vnd.api+json
get
GET /rest/orgs/{org_id}/learn/progress/users HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "attributes": {
        "completion_date": "2025-09-02T17:11:43.657Z",
        "completion_history": [
          "2025-09-02T17:11:43.657Z"
        ],
        "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"
  }
}

Get collective learning progress (Early Access)

get

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)
Authorizations
Path parameters
org_idstring · uuidRequired

The unique identifier of the organization.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
starting_afterstringOptional

Return the page of results immediately after this cursor

Example: v1.eyJpZCI6IjEwMDAifQo=
ending_beforestringOptional

Return the page of results immediately before this cursor

Example: v1.eyJpZCI6IjExMDAifQo=
limitinteger · int32 · min: 10 · max: 100Optional

Number of results to return per page

Default: 10Example: 10
typestring · enumOptional

Filter by the learn catalog resource type

Default: lessonPossible values:
titlestringOptionalDeprecated

This is deprecated, use Titles instead

cwesstring[] · min: 1 · max: 50Optional

Filter by CWE rules

cvesstring[] · min: 1 · max: 50Optional

Filter by CVE rules

Responses
200

Organization reporting users overview

application/vnd.api+json
get
GET /rest/orgs/{org_id}/learn/progress/catalog 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
  }
}

Bulk creation of assignments for users in an organization. (Early Access)

post

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)
Authorizations
Path parameters
org_idstring · uuidRequired

The unique identifier of the organization.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
Body
due_datestring · dateOptional
email_custom_messagestringOptional

Custom message given by assignment creator for email notification.

email_notificationbooleanOptional

Email notification is enabled or not for new assignment creation

email_receive_copybooleanOptional

Assigner will receive a copy of the email

reset_learning_progressbooleanOptional

Global flag to reset progress for all lesson assignments in the request

reset_progress_beforestring · dateOptional

Reset progress for all lesson assignments before this date (exclusive)

Responses
204

Assignments were successfully created.

post
POST /rest/orgs/{org_id}/learn/assignments 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-09-02",
  "email_custom_message": "text",
  "email_notification": true,
  "email_receive_copy": true,
  "reset_learning_progress": true,
  "reset_progress_before": "2025-09-02"
}

No content

Update due date for assignments in an organization. (Early Access)

patch

Allows an admin to update the due date for existing assignments within their organization.

Required permissions

  • Edit assignments (org.learn_assignment.edit)
Authorizations
Path parameters
org_idstring · uuidRequired

The unique identifier of the organization.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
Body
Responses
204

Assignments due date was successfully updated.

patch
PATCH /rest/orgs/{org_id}/learn/assignments 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-09-02"
    },
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "type": "resource"
  }
}

No content

Retrieve a list of assignments for an organization (Early Access)

get

Allows an admin to obtain a comprehensive list of all assignments within their organization.

Required permissions

  • View Organization assignments (org.learn_assignment.read)
Authorizations
Path parameters
org_idstring · uuidRequired

The unique identifier of the organization.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
starting_afterstringOptional

Return the page of results immediately after this cursor

Example: v1.eyJpZCI6IjEwMDAifQo=
ending_beforestringOptional

Return the page of results immediately before this cursor

Example: v1.eyJpZCI6IjExMDAifQo=
limitinteger · int32 · min: 10 · max: 100Optional

Number of results to return per page

Default: 10Example: 10
Responses
200

A list of assignments was successfully retrieved.

application/vnd.api+json
get
GET /rest/orgs/{org_id}/learn/assignments HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "attributes": {
        "due_date": "2025-09-02",
        "lesson_id": "text",
        "user_id": "123e4567-e89b-12d3-a456-426614174000",
        "assigning_user_id": "123e4567-e89b-12d3-a456-426614174000",
        "completed_date": "2025-09-02T17:11:43.657Z",
        "created_at": "2025-09-02T17:11:43.657Z",
        "updated_at": "2025-09-02T17:11:43.657Z",
        "assigning_user_email": "text",
        "lesson_created_at": "2025-09-02T17:11:43.657Z",
        "lesson_slug": "text",
        "lesson_title": "text",
        "lesson_updated_at": "2025-09-02T17:11:43.657Z",
        "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"
  }
}

Bulk deletion of assignments in an organization (Early Access)

delete

Allows an admin to delete multiple assignments within their organization.

Required permissions

  • Delete assignments (org.learn_assignment.delete)
Authorizations
Path parameters
org_idstring · uuidRequired

The unique identifier of the organization.

Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
Body
Responses
204

Assignments were successfully deleted.

delete
DELETE /rest/orgs/{org_id}/learn/assignments 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 resources (Early Access)

get

List Snyk Learn's catalog resources

Authorizations
Query parameters
versionstringRequired

Requested API version

Default: 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))?))$
content_sourcestring · enumOptional

The source of educational resources

Possible values:
limitinteger · int32 · min: 10 · max: 100Optional

Number of results to return per page

Default: 10Example: 10
starting_afterstringOptional

Return the page of results immediately after this cursor

Example: v1.eyJpZCI6IjEwMDAifQo=
ending_beforestringOptional

Return the page of results immediately before this cursor

Example: v1.eyJpZCI6IjExMDAifQo=
Responses
200

Returns a list of catalog resources

application/vnd.api+json
get
GET /rest/learn/catalog HTTP/1.1
Host: api.snyk.io
Authorization: YOUR_API_KEY
Accept: */*
{
  "data": [
    {
      "attributes": {
        "author": "text",
        "date_published": "2025-09-02",
        "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?