Swiss Type-Approval Master (TAS) + eTAN Crosswalk
Pricing
from $0.70 / 1,000 type approval returneds
Swiss Type-Approval Master (TAS) + eTAN Crosswalk
Every Swiss vehicle type approval (cars, motorcycles, trailers) from ASTRA open data, with the EU type-approval number (eTAN) crosswalk, WLTP emissions and a change history the source does not keep.
Pricing
from $0.70 / 1,000 type approval returneds
Rating
0.0
(0)
Developer
Rastriq — Structured data from the world
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
25 days ago
Last modified
Categories
Security
Limited permissionsShare
Swiss Type-Approval Master (TAS) – eTAN crosswalk, WLTP emissions & change history
Swiss Type-Approval Master (TAS) turns the Swiss Federal Roads Office (ASTRA/FEDRO) open-data files into one clean, flat table of Swiss type approval data: every Swiss vehicle type approval for cars, motorcycles and trailers, with the EU type-approval number (eTAN), WLTP emissions and – the part the source does not give you – a change history.
ASTRA publishes the TAS files once a month and overwrites them in place: the previous version of an approval is not kept. Swiss Type-Approval Master keeps that history for you. Run it on a schedule in Delta mode and every run returns only the approvals that are new, changed or removed, with changed_fields and the previous_values the source no longer shows.
Rastriq – data infrastructure for official registers. Not affiliated with ASTRA/FEDRO.
Use cases: what can you do with Swiss type approval data?
1. EU-to-Swiss crosswalk and entity matching - OEM compliance, importers and data teams.
Join Swiss approvals to certificates of conformity, KBA registration data or EEA CO2 monitoring on the EU type-approval number. Use eu_type_approval_number (normalised, e.g. e4*2007/46-195/2013*0667) together with eu_tan_base, eu_tan_authority_code and the extension range eu_tan_ext_from / eu_tan_ext_to. You get one key that links the Swiss and EU worlds. About 17.6 % of cars have no eTAN in the source and carry the flag no_etan, so you know which rows cannot be matched.
2. Spare-parts catalogue and fitment data - aftermarket parts distributors and e-commerce catalogues.
Map parts to vehicles by type, engine and power. Take make_name_norm, commercial_name_norm, type, variant, version, engine_capacity_cc, max_net_power_kw, fuel_type and ch_vin_prefix for the makes you sell parts for (makes filter). You get a fitment table that is refreshed monthly, with only the changed types in delta mode.
3. Insurance and leasing: valuation and risk by version - insurers, leasing and fleet-finance analysts.
Rate vehicles at version level rather than model level: max_net_power_kw, co2_wltp, fuel_type, mass_empty_min_kg, mass_empty_max_kg, drive_type and date_of_approval. Run a snapshot of automobile with outputLevel: "type" and join your policy or contract data on make_name_norm + commercial_name_norm. You get a power, mass and CO2 profile for every approved version.
4. Importers and parallel imports into Switzerland - importers and homologation consultants.
Before you bring a model in, check whether a Swiss approval exists and how it relates to the EU type. Filter by makes, then read eu_type_approval_number, date_of_approval, date_of_approval_expiry, cancelation_date and reason_of_cancelation; the flag cancelled marks withdrawn approvals. You get a quick, documented answer on which versions are approved and which are no longer valid.
5. Vehicle master data and VIN decoding - vehicle data providers, marketplaces and fleet software.
Build or refresh a master table: ch_vin_prefix and vin_wmi for VIN matching, body_form_code, vehicle_category_code (M1, N1...), manufacturer_name_address, plus engine and mass fields. Schedule delta monthly: you receive only new, changed and withdrawn types instead of re-ingesting 211,000 rows.
6. CO2 and emissions audits, CO2-based taxation - environment, fleet and tax teams.
Use co2_wltp, co2_wltp_min, co2_wltp_max, fuel_consumption_wltp, electric_range_wltp_from_km and euro_level to check what a vehicle emits. Switch to outputLevel: "type_gearbox" when CO2 depends on the transmission (gearbox_type). The flags outlier, no_emission_data and no_emission_values show which rows you should not trust.
7. The change history ASTRA overwrites - regulatory monitoring and market analysts.
ASTRA replaces its files each month. In delta mode every changed approval comes with changed_fields (e.g. max_net_power_kw, euro_level) and previous_values with the old values, and withdrawn approvals arrive as removed. You get an audit trail of when a version's power, CO2 or approval status changed, which ASTRA does not offer.
Recipe 1: monthly change monitor for selected makes
Schedule on day 1 and day 5 of each month. The first run is a full baseline; later runs return only new, changed and removed approvals for these makes.
{"mode": "delta","vehicleGroups": ["automobile"],"makes": ["Tesla", "BYD", "Polestar"],"includeEmissions": true,"outputLevel": "type","maxItems": 0}
Recipe 2: CO2 audit by gearbox variant
One row per approval and gearbox variant, with WLTP emissions, for a CO2 or tax review of specific makes.
{"mode": "snapshot","vehicleGroups": ["automobile"],"makes": ["Volkswagen", "Skoda"],"includeEmissions": true,"outputLevel": "type_gearbox","maxItems": 0}
Why the history matters
| Source (ASTRA) | Swiss Type-Approval Master |
|---|---|
| Overwrites approvals each month; previous values are gone | Stores a comparable record per approval and compares it on every run |
| No change flag | change_type: baseline, new, changed, unchanged, removed |
| – | changed_fields (e.g. ["max_net_power_kw","euro_level"]) and previous_values (e.g. {"max_net_power_kw": 200.0}) |
| 340 MB + 90 MB CSV files | Skips the download entirely (source_unchanged, a few seconds, no results charged) when ASTRA has not published anything new |
History starts the first time you run the actor: the first Delta run is a full baseline, every later run shows what changed since the previous one. Use the same State key (or the same filters) to keep one stream.
How to use Swiss Type-Approval Master
- Try it: keep the pre-filled input (
snapshot, automobiles, make Tesla, max 100 rows) and click Start. The actor reads the full source file for the chosen vehicle groups (about 450 MB, a few minutes) and returns up to 100 rows. Filters only decide which rows are returned. - Get the whole table once: set Mode to Delta (or Snapshot), leave Makes empty and Max items at 0. The first run returns everything as
baseline. - Monitor monthly: schedule the same input on day 1 of every month (and again on day 5, because ASTRA sometimes publishes late). Runs where nothing changed finish in seconds and cost only the start fee.
- Instant bulk copy: Preloaded returns the latest full snapshot prepared by Rastriq without any waiting, at a lower price per row (no change history). At launch, if that snapshot is not published yet, the run falls back to the live snapshot mode and is billed as
type-approval.
Input
| Field | Description |
|---|---|
mode | snapshot (all approvals in scope, each flagged against your last run), delta (default when empty: only new / changed / removed; first run = full baseline), preloaded (ready-made latest snapshot). |
vehicleGroups | automobile (about 211,000 approvals), motorcycle, trailer. Default: automobile. |
makes | Optional list of makes. Matching ignores case, accents and punctuation (mercedes-benz = MERCEDES BENZ); it is an exact make name, not "contains". Makes that match nothing are reported in the run summary. |
includeEmissions | Join the WLTP emissions file (default true). |
outputLevel | type (one row per approval, default) or type_gearbox (one row per approval and gearbox variant). |
maxItems | Stop after N rows (0 = no limit). A truncated first run does not save state. |
stateKey | Name of your delta stream. By default derived from groups, makes, emissions flag and output level, so different filters keep separate histories. |
How emissions are aggregated
ASTRA publishes one emission row per gearbox variant. At outputLevel = type the row with the lowest WLTP CO2 is used for co2_wltp, fuel_consumption_wltp, euro_level…, together with co2_wltp_min, co2_wltp_max, gearbox_count and gearbox_types. Electric vehicles use the lowest electric consumption; older approvals without WLTP fall back to the NEDC values (co2_nedc). At type_gearbox each variant is its own row (record_key = 1TE101|2).
Swiss Type-Approval Master output fields
One flat row per Swiss approval (or approval + gearbox). Main fields:
| Group | Fields |
|---|---|
| Keys | record_key, ch_type_approval_number, eu_type_approval_number, eu_type_approval_number_raw, eu_tan_base, eu_tan_authority_code, eu_tan_ext_from, eu_tan_ext_to, ch_vin_prefix, vin_wmi, make_name_norm, commercial_name_norm |
| Vehicle | vehicle_group, vehicle_category_code (M1, N1…), make_code, make_name, commercial_name, type, variant, version, body_form_code, manufacturer_name_address |
| Engine | fuel_type (ASTRA code), working_principle, plug_in_hybrid (ASTRA's off-vehicle-charging index; null for pure electric, only meaningful for hybrids), engine_capacity_cc, max_net_power_kw, number_of_cylinders, drive_type, masses: mass_empty_min_kg / mass_empty_max_kg, max_laden_mass_min_kg (almost always filled) and max_laden_mass_kg (upper bound, filled for about a third of cars) |
| Emissions | co2_wltp, co2_wltp_min, co2_wltp_max, fuel_consumption_wltp, electric_consumption_wltp, electric_range_wltp_from_km / _to_km, co2_nedc, euro_level, gearbox_type, gearbox_types |
| Lifecycle | version_no, date_of_approval, date_of_last_change, cancelation_date, date_of_approval_expiry |
| History | change_type, changed_fields, previous_values, first_seen_at, last_seen_at, source_file, source_url, source_updated_at |
| Quality | quality_flags |
make_name_norm / commercial_name_norm are upper-cased, accent-free, alphanumeric-only versions of the make and model names, meant for fuzzy joins with other portals. vin_wmi is the first 3 characters of the VIN prefix when they are not wildcards.
change_type is one of baseline, new, changed, unchanged, removed (preloaded in Preloaded mode).
quality_flags mark, never filter: no_etan, invalid_etan_format, invalid_ch_number, outlier (power outside 1–1500 kW or WLTP CO2 outside 0–600 g/km), no_emission_data (no row in the emissions file), no_emission_values (row without CO2/consumption values), cancelled. About 17.6 % of cars (37,202 of 211,485) have no EU type-approval number in the source and get no_etan.
Example row (shortened)
{"record_key": "1TD501","ch_type_approval_number": "1TD501","vehicle_group": "automobile","vehicle_category_code": "M1","make_name": "TESLA","commercial_name": "Model S 60","eu_type_approval_number": "e4*2007/46-195/2013*0667","eu_tan_authority_code": "e4","eu_tan_ext_from": "00","eu_tan_ext_to": "02","ch_vin_prefix": "5YJSA2.G........., 5YJSA..1.........","fuel_type": "E","max_net_power_kw": 285.0,"change_type": "baseline","changed_fields": [],"previous_values": null,"quality_flags": ["no_emission_values"]}
In later Delta runs a modified approval carries the change instead (structure only, values are illustrative):
{ "change_type": "changed", "changed_fields": ["max_net_power_kw", "euro_level"],"previous_values": { "max_net_power_kw": 200.0, "euro_level": "B6d" } }
Swiss Type-Approval Master input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | delta when empty (pre-filled: snapshot) | snapshot, delta or preloaded. |
vehicleGroups | array of strings | automobile (pre-filled: ["automobile"]) | automobile (about 211,000 approvals, 354 MB file), motorcycle, trailer. |
makes | array of strings | empty = all makes (pre-filled: ["Tesla"]) | Exact make names, matched ignoring case, accents and punctuation. |
includeEmissions | boolean | true | Join the ASTRA emissions file by Swiss approval number. Switch off to skip about 90 MB of download. |
outputLevel | string | type | type (one row per approval) or type_gearbox (one row per approval and gearbox variant; requires emissions). |
maxItems | integer (min 0) | 0 = no limit (pre-filled: 100) | Stop after this many rows. A truncated first run does not save state. |
stateKey | string | empty | Name of your delta stream. |
allowMassChange | boolean | false | Delta safety net: allows runs where more than 10% of approvals changed (see Safety nets). |
Pre-filled input (Tesla automobiles, 100 rows):
{"mode": "snapshot", "vehicleGroups": ["automobile"], "makes": ["Tesla"], "includeEmissions": true, "outputLevel": "type", "maxItems": 100}
Motorcycles of one make, full snapshot:
{"mode": "snapshot", "vehicleGroups": ["motorcycle"], "makes": ["BMW"], "maxItems": 0}
Real example record: motorcycle approval without eTAN
A real motorcycle row (shortened), as returned by the first run. Older approvals can have no EU type-approval number or WLTP data: eu_type_approval_number and co2_wltp are null here and the row carries the flag no_etan.
{"record_key": "6BA301","ch_type_approval_number": "6BA301","vehicle_group": "motorcycle","output_level": "type","version_no": 0,"vehicle_type": "Motorrad","make_code": "4012","make_name": "BMW","commercial_name": "R850R","type": "BMW259","ch_vin_prefix": ".......R850R, WB10401..........","eu_type_approval_number": null,"manufacturer_name_address": "BMW BAYERISCHE MOTOREN WERKE AG, D-80788 MUENCHEN","fuel_type": "B","working_principle": "Boxer","engine_capacity_cc": 848,"max_net_power_kw": 52,"number_of_cylinders": 2,"mass_empty_min_kg": 310,"max_laden_mass_min_kg": 450,"date_of_approval": "1996-10-14","date_of_approval_expiry": "2003-09-30","co2_wltp": null,"make_name_norm": "BMW","commercial_name_norm": "R850R","source_file": "TAS_Motorrad.csv","source_updated_at": "2026-09-29T11:16:27Z","change_type": "baseline","changed_fields": [],"previous_values": null,"quality_flags": ["no_etan"]}
How much does it cost to use Swiss Type-Approval Master?
Swiss Type-Approval Master uses pay-per-event pricing. Prices per 1,000 events on the BRONZE tier:
| Event | Price |
|---|---|
actor-start | $0.01 per run (4 GB memory, 4 x $0.0025) |
type-approval (snapshot rows and the first baseline) | $1.00 per 1,000 rows |
type-approval-change (delta rows: new / changed / removed) | $3.00 per 1,000 rows |
type-approval-preloaded (row of the ready-made snapshot) | $0.50 per 1,000 rows |
Apify plan discounts apply to these prices: Free plan +15 %, Silver -15 %, Gold / Platinum / Diamond -30 %.
Real-cost examples
- Complete automobile baseline: about 211,500 rows is roughly $211 (about $106 as
preloaded). - One make: the whole source is read either way, but you only pay for the rows you return, so a single make costs a few dollars.
- Monthly delta: you pay only for the changed rows, plus the start fee.
- ASTRA has published nothing new: the run finishes in seconds with no per-row charge, only the Actor start fee.
Worked example (BRONZE tier): a 1,000-row snapshot or first baseline is 1,000 x $0.001 = $1.00, plus the Actor start (4 GB = 4 x $0.0025 = $0.01): $1.01. A monthly delta that returns 200 changed approvals is 200 x $0.003 = $0.60 plus $0.01: $0.61. The same 1,000 rows as preloaded cost 1,000 x $0.0005 = $0.50 plus $0.01: $0.51.
Filter by make or use maxItems while you test.
Safety nets
- Count drop: if the number of approvals falls more than 2 % against your saved state (or automobiles fall below 190,000), a Delta run stops with
source_anomaly, emits nothing, keeps your state and never reports mass removals. A Snapshot run still returns the rows but without removals and does not save state. - Mass change: in Delta mode, if more than 10 % of the approvals are new / changed / removed, or the emissions-join coverage drops by more than 5 points, the run stops with status
mass_changeand keeps your state. Tick Allow mass changes once you have checked that ASTRA really changed that much. - Different configuration, same State key: if you reuse a State key with other vehicle groups, emissions setting or output level, the old state is not comparable; the run starts a new
baseline(and says so in the run summary) instead of reporting everything as changed. The make filter always has its own history. - Format changes: missing key columns in the ASTRA files stop the run before anything is returned.
Data source, licence and attribution
Data: Swiss Federal Roads Office (FEDRO / ASTRA), Typengenehmigungen TAS, published as open data at opendata.astra.admin.ch, availability "Freely available (open data)", update frequency monthly. Please credit "Source: FEDRO/ASTRA, TAS open data" when you republish. ASTRA does not disclose the holder of a type approval; the manufacturer name and address are those of the vehicle manufacturer. Swiss Type-Approval Master adds normalisation, the emission join, quality flags and the change history; it is not an official ASTRA service.
FAQ
Is it legal to use this data? ASTRA publishes the TAS files as open data. The files describe vehicle types, not persons. Keep the attribution above and check ASTRA's terms for your specific use.
How often does the data change? ASTRA updates monthly (the last publication seen while building this actor was 29 September 2026). Schedule the actor on day 1 and day 5.
What does fuel_type mean? The actor keeps ASTRA's own fuel codes (for example B, D, E); ASTRA does not publish the code table with the open data, so they are not translated.
Why are some eu_type_approval_number values empty? Older Swiss approvals pre-date the EU numbering or ASTRA did not record it; those rows get the no_etan flag.
Does it need proxies or a browser? No. Plain HTTP; the source file downloads take a few minutes.
Something looks wrong? Open an issue from the Actor page; include the ch_type_approval_number.
How do I keep the cost down? Filter by makes, set maxItems for tests, and use Delta for repeat runs: unchanged approvals are free, and a run where ASTRA published nothing new costs only the start fee.
Related Rastriq actors
- AutoScout24 Scraper - European car listings.
- Mobile.de Scraper - Germany car marketplace.
- Ford Europe Car Prices & Trims Scraper - Ford prices and trims in Europe.