List all paths: Migration guide

This guide outlines the changes introduced in the List all paths v2 endpoint (previously known as getPaths in v1).

💡

Key changes

  • Pagination: The v2 endpoint is paginated and returns 200 paths per page.

Documentation links

Here are the links to the API reference for:

Endpoint mapping

Here's the direct correlation between the v1 and v2 endpoint URLs:

  • API v1: /api/v1/paths
  • API v2: /api/v2/paths

Input changes

This section details the specific alterations to the input requirements between API versions.

API v1 input example

curl --location -g 'https://{{host}}/api/v1/paths?company={{company}}&apiKey={{apiKey}}'

API v2 input example

curl --request GET \
     --url https://app.360learning.com/api/v2/paths \
     --header '360-api-version: v2.0' \
     --header 'accept: application/json'

Main input differences

Change typeAPI v1API v2
Modified
Query parameters
modifiedAfter (Optional): Timestamp filters, in the formatYYYY-MM-DDTHH:mm:ss.sssZ.modifiedAt (Optional): Modified name, functionality, syntax, and date format. Now, this single filter replaces the former filter modifiedAfter. It filters paths by modification date range using the LHS bracket notation. The date format is now YYYY-MM-DD.
Added
Query parameter
-createdAt (Optional): New filter. It filters paths by creation date range using the LHS bracket notation. The date format is now YYYY-MM-DD
Added
Query parameter
-status (Optional): New filter. It filters paths by status using the LHS bracket notation.

Output changes

This section details the specific alterations to the successful output returned between API versions.

API v1 output example

{
  "_id": "6307bb2f66977c8e2316d6d5",
  "authorId": "62bdbc00293a604543f44386",
  "description": "This is my first path.",
  "certificatePDF": "My certificate",
  "createdAt": "2022-08-25T18:10:55.000Z",
  "defaultLang": "en",
  "groupId": "62bdbc00293a604543f44387",
  "modifiedAt": "2023-05-15T16:04:24.334Z",
  "name": "My first path",
  "sessionIds": [
    "6307bb305ab5e0ebdb1138e8"
  ],
  "sourceLang": "en",
  "steps": [
    {
      "_id": "62e29a923c24c589a7f21aa5",
      "title": "Welcome to the team!",
      "type": "course"
    },
    {
      "_id": "6372592c18f8f7bf27527977",
      "title": "First classroom",
      "type": "classroom"
    }
  ],
  "translationsLangs": [
    {
      "lang": "fr",
      "published": true,
      "translators": [
        "[email protected]"
      ]
    }
  ]
}

API v2 output example

[
  {
    "_id": "507f1f77bcf86cd799439011",
    "authorId": "507f1f77bcf86cd799439011",
    "createdAt": "2025-07-01T08:17:42.042Z",
    "defaultLang": "bg",
    "groupId": "507f1f77bcf86cd799439011",
    "modifiedAt": "2025-07-01T08:17:42.042Z",
    "name": "Employee Onboarding",
    "options": {
      "linearProgression": true,
      "mandatoryReplay": true,
      "displayForum": true,
      "displayClassroomMessages": true,
      "automatedReminders": true,
      "notificationOnStepCreation": true
    },
    "sourceLang": "bg",
    "status": "archived",
    "steps": [
      {
        "_id": "507f1f77bcf86cd799439011",
        "type": "assessment",
        "options": {
          "isExamination": true,
          "minScore": 0
        }
      },
      {
        "_id": "507f1f77bcf86cd799439011",
        "type": "classroom",
        "options": {
          "optional": true,
          "relativeDate": {
            "unit": "day",
            "value": 0.01
          },
          "autoRegistration": true,
          "selfRegistration": {
            "enabled": true,
            "delay": {
              "unit": "day",
              "value": 0.01
            }
          },
          "attendanceSheets": {
            "unit": "day",
            "number": 0
          }
        }
      },
      {
        "_id": "507f1f77bcf86cd799439011",
        "type": "course",
        "options": {
          "optional": true,
          "relativeDate": {
            "unit": "day",
            "value": 0.01
          },
          "showCorrection": "never",
          "showForum": "never",
          "timeLimit": {
            "mode": "maxTime",
            "value": 0
          },
          "minScore": 0,
          "attemptsLimit": 1,
          "availability": {
            "mode": "afterEnrollmentDate",
            "relativeDate": {
              "unit": "day",
              "value": 0.01
            }
          }
        },
        "subtype": "quiz"
      },
      {
        "_id": "507f1f77bcf86cd799439011",
        "type": "email",
        "options": {
          "recipientType": "learner",
          "scheduling": {
            "relativeTo": "afterEnrollmentDate",
            "relativity": 1,
            "condition": "completed"
          }
        }
      },
      {
        "_id": "507f1f77bcf86cd799439011",
        "type": "path",
        "options": {
          "optional": true,
          "relativeDate": {
            "unit": "day",
            "value": 0.01
          }
        }
      },
      {
        "_id": "507f1f77bcf86cd799439011",
        "type": "program",
        "options": {
          "optional": true,
          "relativeDate": {
            "unit": "day",
            "value": 0.01
          }
        }
      },
      {
        "_id": "507f1f77bcf86cd799439011",
        "type": "slackMessage",
        "options": {
          "recipientType": "learner",
          "scheduling": {
            "relativeTo": "afterEnrollmentDate",
            "relativity": 1,
            "condition": "completed"
          }
        }
      },
      {
        "_id": "507f1f77bcf86cd799439011",
        "type": "teamsMessage",
        "options": {
          "recipientType": "learner",
          "scheduling": {
            "relativeTo": "afterEnrollmentDate",
            "relativity": 1,
            "condition": "completed"
          }
        }
      }
    ],
    "translations": [
      {
        "lang": "fr",
        "published": true,
        "translatorIds": [
          "507f1f77bcf86cd799439011"
        ],
        "translatedFields": {
          "name": "Accueil des employés",
          "description": "Ce chemin vous apprend à intégrer un nouveau collaborateur !"
        }
      }
    ],
    "additionalInformation": "Training content 203",
    "certificateId": "507f1f77bcf86cd799439011",
    "description": "This path will teach you how to onboard a new employee!",
    "estimatedDuration": {
      "unit": "day",
      "value": 0
    },
    "estimatedWeeklyCommitment": {
      "min": 0,
      "max": 0
    }
  }
]

Main output differences

API v2 introduces pagination for the List all paths endpoint. Instead of returning all paths in a single response, it now returns a maximum of 500 paths per page. To retrieve subsequent pages, you need to follow the URL provided in the Link header of the response.

Change typeAPI v1API v2
Removed
Output property
sessionIds (Required): Removed from endpoint v2 version. The list of sessions is not returned anymore in the response. You can use List all sessions in a path with the path unique ID to retrieve the list.
Added
Output property
-status (Required): path status.
Added
Output property
-options (Required): full list of path options.
Added
Output property
-estimatedDuration (Required): path estimated duration.
Added
Output property
-estimatedWeeklyCommitment (Required): path estimated weekly commitment.
Modified
Output property
translationLangs (Required): list of path's translations. Renamed to translations in v2.
Modified
Success response
200: Returns an array of all paths.200: Returns one page of 200 paths.
Added
Header
-Link: String. URL (between < and >) to fetch the immediate next page of results. Only included if there is another page of results.