List all tags: Migration guide

This guide details how the List all tags endpoint has changed (previously known as getSkills in v1).

💡

Key changes

  • Terminology: The API v2 uses different terms for what was previously known as 'skills' in API v1.
    • Where you previously used 'skill' in API v1, you'll now use 'tag'.
    • Skill in API v2 now refers to a separate platform solution.
  • Pagination: To improve performance, we've added pagination to this endpoint. Now, you'll receive your results in pages of 5000 tags. For more information, see our Pagination guide.
  • Filtering: The API v2 uses the Left-Hand side (LHS) bracket notation in query parameters for filtering. For more information, see our Filtering guide.

Documentation links

Here is the link to the API reference for the API v2.

🛑

The documentation for the API v1 is not publicly available.

Endpoint mapping

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

  • API v1: /api/v1/skills
  • API v2: /api/v2/tags

Behavior changes

The v2 endpoint is paginated with a page size of 5,000 tags.

Input changes

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

API v1 input example

curl --request GET \
  --url 'https://app.360learning.com/api/v1/skills?company={{company}}&apiKey={{apiKey}}’

API v2 input example

curl --request GET \
     --url 'https://app.360learning.com/api/v2/tags?isMain[eq]=true' \
     --header '360-api-version: v2.0' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer your_access_token'

Main input differences

Change typeAPI v1API v2
Added
Query parameter
-isMain (Optional): Filter on isMain property with LHS bracket notation. Expected value format is a boolean (true or false).

Output changes

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

API v1 output example

[
  {
    "_id": "60c72b2f9b1e8b001c8e4a7e",
    "name": "Active listening",
    "isMain": true,
    "author": "[email protected]",
    "externalId": "1234",
    "sourceLang": "en",
    "defaultLang": "fr",
    "translationsLangs": [
      {
        "lang": "fr",
        "published": true,
        "translators": [
          "[email protected]",
          "[email protected]"
        ]
      }
    ],
    "translations": [
      {
        "lang": "fr",
        "name": "Ecoute active"
      }
    ]
  }
]

API v2 output example

[
  {
    "isMain": true,
    "_id": "60c72b2f9b1e8b001c8e4a7e",
    "name": "Active listening",
    "externalId": "1234"
  }
]

Main output differences

API v2 provides a simplified response structure, focusing solely on tag properties. It no longer includes translation-related fields (sourceLang, defaultLang, translationsLangs, translations) from v1. Additionally, API v2 supports pagination, indicating subsequent pages via a Link header.

Change typeAPI v1API v2
Removed
Output property
author: The email of the author. Removed from endpoint v2, not replaced.-
Removed
Output property
sourceLang: The source language for the skill. Removed from endpoint v2, not replaced.-
Removed
Output property
defaultLang: The default language for the skill. Removed from endpoint v2, not replaced.-
Removed
Output property
translationsLangs: Array of objects for each translation language. Removed from endpoint v2 version, not replaced.-
Removed
Output property
translations: Translations data for the skill. Removed from endpoint v2, not replaced.-
Modified
Success output
200: Array of objects.200: Array of objects, with an optional Link header for pagination.
Added
Header
-Link(Optional): URL to fetch the immediate next page of results. Only included if there is another page of results.