Swiss Type-Approval Master (TAS) + eTAN Crosswalk avatar

Swiss Type-Approval Master (TAS) + eTAN Crosswalk

Pricing

from $0.70 / 1,000 type approval returneds

Go to Apify Store
Swiss Type-Approval Master (TAS) + eTAN Crosswalk

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

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

25 days ago

Last modified

Security

Limited permissions

Share

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 goneStores a comparable record per approval and compares it on every run
No change flagchange_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 filesSkips 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

  1. 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.
  2. 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.
  3. 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.
  4. 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

FieldDescription
modesnapshot (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).
vehicleGroupsautomobile (about 211,000 approvals), motorcycle, trailer. Default: automobile.
makesOptional 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.
includeEmissionsJoin the WLTP emissions file (default true).
outputLeveltype (one row per approval, default) or type_gearbox (one row per approval and gearbox variant).
maxItemsStop after N rows (0 = no limit). A truncated first run does not save state.
stateKeyName 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:

GroupFields
Keysrecord_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
Vehiclevehicle_group, vehicle_category_code (M1, N1…), make_code, make_name, commercial_name, type, variant, version, body_form_code, manufacturer_name_address
Enginefuel_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)
Emissionsco2_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
Lifecycleversion_no, date_of_approval, date_of_last_change, cancelation_date, date_of_approval_expiry
Historychange_type, changed_fields, previous_values, first_seen_at, last_seen_at, source_file, source_url, source_updated_at
Qualityquality_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

ParameterTypeDefaultDescription
modestringdelta when empty (pre-filled: snapshot)snapshot, delta or preloaded.
vehicleGroupsarray of stringsautomobile (pre-filled: ["automobile"])automobile (about 211,000 approvals, 354 MB file), motorcycle, trailer.
makesarray of stringsempty = all makes (pre-filled: ["Tesla"])Exact make names, matched ignoring case, accents and punctuation.
includeEmissionsbooleantrueJoin the ASTRA emissions file by Swiss approval number. Switch off to skip about 90 MB of download.
outputLevelstringtypetype (one row per approval) or type_gearbox (one row per approval and gearbox variant; requires emissions).
maxItemsinteger (min 0)0 = no limit (pre-filled: 100)Stop after this many rows. A truncated first run does not save state.
stateKeystringemptyName of your delta stream.
allowMassChangebooleanfalseDelta 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:

EventPrice
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_change and 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.