> ## Documentation Index
> Fetch the complete documentation index at: https://docs.memorylake.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List Skills

> Returns a paginated list of the skills in your tenant

```
GET /openapi/memorylake/api/v3/skills
```

Returns the skills created in your tenant, newest first. Built-in skills are not included.

<Note>
  **Permission required:** `skill:read` — rows you cannot open are left out of the list rather than the list being refused
</Note>

### Query Parameters

<ParamField query="page_size" type="integer" default="20">
  Number of skills per page, from 1 to 100.
</ParamField>

<ParamField query="continuation_token" type="string">
  Token returned by the previous call. Omit on the first request.
</ParamField>

<ParamField query="name_fuzzy" type="string">
  Fuzzy search by skill name.
</ParamField>

<RequestExample>
  ```bash First page theme={null}
  curl -X GET 'https://app.memorylake.ai/openapi/memorylake/api/v3/skills?page_size=20' \
    -H 'Authorization: Bearer sk_xxxxxx'
  ```

  ```bash Search by name theme={null}
  curl -X GET 'https://app.memorylake.ai/openapi/memorylake/api/v3/skills?name_fuzzy=research' \
    -H 'Authorization: Bearer sk_xxxxxx'
  ```
</RequestExample>

### Response

<ResponseField name="data" type="object">
  <Expandable title="Paginated skill list">
    <ResponseField name="items" type="array">
      Array of skill objects

      <Expandable title="Skill object">
        <ResponseField name="id" type="string">Skill ID. Use it to refer to the skill everywhere else.</ResponseField>
        <ResponseField name="name" type="string">Skill name, unique within your tenant</ResponseField>
        <ResponseField name="display_title" type="string">Title shown in the console</ResponseField>
        <ResponseField name="description" type="string">What the skill does</ResponseField>
        <ResponseField name="latest_version" type="integer">Latest published version number. `0` means no package has been published. Absent when the current state could not be read.</ResponseField>
        <ResponseField name="latest_security_status" type="string">Security review state of the latest version: `pending`, `safe`, `blocked` or `error`. Absent has two meanings — see [Security Review](/features/memorylake/api-reference/skills/overview#security-review).</ResponseField>
        <ResponseField name="created_at" type="string">Creation timestamp</ResponseField>
        <ResponseField name="updated_at" type="string">Last update timestamp</ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="continuation_token" type="string">Token for the next page. Absent or `null` when this is the last page.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Success (200) theme={null}
  {
    "success": true,
    "data": {
      "items": [
        {
          "id": "skill-2b0f5f9f4ea54767822f51f4940c8f24",
          "name": "equity-research",
          "display_title": "Equity Research",
          "description": "Pulls filings and price history and drafts an equity research note",
          "latest_version": 3,
          "latest_security_status": "safe",
          "created_at": "2026-08-21T09:12:44Z",
          "updated_at": "2026-09-02T11:20:31Z"
        },
        {
          "id": "skill-7c41d0a2e9b84f6d9a3e5b1c8f2d4a60",
          "name": "contract-review",
          "display_title": "Contract Review",
          "description": "Flags non-standard clauses in supplier contracts",
          "latest_version": 1,
          "latest_security_status": "pending",
          "created_at": "2026-08-19T06:03:18Z",
          "updated_at": "2026-08-19T06:03:18Z"
        }
      ],
      "continuation_token": "eyJsYXN0X2lkIjoic2tpbGwtN2M0MWQwYTJlOWI4NGY2ZDlhM2U1YjFjOGYyZDRhNjAifQ"
    }
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.