---
title: "Returns all skills."
method: GET
path: "/agents/skills"
tags: ["agentSkills"]
---

# Returns all skills.

`GET /agents/skills`

Returns one page of shared skills available to the requesting user. Pages contain at most 1000 skills. Use page and pageSize query parameters; pagination metadata is returned in aw-* headers.

<Check title="Required Permissions" icon="key">Any authenticated user.</Check>

## Query parameters

- `page` integer
- `pageSize` integer
- `orderby` string
- `filterby` string

## Response `200`

OK

- SkillResponseModel[]
  - `id` string, uuid — The skill identifier.
  - `createdBy` string, uuid — The user who created the skill.
  - `createdOn` string, date-time — When the skill was created.
  - `updatedOn` string, date-time, nullable — When the skill was last updated.
  - `key` string, nullable — The stable key used to reference the skill.
  - `name` string, nullable — The name shown in the skill library.
  - `description` string, nullable — A short explanation of what the skill does.
  - `instructions` string, nullable — The Markdown instruction body from `SKILL.md`.
  - `instructionsSource` string, nullable — The source from which the instructions were created.
  - `type` 'user' | 'agent' — The ownership type.
  - `userId` string, uuid, nullable — The owning user for a user-owned skill.
  - `agentId` string, uuid, nullable — The owning agent for an agent-owned skill.
  - `accessLevel` 'read' | 'manage' — The requesting user's resolved access level.
  - `isOwner` boolean — Whether the requesting user owns the skill.
  - `workspaceAccessLevel` 'read' | 'manage' — The workspace-wide access level.
  - `linkedAgentCount` integer — The number of linked agents.
  - `metadata` string, nullable — The skill frontmatter as a JSON object.
  - `hasFiles` boolean — Whether the skill includes bundled files.
  - `secretRequirements` SkillSecretRequirementResponseModel[], nullable — The secrets that the skill declares.
    - `id` string, uuid — The secret requirement identifier.
    - `envVarName` string, nullable — The environment variable name the secret is injected as.
    - `description` string, nullable — The description shown to users when providing the secret.
    - `scope` 'workspace' | 'user' — Who must provide the secret value.
    - `isRequired` boolean — Whether the secret is required for the skill to work.
    - `hasValue` boolean — Whether a value is available for the requesting user.

## Other responses

- `400` — Bad Request

## Changes

- **2026-09-20** `5332322ffca3` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/awork-io/apis/api-v1-reference/changes/agents/skills/get.md)

---

[API](https://skmtc.dev/awork-io/apis/api-v1-reference.md) · [All operations](https://skmtc.dev/awork-io/apis/api-v1-reference/llms.txt) · [OpenAPI document](https://skmtc.dev/awork-io/apis/api-v1-reference/revisions/eadefd26df12?raw)
