# Stockholm University — Wrapped API

> **You are on:** `https://api.beta.paywithlocus.com/api` | [llms.txt](https://beta.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.

> Search and explore Stockholm University's complete course catalog to find specific courses, browse academic programs, check class schedules, and discover available subjects. Get detailed information about any course offering to plan your studies and manage your academic schedule.

**Category:** Education | **Website:** [su.se/](https://su.se/) | **Docs:** [parse.bot/marketplace/9ccb6418-a86b-4824-a4ed-a3eeb6bb739d/su-se-api](https://parse.bot/marketplace/9ccb6418-a86b-4824-a4ed-a3eeb6bb739d/su-se-api)

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

## Access

**Base URL:** `https://api.beta.paywithlocus.com/api/wrapped/credits/stockholm-university/`
**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 course detail

Retrieve full details for a specific course or program offering by its catalog URL path. Returns education metadata (code, name, description, credits, entry requirements, organisation), event/instance data (scheduling, admission, cost), literature links, syllabus archive link, TimeEdit base URL, course report URL, and contact elements. The URL path is obtained from search results items' occasions[].uri field.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | Course detail page URL path from search results occasions[].uri (e.g. '/utbildning/utbildningskatalog/fi/fimf10?semester=HT2025&eventcode=10031'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/stockholm-university/get-course-detail \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"url":"<string>"}'
```

### Get course schedule

Construct and return the direct TimeEdit schedule link for a specific course instance. The semester and event_code identify the exact course offering, obtained from search results occasions[].eventCode and occasions[].semester fields.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `event_code` | string | Yes | Event code for the course instance, from search results occasions[].eventCode (e.g. '10031'). |
| `semester` | string | Yes | Semester code (e.g. 'VT2026', 'HT2025'). |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/stockholm-university/get-course-schedule \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"event_code":"<string>","semester":"<string>"}'
```

### List subjects

Retrieve the list of available filter facets from the course catalog. Returns all facet groups including education levels, education types, semesters, study forms, study times, study paces, teaching languages, institutions, and academic subjects. Useful for discovering valid filter values for search_courses and search_programs.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `language` | string | No | Interface language: 'sv' (Swedish) or 'en' (English). |

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

### Search courses

Full-text search over Stockholm University's course catalog. Supports filtering by education level, semester, teaching language, study form, study pace, study time, and institution. Returns paginated results with course metadata including credits, subjects, and occasion details. Each course item includes a URI for fetching full details via get_course_detail.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `institution` | string | No | Organisation/institution ID filter. Comma-separated for multiple. |
| `language` | string | No | Interface language: 'sv' (Swedish) or 'en' (English). |
| `level` | string | No | Education level ID filter. Comma-separated for multiple values. '1' for Grundnivå, '2' for Avancerad nivå. |
| `page` | integer | No | Page number (0-based). |
| `query` | string | No | Search keyword (e.g. 'matematik'). |
| `semester` | string | No | Semester code filter (e.g. 'HT2026', 'VT2026'). Comma-separated for multiple. |
| `study_form` | string | No | Study form ID filter. '1' for Normal, '2' for Distance. Comma-separated for multiple. |
| `study_pace` | string | No | Study pace code filter. Values: '25', '50', '75', '100'. Comma-separated for multiple. |
| `study_time` | string | No | Study time ID filter. '101052' for Dagtid, '101055' for Kvällstid. Comma-separated for multiple. |
| `teaching_language` | string | No | Teaching language code filter. 'SWE' for Swedish, 'ENG' for English. Comma-separated for multiple. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/stockholm-university/search-courses \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"institution":"<string>","language":"<string>","level":"<string>","page":"<integer>","query":"<string>","semester":"<string>","study_form":"<string>","study_pace":"<string>","study_time":"<string>","teaching_language":"<string>"}'
```

### Search programs

Full-text search over Stockholm University's degree program catalog. Supports filtering by education level, semester, and institution. Returns paginated results with program metadata. Each program item includes a URI for fetching full details via get_course_detail.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `institution` | string | No | Organisation/institution ID filter. Comma-separated for multiple. |
| `language` | string | No | Interface language: 'sv' (Swedish) or 'en' (English). |
| `level` | string | No | Education level ID filter. '1' for Grundnivå, '2' for Avancerad nivå. Comma-separated for multiple. |
| `page` | integer | No | Page number (0-based). |
| `query` | string | No | Search keyword. |
| `semester` | string | No | Semester code filter (e.g. 'HT2026'). Comma-separated for multiple. |

```bash
curl -X POST https://api.beta.paywithlocus.com/api/wrapped/credits/stockholm-university/search-programs \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"institution":"<string>","language":"<string>","level":"<string>","page":"<integer>","query":"<string>","semester":"<string>"}'
```

## Next steps

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