DGT Driving Test Questions Scraper
Pricing
from $2.50 / 1,000 results
DGT Driving Test Questions Scraper
[💰 $2.50 / 1K] Extract official Spanish DGT driving-theory exam questions (test DGT / examen teórico): question text, all answer options with the correct one flagged, images, license category, and language across car, motorcycle, truck and bus classes (B, A1, A2, A, C, D and more) in 8 languages.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Pull the official Spanish DGT driving-theory exam ("test DGT / examen teórico") as clean, structured data — question text, every answer option with the correct one flagged, the official road-sign photo, license category, and language for each question. Built for driving-school and e-learning developers, test-prep and quiz-app builders, and ed-tech researchers who need the complete official DGT question bank without hand-copying thousands of questions.
Why This Scraper?
- Nine official DGT license categories — car (B), moped (AM), motorcycle (A1 y A2), car-with-trailer (BE), medium truck (C1 / C1E), truck (C), truck-and-bus-with-trailer (CE y DE), and bus (D). Every question is tagged with the exact DGT category label it came from.
- All eight official exam languages — the same eight the DGT publishes: Spanish, Catalan, Valencian, Galician, Basque, German, English, and French. Pull an English or German bank as easily as the Spanish one.
- The correct answer flagged on every single question — each of the ~3 options arrives as
{text, isCorrect}, alongside a ready-to-usecorrectAnswerstring. No answer keys to reconcile by hand. - The official road-sign or scenario photo per illustrated question —
imageUrlpoints at the real DGT question image (traffic signs, junction diagrams, dashboard warning lights), not a stock placeholder. - The complete official question pool for each category and language, de-duplicated — collect a single 30-question exam or exhaust the full available pool for a category-language pair (on the order of dozens to ~100 unique questions); results are merged and de-duplicated so you never store the same question twice.
- A stable per-question code — every illustrated question carries a
questionCode(e.g.MT45390) derived from its official image, giving you a durable key to join, deduplicate, or track questions across runs and languages. - Multi-category runs in one pass — request several license classes at once and get a single merged dataset, with every row self-describing its
permitTypeandlanguage. - Sourced straight from the official DGT theory exam — the same questions used in the real Dirección General de Tráfico examen teórico, not a third-party rewrite or paraphrase.
Use Cases
Driving-School & Autoescuela Apps
- Seed a practice-test engine with the full official B-permit question bank
- Build category-specific exams for moped, motorcycle, truck, and bus students
- Auto-grade student attempts using the flagged correct answer on every question
- Keep app content in sync with the current official DGT exam pool
Test-Prep & Quiz Platforms
- Generate randomized 30-question mock exams that mirror the real test format
- Build flashcard decks pairing each question image with its correct answer
- Power adaptive-learning tools that track which question codes a user struggles with
- Offer premium "full bank" practice modes beyond the standard 30-question exam
Multilingual Learning
- Publish the exam in all eight official languages for Spain's diverse learner base
- Serve English- and German-language practice tests to international residents
- Build a parallel multilingual bank keyed on
questionCodefor side-by-side study
Content & Research
- Analyze topic coverage and answer distributions across license categories
- Compare how the same question is phrased across Catalan, Basque, and Galician
- Assemble datasets for road-safety education studies and ed-tech research
Getting Started
Simplest Run (Defaults)
An empty input collects one standard 30-question exam for permit B in Spanish:
{}
Single Category in English
Pull a larger English-language bank for car-license learners:
{"permitTypes": ["B"],"language": "en","maxQuestions": 60}
Multi-Category Full Bank
Collect the entire available pool for several license classes in one run:
{"permitTypes": ["B", "AM", "C", "D"],"language": "es","maxQuestions": 0}
Input Reference
What to Collect
| Parameter | Type | Default | Description |
|---|---|---|---|
permitTypes | array | ["B"] | One or more license categories to collect. Options: B (Car / passenger vehicle), AM (Moped), A1 y A2 (Motorcycle, light & medium), BE (Car with trailer), C1 97 (Medium truck), C1E 97 (Medium truck with trailer), C (Truck / lorry), CE y DE (Truck & bus with trailer), D (Bus / coach). Each category is collected separately and merged, with every question tagged by its category. |
language | select | "es" | Language the questions and answers are returned in. Options: Spanish (Español), Catalan (Català), Valencian (Valencià), Galician (Galego), Basque (Euskara), German (Deutsch), English, French (Français). |
Results
| Parameter | Type | Default | Description |
|---|---|---|---|
maxQuestions | integer | 30 | How many unique questions to collect per license category. 30 equals one standard exam; higher values pull additional exams and merge them into a larger de-duplicated bank. Set to 0 to keep going until the category's available pool is exhausted — in practice typically around a hundred unique questions per language, well under the 1,000 safety ceiling (which is rarely reached). Very high values mainly make the run take longer for little extra data. |
Output
Each row is one exam question. Here's a representative Spanish result:
{"questionText": "¿A qué distancia debe colocar los dispositivos de preseñalización de peligro?","answers": [{ "text": "A 50 metros como mínimo, y de forma que sean visibles a 100 metros.", "isCorrect": true },{ "text": "A 20 metros, y de forma que sean visibles a 50 metros.", "isCorrect": false },{ "text": "No es obligatorio colocarlos en vías urbanas.", "isCorrect": false }],"correctAnswer": "A 50 metros como mínimo, y de forma que sean visibles a 100 metros.","correctAnswerIndex": 0,"optionCount": 3,"imageUrl": "https://sedeweb.dgt.gob.es/EXAM/WEB_AUTO9/IMAGENES/MT45390.jpg","permitType": "B","permitTypeName": "Car / passenger vehicle","language": "es","questionCode": "MT45390"}
| Field | Type | Description |
|---|---|---|
questionText | string | The full text of the exam question. |
answers | object[] | Every answer option as {text, isCorrect} — typically three options, with the correct one flagged true. |
correctAnswer | string | The text of the correct option, for quick lookup. |
correctAnswerIndex | integer | null | Zero-based position of the correct option within answers; null if the correct option couldn't be determined. |
optionCount | integer | Number of answer options for the question (typically 3). |
imageUrl | string | null | The official DGT question image (road sign or scenario photo); null when the question has no image. |
permitType | string | The license category the question belongs to (e.g. B, AM, CE y DE). |
permitTypeName | string | Human-readable name of the license category (e.g. Car / passenger vehicle, Moped (ciclomotor)). |
language | string | The language code the question was collected in (es, en, ca, …). |
questionCode | string | null | Stable identifier derived from the question's image, used for de-duplication; null for text-only questions. |
Tips for Best Results
maxQuestions: 0exhausts the available pool. It keeps pulling fresh exams until no new questions appear — usually on the order of a hundred unique questions per category-language pair. The default of 30 (one full exam) is plenty for most previews; pushing the value very high mainly makes the run take longer for little extra data.- Run several languages to build a parallel multilingual bank.
questionCodestays constant across languages, so you can join the English and Spanish versions of the same question side by side. - Start small to preview the format. Set
maxQuestionsto 5–10 on your first run to confirm the structure, then scale up. - Combine categories in one run. Pass multiple
permitTypesat once — each is collected separately and merged, with every row tagged bypermitType. - Expect smaller pools for niche categories. Moped (AM) and specialist truck/bus classes have fewer unique questions than car (B), so a high
maxQuestionson those simply returns the full available pool. - Use
questionCodeas your primary key. It deduplicates illustrated questions reliably; text-only questions fall back to their question text. - Auto-grade in one step. Pair
correctAnswerwith theanswersarray to score quiz attempts or generate flashcards without a separate answer key.
Pricing
From $2.50 per 1,000 results — a flat, predictable rate for the complete official DGT question bank with correct answers and images included. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.
| Results | No discount | Bronze | Silver | Gold |
|---|---|---|---|---|
| 100 | $0.30 | $0.28 | $0.27 | $0.25 |
| 1,000 | $3.00 | $2.80 | $2.65 | $2.50 |
| 10,000 | $30.00 | $28.00 | $26.50 | $25.00 |
| 100,000 | $300.00 | $280.00 | $265.00 | $250.00 |
No compute or time-based charges — you pay per result, plus a small fixed per-run start fee. A "result" is one question row in the output dataset.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom APIs on run completion
- Apify API — Full programmatic access
Legal & Ethical Use
This actor collects publicly available official DGT driving-theory exam content for legitimate educational, test-preparation, and research purposes. Users are responsible for complying with applicable laws and the Dirección General de Tráfico's terms of use, and for making reasonable-rate requests. Do not use the extracted data for any illegal purpose. The DGT is the sole owner of the official exam content; this tool does not claim any rights over it.