DGT Driving Test Questions Scraper avatar

DGT Driving Test Questions Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
DGT Driving Test Questions Scraper

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

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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-use correctAnswer string. No answer keys to reconcile by hand.
  • The official road-sign or scenario photo per illustrated questionimageUrl points 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 permitType and language.
  • 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 questionCode for 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

ParameterTypeDefaultDescription
permitTypesarray["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.
languageselect"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

ParameterTypeDefaultDescription
maxQuestionsinteger30How 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"
}
FieldTypeDescription
questionTextstringThe full text of the exam question.
answersobject[]Every answer option as {text, isCorrect} — typically three options, with the correct one flagged true.
correctAnswerstringThe text of the correct option, for quick lookup.
correctAnswerIndexinteger | nullZero-based position of the correct option within answers; null if the correct option couldn't be determined.
optionCountintegerNumber of answer options for the question (typically 3).
imageUrlstring | nullThe official DGT question image (road sign or scenario photo); null when the question has no image.
permitTypestringThe license category the question belongs to (e.g. B, AM, CE y DE).
permitTypeNamestringHuman-readable name of the license category (e.g. Car / passenger vehicle, Moped (ciclomotor)).
languagestringThe language code the question was collected in (es, en, ca, …).
questionCodestring | nullStable identifier derived from the question's image, used for de-duplication; null for text-only questions.

Tips for Best Results

  • maxQuestions: 0 exhausts 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. questionCode stays 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 maxQuestions to 5–10 on your first run to confirm the structure, then scale up.
  • Combine categories in one run. Pass multiple permitTypes at once — each is collected separately and merged, with every row tagged by permitType.
  • Expect smaller pools for niche categories. Moped (AM) and specialist truck/bus classes have fewer unique questions than car (B), so a high maxQuestions on those simply returns the full available pool.
  • Use questionCode as your primary key. It deduplicates illustrated questions reliably; text-only questions fall back to their question text.
  • Auto-grade in one step. Pair correctAnswer with the answers array 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.

ResultsNo discountBronzeSilverGold
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

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.