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

# Skills

> Every published skills operation, generated from the contract.

16 operations on `client.skills`, including `skills.traces`, `skills.versions`.

Path parameters come first, positionally; the request body is last, as a plain
object. Method names are `snake_case` in Python and `camelCase` in
TypeScript, and resource names follow the same rule.

<CodeGroup>
  ```python Python theme={null}
  result = client.skills.aggregate(body)
  ```

  ```typescript TypeScript theme={null}
  const result = await client.skills.aggregate(body);
  ```
</CodeGroup>

## Operations

| Call                                                             | Route                                                               | Does                                                    |
| ---------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------- |
| `client.skills.aggregate(body)`                                  | `POST /skill/v1/skills/aggregate`                                   | Aggregate skills                                        |
| `client.skills.archive(skill_id)`                                | `POST /skill/v1/skills/{skill_id}/archive`                          | Archive a skill                                         |
| `client.skills.bulk_create(body)`                                | `POST /skill/v1/skills/bulk`                                        | Create many skills from bundles                         |
| `client.skills.create()`                                         | `POST /skill/v1/skills`                                             | Create a skill from a bundle                            |
| `client.skills.get_bundle(skill_id)`                             | `GET /skill/v1/skills/{skill_id}/bundle`                            | Download a skill bundle                                 |
| `client.skills.get_enriched(skill_id)`                           | `GET /skill/v1/skills/{skill_id}`                                   | Read a skill with its files' L1 embedded                |
| `client.skills.list()`                                           | `GET /skill/v1/skills`                                              | List skills                                             |
| `client.skills.list_insights(skill_id)`                          | `GET /skill/v1/skills/{skill_id}/insights`                          | List a skill's derived insights                         |
| `client.skills.search(body)`                                     | `POST /skill/v1/skills/search`                                      | Search skills                                           |
| `client.skills.update(skill_id, body)`                           | `PATCH /skill/v1/skills/{skill_id}`                                 | Update a skill's envelope                               |
| `client.skills.traces.get(skill_id, trace_id)`                   | `GET /skill/v1/skills/{skill_id}/traces/{trace_id}`                 | Read one skill trace                                    |
| `client.skills.traces.list(skill_id)`                            | `GET /skill/v1/skills/{skill_id}/traces`                            | List traces for a skill                                 |
| `client.skills.traces.list_spans(skill_id, trace_id)`            | `GET /skill/v1/skills/{skill_id}/traces/{trace_id}/spans`           | List spans in a skill trace                             |
| `client.skills.traces.query_stats(skill_id, body)`               | `POST /skill/v1/skills/{skill_id}/traces/stats/query`               | Query skill trace statistics                            |
| `client.skills.versions.get_bundle(skill_id, version_ordinal)`   | `GET /skill/v1/skills/{skill_id}/versions/{version_ordinal}/bundle` | Download a pinned skill version's bundle                |
| `client.skills.versions.get_enriched(skill_id, version_ordinal)` | `GET /skill/v1/skills/{skill_id}/versions/{version_ordinal}`        | Read a pinned skill version with its files' L1 embedded |

## Related

<CardGroup cols={2}>
  <Card title="How the client is organised" icon="list" href="/sdk/operations">
    Resources, call shapes, and errors.
  </Card>

  <Card title="Errors and retries" icon="triangle-exclamation" href="/developers/errors-and-retries">
    What the SDK raises, and which calls are safe to retry.
  </Card>
</CardGroup>
