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

> Access a comprehensive question bank for Indonesian university entrance exams (UTBK/SNBT) with full question details, answer options, correct answers, and explanations across all subjects like Penalaran Umum, Penalaran Matematika, and Literasi. Browse subjects, question sets, and tryout categories to prepare for your exam.

**Category:** Education | **Website:** [app.ruangguru.com/](https://app.ruangguru.com/) | **Docs:** [parse.bot/marketplace/bce308af-1aac-43d5-a33f-3afcca249277/app-ruangguru-com-api](https://parse.bot/marketplace/bce308af-1aac-43d5-a33f-3afcca249277/app-ruangguru-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-app-ruangguru-com-api-bce308af/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_questions

Get all questions, answer options, correct answers, and explanations for a specific question set. Starts a session for the tryout and retrieves content definitions. Free question sets (is_free=true from list_question_sets) are guaranteed to work. Each question includes cleaned plain-text and raw HTML versions of content and explanations.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `serial` | string | Yes | Tryout serial code from the list_question_sets endpoint (format: RTO-XXXXXXX). Free question sets (is_free=true) are guaranteed to work. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-app-ruangguru-com-api-bce308af/get_questions \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serial":"<string>"}'
```

### get_tryout_detail

Get detailed metadata about a specific tryout question set including topics, subtopics, duration, difficulty level, and rewards. Provides the structural breakdown of the exam content for study planning.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `serial` | string | Yes | Tryout serial code from the list_question_sets endpoint (format: RTO-XXXXXXX). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-app-ruangguru-com-api-bce308af/get_tryout_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"serial":"<string>"}'
```

### list_question_sets

List all question sets (tryouts) available for a specific UTBK/SNBT subject. Returns serials needed for get_questions and get_tryout_detail endpoints. Each question set includes metadata like difficulty level, question count, and whether it is free or locked.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `subject` | string | No | Subject slug identifying which subject's question sets to retrieve. Valid slugs are returned by the list_subjects endpoint. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-app-ruangguru-com-api-bce308af/list_question_sets \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"subject":"<string>"}'
```

### list_subjects

List all available UTBK/SNBT subjects in the question bank. Returns subject names, slugs, and icon URLs for the UTBK & Ujian Mandiri grade. The full subject catalog is returned in a single page.

**Estimated cost:** Metered

_No parameters required._

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-app-ruangguru-com-api-bce308af/list_subjects \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### list_tryout_categories

List tryout event categories for SNBT/UTBK exams (e.g., Regular, Flexi, Kedinasan). Returns paginated category listings with banner images and descriptions.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `page` | integer | No | Page number for pagination. |
| `page_size` | integer | No | Number of results per page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-app-ruangguru-com-api-bce308af/list_tryout_categories \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"page":"<integer>","page_size":"<integer>"}'
```
