app.ruangguru.com APIapp.ruangguru.com ↗
Access UTBK/SNBT exam questions, answer options, correct answers, and explanations across all subjects from Ruangguru's question bank via 5 endpoints.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/335b17d7-0522-4432-b077-6f006a1d39fc/list_subjects' \ -H 'X-API-Key: $PARSE_API_KEY'
List all available UTBK/SNBT subjects in the question bank. Returns subject names, slugs, and icon URLs for the UTBK & Ujian Mandiri grade.
No input parameters required.
{
"type": "object",
"fields": {
"grade": "string - Grade slug identifier (utbk-ujian-mandiri-tps)",
"subjects": "array - List of subject objects each containing name, slug, and icon URL",
"grade_name": "string - Human-readable grade name",
"total_subjects": "integer - Total number of subjects"
},
"sample": {
"data": {
"grade": "utbk-ujian-mandiri-tps",
"subjects": [
{
"icon": "https://imgix2.ruangguru.com/assets/miscellaneous/png_8a34yp_3507.png",
"name": "Kemampuan Penalaran Umum",
"slug": "kemampuan-penalaran-umum"
},
{
"icon": "https://imgix3.ruangguru.com/assets/miscellaneous/png_divmup_2139.png",
"name": "Penalaran Matematika",
"slug": "penalaran-matematika"
}
],
"grade_name": "UTBK & Ujian Mandiri",
"total_subjects": 16
},
"status": "success"
}
}About the app.ruangguru.com API
The Ruangguru UTBK/SNBT API provides structured access to Indonesia's university entrance exam question bank across 5 endpoints, returning full question text, HTML-formatted content, answer options, correct answers, and explanations. The get_questions endpoint retrieves complete question sets identified by a serial code, while list_subjects exposes all available subject slugs needed to navigate the bank. Subjects covered include Penalaran Umum, Penalaran Matematika, and Literasi Bahasa.
Subjects and Question Sets
Start with list_subjects to retrieve all available UTBK/SNBT subjects, which returns each subject's name, slug, and icon_url under the utbk-ujian-mandiri-tps grade. Pass a subject_slug to list_question_sets to get all tryout serials for that subject. Each question set object includes a serial, name, group, level, total_questions, and the boolean fields is_free and is_locked — which tell you whether a given set can be retrieved without a paid account.
Retrieving Full Question Content
The get_questions endpoint takes a serial from list_question_sets and returns every question in that set. Each question object includes number, serial, type, question_text, question_html, options (the answer choices), correct_answer, and explanation content. The response also includes a session_serial, total_questions, and time_span_seconds representing the exam's time limit. Free question sets (is_free: true) are guaranteed accessible; locked sets may return limited or no content.
Tryout Metadata and Categories
get_tryout_detail accepts a tryout serial and returns richer metadata: topics and subtopics arrays, level (e.g., mixed, hots), duration_seconds, curriculum_serial, and rewards (XP and Gold values with icon URLs). To discover tryout events at a higher level, list_tryout_categories returns paginated category listings — each with id, name, description, banner_url, and product_type — covering event types such as Regular, Flexi, and Kedinasan. Use the page and page_size parameters to navigate large result sets.
- Build a UTBK/SNBT practice app that serves questions by subject slug and tracks correct answers
- Aggregate free question sets across all subjects using the
is_freeflag fromlist_question_sets - Render HTML-formatted exam questions using the
question_htmlfield for rich display in a web app - Analyze question difficulty distribution by collecting
levelvalues fromget_tryout_detailacross serials - Map exam topics and subtopics to a study curriculum using the
topicsarray returned byget_tryout_detail - Build a subject browser that displays icons and names using data from
list_subjects - Populate a tryout event directory by paginating through
list_tryout_categorieswithpageandpage_size
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Ruangguru have an official public developer API?+
What does `get_questions` return for each question, and which sets are accessible?+
get_questions returns a full question object per item including question_text, question_html, options, correct_answer, explanation content, and the question type. Free question sets (those with is_free: true in list_question_sets) are guaranteed to return complete content. Locked sets may return incomplete or no question data.Does the API cover user performance data, personal scores, or attempt history?+
Are questions from Ujian Mandiri or non-UTBK exams included?+
utbk-ujian-mandiri-tps grade, which covers UTBK and Ujian Mandiri subjects. Questions for other Ruangguru grade levels or school-curriculum subjects are not currently included. You can fork this API on Parse and revise it to target additional grade slugs.How do I paginate through tryout categories?+
list_tryout_categories accepts page (integer) and page_size (integer) parameters. The response includes total, total_pages, and page fields so you can iterate until all categories are fetched.