# Hyperskill — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Explore Hyperskill.org's learning content by browsing tracks, projects, stages, and topics, or retrieve detailed information about any specific course component and educational provider. Search and filter through the platform's complete curriculum to find exactly what you need for your learning journey.

**Category:** Education | **Website:** [hyperskill.org/](https://hyperskill.org/) | **Docs:** [parse.bot/marketplace/ea20f461-fd84-4258-a7fb-704f6738726c/hyperskill-org-api](https://parse.bot/marketplace/ea20f461-fd84-4258-a7fb-704f6738726c/hyperskill-org-api)

Pay-per-use API proxy for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/hyperskill/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## Endpoints

### Get project

Get details for a specific project by ID. Returns full project information including stages IDs, tracks, description, and rating.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | integer | Yes | Project ID. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/hyperskill/get-project \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"id":"<integer>"}'
```

### Get provider

Get details for a specific provider by ID. Returns full provider information including title, description, logo, cover, track list, topic count, and project count.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | integer | Yes | Provider ID. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/hyperskill/get-provider \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"id":"<integer>"}'
```

### Get stage

Get details for a specific stage by ID. Returns full stage information including title, description, order, project reference, and prerequisites.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | integer | Yes | Stage ID. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/hyperskill/get-stage \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"id":"<integer>"}'
```

### Get topic

Get details for a specific topic by ID. Returns full topic information including title, children, prerequisites, and hierarchy.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | integer | Yes | Topic ID. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/hyperskill/get-topic \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"id":"<integer>"}'
```

### Get track

Get details for a specific track by ID. Returns full track information including all projects, FAQ, ratings, and membership count.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `id` | integer | Yes | Track ID. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/hyperskill/get-track \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"id":"<integer>"}'
```

### List project stages

List stages for a specific project. Returns paginated results with stage details including title, description, order, and prerequisites. Requesting a page beyond available stages returns an upstream error rather than an empty list.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number. |
| `project_id` | integer | Yes | Project ID. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/hyperskill/list-project-stages \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","project_id":"<integer>"}'
```

### List projects

List all projects. Returns paginated results with project summaries including title, language, stages count, and rating. Requesting a page beyond available results returns an upstream error.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `language` | string | No | Filter by programming language (e.g. python, java, kotlin). |
| `page` | integer | No | Page number. |
| `page_size` | integer | No | Number of projects per page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/hyperskill/list-projects \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"language":"<string>","page":"<integer>","page_size":"<integer>"}'
```

### List providers

List content providers. Returns paginated results with provider details including title, description, tracks, topic count, and project count. Requesting a page beyond available results returns an upstream error rather than an empty list.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/hyperskill/list-providers \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>"}'
```

### List topics

List topics. Returns paginated results with topic summaries including title, provider, and programming language. Requesting a page beyond available results returns an upstream error.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number. |
| `page_size` | integer | No | Number of topics per page. |
| `track_id` | integer | No | Filter by track ID. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/hyperskill/list-topics \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","page_size":"<integer>","track_id":"<integer>"}'
```

### List tracks

List all tracks (courses) on Hyperskill. Returns paginated results with track summaries including title, description, member count, and topic count. Requesting a page beyond available results returns an upstream error.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category` | integer | No | Filter by track category ID (e.g. 1). |
| `page` | integer | No | Page number. |
| `page_size` | integer | No | Number of tracks per page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/hyperskill/list-tracks \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"category":"<integer>","page":"<integer>","page_size":"<integer>"}'
```

## Next steps

- [All wrapped API providers](https://paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://paywithlocus.com/agent/index.md): every Locus agent page.