# Ucas — 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.

> Search and explore UK university courses, apprenticeships, and scholarships all in one place, while discovering detailed information about education providers and their offerings. Find the perfect educational path by filtering courses and apprenticeships by your preferences and accessing comprehensive provider details to inform your decisions.

**Category:** Education | **Website:** [ucas.com/](https://ucas.com/) | **Docs:** [parse.bot/marketplace/3408223a-ef9d-4d16-bc34-7a3bb84cdb54/ucas-com-api](https://parse.bot/marketplace/3408223a-ef9d-4d16-bc34-7a3bb84cdb54/ucas-com-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/ucas/`
**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 details

Retrieve full details for one course by its UUID, including provider info, entry requirements, fees, contacts, study options, and historic grade data. The course_id is obtained from search_courses results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `course_id` | string | Yes | Course UUID (e.g. 'f9631483-60d5-dbea-4593-4fb95ead77d5'). Obtained from search_courses hits[*].courseId. |
| `year_id` | string | No | Academic year ID (e.g. '2025', '2026'). |

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

### Get provider details

Retrieve a detailed provider profile by UUID including course count, course listings, contact details, and open day events. The provider_id is obtained from search_providers results.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `provider_id` | string | Yes | Provider UUID (e.g. '3a023828-8d77-ecfa-dc21-2708f721b788'). Obtained from search_providers hits[*].providerId. |

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

### Get scholarship details

Retrieve full details for one scholarship by its UUID, including value, deadline, eligibility criteria, nationality requirements, and study level. The scholarship_id can be discovered via the UCAS scholarships Algolia index or browsing the site.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `scholarship_id` | string | Yes | Scholarship UUID (e.g. 'a891b5d3-a1b5-4e41-9918-42194074c320'). Discoverable via the scholarships search or UCAS scholarships page. |

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

### Search apprenticeships

Full-text search over UCAS apprenticeship listings. Returns paginated results with employer, location, salary, duration, level, and industry details.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Number of results per page. |
| `page` | integer | No | Page number (0-indexed). |
| `query` | string | No | Search keyword for apprenticeships (e.g. 'software', 'engineering'). |

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

### Search content

Full-text search over UCAS editorial content including articles, guides, and structured pages. Results can be filtered by content type. Returns paginated results with title, URL, summary, and author.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Number of results per page. |
| `page` | integer | No | Page number (0-indexed). |
| `query` | string | No | Search keyword for content (e.g. 'finance', 'scholarships'). |
| `type` | string | No | Content type filter. Accepted values: 'structure_content', 'article'. Omitting returns all types. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/ucas/search-content \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","page":"<integer>","query":"<string>","type":"<string>"}'
```

### Search courses

Full-text search over UCAS course listings filtered by academic year. Returns paginated results with course title, provider, location, study options, and subject metadata. Each hit includes a courseId suitable for drilling into full details via get_course_details.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Number of results per page. |
| `page` | integer | No | Page number (0-indexed). |
| `query` | string | No | Search keyword for courses (e.g. 'engineering', 'medicine'). |
| `year` | string | No | Academic year to filter by. Only years with published course data return results (currently '2025' and '2026'). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/credits/ucas/search-courses \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"limit":"<integer>","page":"<integer>","query":"<string>","year":"<string>"}'
```

### Search providers

Full-text search across university and college provider names and addresses. Returns paginated results with provider identity, region, qualifications offered, and study modes.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `limit` | integer | No | Number of results per page. |
| `page` | integer | No | Page number (0-indexed). |
| `query` | string | No | Search keyword for providers (e.g. 'oxford', 'manchester'). |

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

## 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.