> Portal Navigation:
> 
> - Append `.md` to any URL under `https://dev.wix.com/docs/` to get its markdown version.
> - Pages are either content pages (article or reference text) or menu pages (a list of links to child pages).
> - To get a menu page, truncate any URL to a parent path and append `.md` (e.g. `https://dev.wix.com/docs/sdk.md`, `https://dev.wix.com/docs/sdk/core-modules.md`).
> - Top-level index of all portals: https://dev.wix.com/docs/llms.txt
> - Full concatenated docs: https://dev.wix.com/docs/llms-full.txt

# ListAppSkills

# Package: appSkills

# Namespace: AppSkillsService

# Method link: https://dev.wix.com/docs/api-reference/app-management/app-skills/list-app-skills.md

## Permission Scopes:
Read App Skills: SCOPE.APP_SKILLS.READ

## Introduction

Retrieves the activated skills of every app installed on the site in context.

The response never includes `guidelines`. To retrieve a skill's guidelines, call Get App Skill. The site is
determined by the call's identity, not by a parameter; a call with no site context returns an empty list.

---

## REST API

### Schema

```
 Method: listAppSkills
 Description: Retrieves the activated skills of every app installed on the site in context.  The response never includes `guidelines`. To retrieve a skill's guidelines, call Get App Skill. The site is determined by the call's identity, not by a parameter; a call with no site context returns an empty list.
 URL: https://www.wixapis.com/_api/app-skills/v1/app-skills
 Method: GET
 Return type: ListAppSkillsResponse
  - name: appSkills | type: array<AppSkill> | description: Activated skills of the apps installed on the site, without `guidelines`.  | validation: maxItems 3000
     - name: id | type: string | description: App skill GUID. Derived from `appId` and `slug`, so a skill keeps the same GUID on every site and across app versions.  | read-only: true | validation: format GUID
     - name: appId | type: string | description: GUID of the app that declares the skill.  | read-only: true | validation: format GUID
     - name: appName | type: string | description: Name of the app that declares the skill.  | read-only: true | validation: minLength 0, maxLength 100
     - name: slug | type: string | description: Identifier of the skill, unique within its app, as declared in the App Skills extension. For example, `package-tracking`.  | read-only: true | validation: minLength 1, maxLength 64
     - name: displayName | type: string | description: Display name of the skill, for users browsing a site's skills.  Returned only when the app declares one.  | read-only: true | validation: minLength 2, maxLength 200
     - name: description | type: string | description: What the skill does and when to use it.  | read-only: true | validation: minLength 1, maxLength 1024
     - name: toolMethodNames | type: array<string> | description: `methodName` values of the tools declared in the app's App Tools extension that this skill may call. Call them with Invoke Tool in the App Tools API. A skill references only its own app's tools.  | read-only: true | validation: maxItems 50, minLength 1, maxLength 30
     - name: guidelines | type: string | description: Instructions an agent follows once it has chosen the skill, in Markdown.  Returned only by Get App Skill.  | read-only: true | validation: maxLength 20000
     - name: tags | type: array<string> | description: Keywords describing what the skill does, for agents that pick skills by topic.  | read-only: true | validation: maxItems 10, minLength 1, maxLength 30
     - name: examples | type: array<string> | description: Example user requests this skill handles, for agents that match a request to a skill.  | read-only: true | validation: maxItems 5, minLength 1, maxLength 200
     - name: inputModes | type: array<string> | description: MIME media types the skill accepts as input, as in the A2A `AgentSkill.inputModes` field. For example, `text/plain`. Empty when the skill accepts any input the agent accepts.  | read-only: true | validation: maxItems 10, minLength 3, maxLength 100
     - name: outputModes | type: array<string> | description: MIME media types the skill produces, as in the A2A `AgentSkill.outputModes` field. For example, `application/json`. Empty when the skill produces whatever the agent produces.  | read-only: true | validation: maxItems 10, minLength 3, maxLength 100
  - name: pagingMetadata | type: CursorPagingMetadata | description: Paging metadata.  
     - name: count | type: integer | description: Number of items returned in current page.  | validation: format int32
     - name: cursors | type: Cursors | description: Cursor strings that point to the next page, previous page, or both.  
        - name: next | type: string | description: Cursor string pointing to the next page in the list of results.  | validation: maxLength 16000
        - name: prev | type: string | description: Cursor pointing to the previous page in the list of results.  | validation: maxLength 16000
     - name: hasNext | type: boolean | description: Whether there are more pages to retrieve following the current page.  + `true`: Another page of results can be retrieved. + `false`: This is the last page.  


```

### Examples

### List the skills of the apps installed on a site
Retrieves up to 3,000 activated skills of the apps installed on the site, without guidelines. The site is set by the wix-site-id header when calling with an API key.

```curl
curl -X GET \
'https://www.wixapis.com/_api/app-skills/v1/app-skills' \
-H 'Authorization: <AUTH>' \
-H 'wix-site-id: <SITE_ID>'
```

---

## JavaScript SDK

### Schema

```
 Method: wixClientAdmin.appSkills.appSkills.listAppSkills()
 Description: Retrieves the activated skills of every app installed on the site in context.  The response never includes `guidelines`. To retrieve a skill's guidelines, call Get App Skill. The site is determined by the call's identity, not by a parameter; a call with no site context returns an empty list.
 Return type: PROMISE<ListAppSkillsResponse>
  - name: appSkills | type: array<AppSkill> | description: Activated skills of the apps installed on the site, without `guidelines`.  | validation: maxItems 3000
     - name: _id | type: string | description: App skill GUID. Derived from `appId` and `slug`, so a skill keeps the same GUID on every site and across app versions.  | read-only: true | validation: format GUID
     - name: appId | type: string | description: GUID of the app that declares the skill.  | read-only: true | validation: format GUID
     - name: appName | type: string | description: Name of the app that declares the skill.  | read-only: true | validation: minLength 0, maxLength 100
     - name: slug | type: string | description: Identifier of the skill, unique within its app, as declared in the App Skills extension. For example, `package-tracking`.  | read-only: true | validation: minLength 1, maxLength 64
     - name: displayName | type: string | description: Display name of the skill, for users browsing a site's skills.  Returned only when the app declares one.  | read-only: true | validation: minLength 2, maxLength 200
     - name: description | type: string | description: What the skill does and when to use it.  | read-only: true | validation: minLength 1, maxLength 1024
     - name: toolMethodNames | type: array<string> | description: `methodName` values of the tools declared in the app's App Tools extension that this skill may call. Call them with Invoke Tool in the App Tools API. A skill references only its own app's tools.  | read-only: true | validation: maxItems 50, minLength 1, maxLength 30
     - name: guidelines | type: string | description: Instructions an agent follows once it has chosen the skill, in Markdown.  Returned only by Get App Skill.  | read-only: true | validation: maxLength 20000
     - name: tags | type: array<string> | description: Keywords describing what the skill does, for agents that pick skills by topic.  | read-only: true | validation: maxItems 10, minLength 1, maxLength 30
     - name: examples | type: array<string> | description: Example user requests this skill handles, for agents that match a request to a skill.  | read-only: true | validation: maxItems 5, minLength 1, maxLength 200
     - name: inputModes | type: array<string> | description: MIME media types the skill accepts as input, as in the A2A `AgentSkill.inputModes` field. For example, `text/plain`. Empty when the skill accepts any input the agent accepts.  | read-only: true | validation: maxItems 10, minLength 3, maxLength 100
     - name: outputModes | type: array<string> | description: MIME media types the skill produces, as in the A2A `AgentSkill.outputModes` field. For example, `application/json`. Empty when the skill produces whatever the agent produces.  | read-only: true | validation: maxItems 10, minLength 3, maxLength 100
  - name: pagingMetadata | type: CursorPagingMetadata | description: Paging metadata.  
     - name: count | type: integer | description: Number of items returned in current page.  | validation: format int32
     - name: cursors | type: Cursors | description: Cursor strings that point to the next page, previous page, or both.  
        - name: next | type: string | description: Cursor string pointing to the next page in the list of results.  | validation: maxLength 16000
        - name: prev | type: string | description: Cursor pointing to the previous page in the list of results.  | validation: maxLength 16000
     - name: hasNext | type: boolean | description: Whether there are more pages to retrieve following the current page.  + `true`: Another page of results can be retrieved. + `false`: This is the last page.  


```

### Examples

### List the skills of the apps installed on a site
Retrieves every activated skill of the apps installed on the site in context, without guidelines. The site comes from the client's identity.

```javascript
import { appSkills } from "@wix/app-skills";

async function listAppSkills() {
  const response = await appSkills.listAppSkills();
}

/* Promise resolves to:
 * {
 *   "appSkills": [
 *     {
 *       "_id": "ba63540e-9561-3352-9ecf-71ca01130d55",
 *       "appId": "6c4d3373-2afc-46a6-b7e0-9b98a43df146",
 *       "appName": "Shipping Helper",
 *       "slug": "package-tracking",
 *       "displayName": "Package tracking",
 *       "description": "Answers questions about where a shipment is and when it will arrive. Use when the user asks about the status, location or delivery date of an order or package, or gives a tracking number.",
 *       "toolMethodNames": ["getPackageTracking"],
 *       "tags": ["shipping", "package tracking", "delivery status", "order tracking", "tracking number"],
 *       "examples": [
 *         "Where is my package?",
 *         "Track shipment 1Z999AA10123456784",
 *         "When will order #4521 arrive?",
 *         "Has the parcel for Dana Levi been delivered yet?",
 *         "Is the delivery from yesterday delayed?"
 *       ],
 *       "inputModes": [],
 *       "outputModes": []
 *     },
 *     {
 *       "_id": "e424adbf-017f-39e4-982a-29f5e92e67cc",
 *       "appId": "dc3d45f5-4f88-4f7f-92f9-f00c98ed745d",
 *       "appName": "Global Pricing Helper",
 *       "slug": "vat-check",
 *       "displayName": "VAT check",
 *       "description": "Explains the VAT that applies in a country and calculates it for a given amount.",
 *       "toolMethodNames": ["getVatRules", "calculateVat"],
 *       "tags": ["vat", "tax rates", "europe", "sales tax"],
 *       "examples": [
 *         "What VAT applies in France?",
 *         "How much VAT is on a 200 euro order in Germany?"
 *       ],
 *       "inputModes": ["text/plain"],
 *       "outputModes": ["text/plain", "application/json"]
 *     }
 *   ],
 *   "pagingMetadata": {
 *     "count": 2,
 *     "hasNext": false
 *   }
 * }
 */

```

### listAppSkills (self-hosted)
Self-hosted SDK calls require you to [create a client](https://dev.wix.com/docs/sdk/articles/work-with-the-sdk/about-the-wix-client.md).

```javascript
import { createClient } from '@wix/sdk';
import { appSkills } from '@wix/app-skills';
// Import the auth strategy for the relevant access type
// Import the relevant host module if needed

const myWixClient = createClient ({
  modules: { appSkills },
  // Include the auth strategy and host as relevant
});


async function listAppSkills() {
  const response = await myWixClient.appSkills.listAppSkills();
};
```

---