List skills
GET /v1/skills
Lists the skills the key’s owner can read.
The list holds your organization’s skills that the key’s owner can read, and the built-in skills. Skills an
administrator has marked as verified come first, then the rest by updated_at, newest first. The list leaves
out skills shared from another organization, archived skills and skills with no version yet.
The key must have the skills:read capability. For what each capability allows, see Keys.
Query parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
limit | integer | No | 20 | The maximum number of skills to return. Must be between 1 and 200. |
page | string | No | The next_page value from the previous response. Leave it out to get the first page. | |
source | string | No | The set of skills to return. One of custom (your organization’s skills) or anthropic (built-in skills). Leave it out to return both. |
Response
Returns 200 with a page of skill objects in data and a next_page value to pass as page. A response can hold fewer skills than limit, or none, and still have a next_page value. Keep requesting pages until next_page is null. For every field, see Skills.
{ "data": [ { "id": "8b3f6c1e-2a4d-4f7b-9c1e-5d6a7b8c9d0e", "type": "skill", "created_at": "2026-10-27T15:02:11.204Z", "display_name": "pr-summary", "latest_version_id": "b1c2d3e4-f5a6-4b7c-8d9e-0f1a2b3c4d5e", "source": { "type": "custom" }, "updated_at": "2026-10-27T15:02:11.204Z" }, { "id": "pptx", "type": "skill", "created_at": "2026-10-14T00:00:00.000Z", "display_name": "pptx", "latest_version_id": "c7d8e9f0-1a2b-4c3d-8e4f-5a6b7c8d9e0f", "source": { "type": "anthropic" }, "updated_at": "2026-10-20T00:00:00.000Z" } ], "next_page": null}Errors
This endpoint can return these errors as well as the common errors.
| Status | error.type | Cause and fix |
|---|---|---|
| 400 | invalid_request_error | limit is outside 1 to 200. Send a value from 1 to 200. |
| 400 | invalid_request_error | source is not custom or anthropic. Send one of them, or leave it out. |
| 400 | invalid_request_error | The request has a query parameter other than limit, page and source. Remove it. |
Example
curl -sS "$CONTEXT_BASE_URL/v1/skills?limit=20&source=custom" -H "x-api-key: $CONTEXT_API_KEY"for skill in client.beta.skills.list(source="custom"): # auto-paginates print(skill.id, skill.display_name)for await (const skill of client.beta.skills.list({ source: "custom" })) console.log(skill.id, skill.display_name)