Skip to content

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

NameTypeRequiredDefaultDescription
limitintegerNo20The maximum number of skills to return. Must be between 1 and 200.
pagestringNoThe next_page value from the previous response. Leave it out to get the first page.
sourcestringNoThe 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.

Statuserror.typeCause and fix
400invalid_request_errorlimit is outside 1 to 200. Send a value from 1 to 200.
400invalid_request_errorsource is not custom or anthropic. Send one of them, or leave it out.
400invalid_request_errorThe request has a query parameter other than limit, page and source. Remove it.

Example

cURL
curl -sS "$CONTEXT_BASE_URL/v1/skills?limit=20&source=custom" -H "x-api-key: $CONTEXT_API_KEY"
Python
for skill in client.beta.skills.list(source="custom"): # auto-paginates
print(skill.id, skill.display_name)
TypeScript
for await (const skill of client.beta.skills.list({ source: "custom" })) console.log(skill.id, skill.display_name)