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

# Get a skill

> Retrieve a single skill by ID.

`GET /api/v1/cloud/skills/{skill_id}`

Retrieves the details of a single skill by ID.

## Path parameters

| Parameter  | Type   | Required | Description             |
| ---------- | ------ | -------- | ----------------------- |
| `skill_id` | string | Yes      | Skill unique identifier |

## Query parameters

| Parameter         | Type    | Required | Description                                                        |
| ----------------- | ------- | -------- | ------------------------------------------------------------------ |
| `include_content` | boolean | No       | Set to `true` to include base64-encoded skill content in `content` |

## Headers

| Header          | Required | Description         |
| --------------- | -------- | ------------------- |
| `Authorization` | Yes      | `Bearer $QODER_PAT` |

## Example request

```bash theme={null}
curl -X GET https://api.qoder.com/api/v1/cloud/skills/skill_019e3bba474b73cfaf19eae9b5f5e66d \
  -H "Authorization: Bearer $QODER_PAT"
```

## Example response

**HTTP 200 OK**

```json theme={null}
{
  "id": "skill_019e3bba474b73cfaf19eae9b5f5e66d",
  "type": "skill",
  "display_title": "test-skill-api-doc",
  "description": "A test skill for API documentation",
  "source": "custom",
  "latest_version": "1",
  "metadata": {
    "team": "docs"
  },
  "created_at": "2026-05-18T15:35:24.248164Z",
  "updated_at": "2026-05-18T15:35:24.248164Z"
}
```

## Response fields

| Field              | Type   | Description                                                                                     |
| ------------------ | ------ | ----------------------------------------------------------------------------------------------- |
| `id`               | string | Skill unique identifier with the `skill_` prefix                                                |
| `type`             | string | Always `"skill"`                                                                                |
| `display_title`    | string | Display title derived from the stored skill name                                                |
| `description`      | string | Skill description                                                                               |
| `source`           | string | Skill source: `custom` or `qoder`                                                               |
| `latest_version`   | string | Latest version number as a string                                                               |
| `metadata`         | object | Custom metadata object stored with the Skill; defaults to `{}`                                  |
| `content`          | string | Base64-encoded skill content; present only when `include_content=true` and content is available |
| `content_encoding` | string | Present with `content`; value is `"base64"`                                                     |
| `created_at`       | string | Creation time (ISO 8601)                                                                        |
| `updated_at`       | string | Last update time (ISO 8601)                                                                     |

## Errors

| HTTP | Type              | Trigger                                                                                |
| ---- | ----------------- | -------------------------------------------------------------------------------------- |
| 401  | `TOKEN_INVALID`   | Missing or invalid authentication token                                                |
| 404  | `not_found_error` | Skill does not exist or is no longer accessible: "Skill '\{skill\_id}' was not found." |

See [Errors](/cloud-agents/api/conventions/errors) for the full error envelope.

## Related

<CardGroup cols={2}>
  <Card title="Agent Skills" icon="sparkles" href="/cloud-agents/skills">
    Attach domain expertise to your agent.
  </Card>
</CardGroup>
