Resource / 597
healthyUnnamed resource.
Before your agent plans a route or advises on a vehicle in France: compute its Crit'Air class and current low-emission-zone (ZFE) restrictions from the official classification tables (arrêté du 21 juin 2016), from declared fuel and Euro norm or first registration date
| State | Network | Scheme | Atomic amount | Asset | payTo / untrusted |
|---|---|---|---|---|---|
| active | eip155:8453 | exact | 10000 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | 0x4465825B0ac713aA2Fa07Ea29023020804A128ee |
| active | solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp | exact | 10000 | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6 |
| active | eip155:8453 | exact | 1000 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | 0x4465825B0ac713aA2Fa07Ea29023020804A128ee |
All advertised payment options are stored. Base (`eip155:8453`) is the operational network for ranking and canaries; non-Base options remain visible for transparency.
healthy 2026-08-13 02:30:00 UTC GET · HTTP 402 · 87ms · accepts 3 · base 2 ok
Accepts snapshot
[
{
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"assetTransferMethod": null,
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"paymentFlow": null,
"raw": {
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"max_timeout_seconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"pay_to": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"scheme": "exact"
},
"scheme": "exact"
},
{
"amount": "10000",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"assetTransferMethod": null,
"extra": {
"domain": "invoket.com",
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp",
"payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
"paymentFlow": null,
"raw": {
"amount": "10000",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"domain": "invoket.com",
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"maxTimeoutSeconds": 60,
"max_timeout_seconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
"pay_to": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
"scheme": "exact"
},
"scheme": "exact"
},
{
"amount": "1000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"assetTransferMethod": null,
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"paymentFlow": null,
"raw": {
"amount": "1000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"max_timeout_seconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"pay_to": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"scheme": "exact"
},
"scheme": "exact"
}
]
PaymentRequired raw
{
"accepts": [
{
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"domain": "invoket.com",
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
"scheme": "exact"
},
{
"amount": "1000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE header is required",
"extensions": {
"bazaar": {
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"headers": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"method": {
"enum": [
"GET",
"HEAD",
"DELETE"
],
"type": "string"
},
"queryParams": {
"properties": {
"euro_norm": {
"description": "Optional on its own - Declared Euro emission norm (pre_euro, euro1, euro2, euro3, euro4, euro5, euro6; euro1 is accepted and normalised to pre_euro, which the Crit'Air schedule does not distinguish). Provide either 'euro_norm' or 'first_registration'; if both are given, 'euro_norm' wins",
"type": "string"
},
"first_registration": {
"description": "Optional on its own - Date of first registration (YYYY-MM-DD), used to derive the Euro norm when 'euro_norm' is not supplied. It must be a plausible registration date: a future date or one before 1900-01-01 is a 400 (a genuinely old vehicle is answered 200 with critair_class 'non_classe', never an error)",
"type": "string"
},
"fuel": {
"description": "Declared fuel/powertrain: electric, hydrogen, gas (gpl/gnv), plug_in_hybrid, petrol, diesel, petrol_hybrid, diesel_hybrid (common FR/EN synonyms accepted). Required; hybrids are classified by their thermal engine",
"type": "string"
},
"vehicle_class": {
"description": "Optional. Vehicle category: m1 (passenger car, default) or n1 (light commercial vehicle); other categories are out of scope (400)",
"type": "string"
}
},
"required": [
"fuel"
],
"type": "object"
},
"schema": {
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"resource": {
"description": "Before your agent plans a route or advises on a vehicle in France: compute its Crit'Air class and current low-emission-zone (ZFE) restrictions from the official classification tables (arrêté du 21 juin 2016), from declared fuel and Euro norm or first registration date",
"mimeType": "application/json",
"url": "https://api.invoket.com/vehicle/critair"
},
"x402Version": 2
}
Response headers
{
"connection": "keep-alive",
"content-length": "7905",
"content-security-policy": "default-src 'none'; frame-ancestors 'none'",
"content-type": "application/json",
"date": "Thu, 13 Aug 2026 02:30:00 GMT",
"payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQQVlNRU5ULVNJR05BVFVSRSBoZWFkZXIgaXMgcmVxdWlyZWQiLCJyZXNvdXJjZSI6eyJ1cmwiOiJodHRwczovL2FwaS5pbnZva2V0LmNvbS92ZWhpY2xlL2NyaXRhaXIiLCJkZXNjcmlwdGlvbiI6IkJlZm9yZSB5b3VyIGFnZW50IHBsYW5zIGEgcm91dGUgb3IgYWR2aXNlcyBvbiBhIHZlaGljbGUgaW4gRnJhbmNlOiBjb21wdXRlIGl0cyBDcml0J0FpciBjbGFzcyBhbmQgY3VycmVudCBsb3ctZW1pc3Npb24tem9uZSAoWkZFKSByZXN0cmljdGlvbnMgZnJvbSB0aGUgb2ZmaWNpYWwgY2xhc3NpZmljYXRpb24gdGFibGVzIChhcnLDqnTDqSBkdSAyMSBqdWluIDIwMTYpLCBmcm9tIGRlY2xhcmVkIGZ1ZWwgYW5kIEV1cm8gbm9ybSBvciBmaXJzdCByZWdpc3RyYXRpb24gZGF0ZSIsIm1pbWVUeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LCJhY2NlcHRzIjpbeyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6ODQ1MyIsImFtb3VudCI6IjEwMDAwIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4NDQ2NTgyNUIwYWM3MTNhQTJGYTA3RWEyOTAyMzAyMDgwNEExMjhlZSIsIm1heFRpbWVvdXRTZWNvbmRzIjo2MCwiZXh0cmEiOnsibmFtZSI6IlVTRCBDb2luIiwidmVyc2lvbiI6IjIifX0seyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJzb2xhbmE6NWV5a3Q0VXNGdjhQOE5KZFRSRXBZMXZ6cUtxWkt2ZHAiLCJhbW91bnQiOiIxMDAwMCIsImFzc2V0IjoiRVBqRldkZDVBdWZxU1NxZU0ycU4xeHp5YmFwQzhHNHdFR0drWnd5VER0MXYiLCJwYXlUbyI6IkFlMXVvd1lTamJINDd1Q2laTW1jNTFBcXhmOTY0YjFGczRkMWJqYVBtTU42IiwibWF4VGltZW91dFNlY29uZHMiOjYwLCJleHRyYSI6eyJkb21haW4iOiJpbnZva2V0LmNvbSIsImZlZVBheWVyIjoiR1ZKSjdyZEdpWHI1eGFZYlJ3UmJqZmFKTDdmbXdSeWdGaTFINmFHcUR2ZWIifX0seyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6ODQ1MyIsImFtb3VudCI6IjEwMDAiLCJhc3NldCI6IjB4ODMzNTg5ZkNENmVEYjZFMDhmNGM3QzMyRDRmNzFiNTRiZEEwMjkxMyIsInBheVRvIjoiMHg0NDY1ODI1QjBhYzcxM2FBMkZhMDdFYTI5MDIzMDIwODA0QTEyOGVlIiwibWF4VGltZW91dFNlY29uZHMiOjYwLCJleHRyYSI6eyJuYW1lIjoiVVNEIENvaW4iLCJ2ZXJzaW9uIjoiMiJ9fV0sImV4dGVuc2lvbnMiOnsiYmF6YWFyIjp7InNjaGVtYSI6eyIkc2NoZW1hIjoiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEiLCJwcm9wZXJ0aWVzIjp7ImlucHV0Ijp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjpmYWxzZSwicHJvcGVydGllcyI6eyJoZWFkZXJzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6Im9iamVjdCJ9LCJtZXRob2QiOnsiZW51bSI6WyJHRVQiLCJIRUFEIiwiREVMRVRFIl0sInR5cGUiOiJzdHJpbmcifSwicXVlcnlQYXJhbXMiOnsicHJvcGVydGllcyI6eyJldXJvX25vcm0iOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBvbiBpdHMgb3duIC0gRGVjbGFyZWQgRXVybyBlbWlzc2lvbiBub3JtIChwcmVfZXVybywgZXVybzEsIGV1cm8yLCBldXJvMywgZXVybzQsIGV1cm81LCBldXJvNjsgZXVybzEgaXMgYWNjZXB0ZWQgYW5kIG5vcm1hbGlzZWQgdG8gcHJlX2V1cm8sIHdoaWNoIHRoZSBDcml0J0FpciBzY2hlZHVsZSBkb2VzIG5vdCBkaXN0aW5ndWlzaCkuIFByb3ZpZGUgZWl0aGVyICdldXJvX25vcm0nIG9yICdmaXJzdF9yZWdpc3RyYXRpb24nOyBpZiBib3RoIGFyZSBnaXZlbiwgJ2V1cm9fbm9ybScgd2lucyIsInR5cGUiOiJzdHJpbmcifSwiZmlyc3RfcmVnaXN0cmF0aW9uIjp7ImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgb24gaXRzIG93biAtIERhdGUgb2YgZmlyc3QgcmVnaXN0cmF0aW9uIChZWVlZLU1NLUREKSwgdXNlZCB0byBkZXJpdmUgdGhlIEV1cm8gbm9ybSB3aGVuICdldXJvX25vcm0nIGlzIG5vdCBzdXBwbGllZC4gSXQgbXVzdCBiZSBhIHBsYXVzaWJsZSByZWdpc3RyYXRpb24gZGF0ZTogYSBmdXR1cmUgZGF0ZSBvciBvbmUgYmVmb3JlIDE5MDAtMDEtMDEgaXMgYSA0MDAgKGEgZ2VudWluZWx5IG9sZCB2ZWhpY2xlIGlzIGFuc3dlcmVkIDIwMCB3aXRoIGNyaXRhaXJfY2xhc3MgJ25vbl9jbGFzc2UnLCBuZXZlciBhbiBlcnJvcikiLCJ0eXBlIjoic3RyaW5nIn0sImZ1ZWwiOnsiZGVzY3JpcHRpb24iOiJEZWNsYXJlZCBmdWVsL3Bvd2VydHJhaW46IGVsZWN0cmljLCBoeWRyb2dlbiwgZ2FzIChncGwvZ252KSwgcGx1Z19pbl9oeWJyaWQsIHBldHJvbCwgZGllc2VsLCBwZXRyb2xfaHlicmlkLCBkaWVzZWxfaHlicmlkIChjb21tb24gRlIvRU4gc3lub255bXMgYWNjZXB0ZWQpLiBSZXF1aXJlZDsgaHlicmlkcyBhcmUgY2xhc3NpZmllZCBieSB0aGVpciB0aGVybWFsIGVuZ2luZSIsInR5cGUiOiJzdHJpbmcifSwidmVoaWNsZV9jbGFzcyI6eyJkZXNjcmlwdGlvbiI6Ik9wdGlvbmFsLiBWZWhpY2xlIGNhdGVnb3J5OiBtMSAocGFzc2VuZ2VyIGNhciwgZGVmYXVsdCkgb3IgbjEgKGxpZ2h0IGNvbW1lcmNpYWwgdmVoaWNsZSk7IG90aGVyIGNhdGVnb3JpZXMgYXJlIG91dCBvZiBzY29wZSAoNDAwKSIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImZ1ZWwiXSwidHlwZSI6Im9iamVjdCJ9LCJzY2hlbWEiOnsidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjp7ImNvbnN0IjoiaHR0cCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiLCJtZXRob2QiXSwidHlwZSI6Im9iamVjdCJ9LCJvdXRwdXQiOnsicHJvcGVydGllcyI6eyJleGFtcGxlIjp7InR5cGUiOiJvYmplY3QifSwidHlwZSI6eyJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImlucHV0Il0sInR5cGUiOiJvYmplY3QifX19fQ==",
"referrer-policy": "strict-origin-when-cross-origin",
"server": "nginx",
"strict-transport-security": "max-age=63072000; includeSubDomains",
"x-content-type-options": "nosniff"
}
Response body
{
"accepts": [
{
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"domain": "invoket.com",
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
"scheme": "exact"
},
{
"amount": "1000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE header is required",
"extensions": {
"bazaar": {
"info": {
"input": {
"headers": {
"accept": "application/json"
},
"method": "GET",
"queryParams": {
"euro_norm": "euro3",
"first_registration": "2004-05-01",
"fuel": "diesel",
"vehicle_class": "m1"
},
"schema": {
"properties": {
"euro_norm": {
"description": "Optional on its own - Declared Euro emission norm (pre_euro, euro1, euro2, euro3, euro4, euro5, euro6; euro1 is accepted and normalised to pre_euro, which the Crit'Air schedule does not distinguish). Provide either 'euro_norm' or 'first_registration'; if both are given, 'euro_norm' wins",
"type": "string"
},
"first_registration": {
"description": "Optional on its own - Date of first registration (YYYY-MM-DD), used to derive the Euro norm when 'euro_norm' is not supplied. It must be a plausible registration date: a future date or one before 1900-01-01 is a 400 (a genuinely old vehicle is answered 200 with critair_class 'non_classe', never an error)",
"type": "string"
},
"fuel": {
"description": "Declared fuel/powertrain: electric, hydrogen, gas (gpl/gnv), plug_in_hybrid, petrol, diesel, petrol_hybrid, diesel_hybrid (common FR/EN synonyms accepted). Required; hybrids are classified by their thermal engine",
"type": "string"
},
"vehicle_class": {
"description": "Optional. Vehicle category: m1 (passenger car, default) or n1 (light commercial vehicle); other categories are out of scope (400)",
"type": "string"
}
},
"required": [
"fuel"
],
"type": "object"
},
"type": "http"
},
"output": {
"example": {
"data": {
"critair_class": "4",
"derivation": {
"euro_norm": "euro3",
"fuel": "diesel",
"via": "euro_norm"
},
"euro_norm": "euro3",
"first_registration": "2004-05-01",
"fuel": "diesel",
"notes": "Restrictions PERMANENTES en vigueur pour les véhicules M1/N1, par classe Crit'Air. Les dérogations locales, horaires et sectorielles (axes, dérogations petits rouleurs, laissez-passer) sont HORS PÉRIMÈTRE et ne sont pas modélisées. Les calendriers de durcissement au-delà des étapes ci-dessous ont été révisés par la loi de 2025 et ne sont retenus que lorsqu'ils sont effectivement entrés en vigueur.",
"regulation": {
"as_of": "2026-07-04",
"reference": "Arrêté du 21 juin 2016 (nomenclature Crit'Air, art. R. 318-2 du code de la route)"
},
"vehicle_class": "m1",
"zfe_restrictions": [
{
"area": "Lyon, Villeurbanne, Caluire-et-Cuire, Bron et Vénissieux (périmètre intra-boulevard périphérique Laurent-Bonnevay)",
"since": "2022-01-01",
"zone_id": "metropole-lyon",
"zone_name": "ZFE-m de la Métropole de Lyon"
},
{
"area": "Communes de la Métropole du Grand Paris situées à l'intérieur de l'autoroute A86 (Paris et petite couronne, hors A86 elle-même)",
"since": "2021-06-01",
"zone_id": "grand-paris",
"zone_name": "ZFE-m de la Métropole du Grand Paris"
}
]
},
"provenance": {
"fetched_at": "2026-07-04T09:30:00Z",
"freshness": {
"as_of": "2026-07-01T00:00:00Z",
"kind": "snapshot"
},
"source": "critair-regulation+zfe-open-data"
}
},
"schema": {
"properties": {
"data": {
"properties": {
"critair_class": {
"description": "Computed Crit'Air sticker class: '0', '1'..'5' or 'non_classe' — 'non_classe' is a successful, billed answer (too old to qualify), never an error",
"type": "string"
},
"derivation": {
"description": "How the class was obtained: which input path was used (via), the effective Euro norm and the fuel column retained — makes the computation auditable. On the 'first_registration' path the Euro norm is INFERRED from the date against the norm mandated for new registrations at that time (euro6 from 2015-09-01 for m1, 2016-09-01 for n1): a vehicle may have been type-approved under an earlier norm, and the sticker class is identical across the norms that share it",
"properties": {
"euro_norm": {
"type": "string"
},
"fuel": {
"type": "string"
},
"via": {
"type": "string"
}
},
"required": [
"fuel",
"via"
],
"type": "object"
},
"euro_norm": {
"type": "string"
},
"first_registration": {
"type": "string"
},
"fuel": {
"type": "string"
},
"notes": {
"type": "string"
},
"regulation": {
"description": "Reference to the regulatory classification table and the date it was last verified",
"properties": {
"as_of": {
"type": "string"
},
"reference": {
"type": "string"
}
},
"required": [
"as_of",
"reference"
],
"type": "object"
},
"vehicle_class": {
"type": "string"
},
"zfe_restrictions": {
"description": "Low-emission zones (ZFE) that currently ban this class, each with its enforcement start date; an empty list means no modelled ZFE restricts the class",
"items": {
"properties": {
"area": {
"type": "string"
},
"since": {
"type": "string"
},
"zone_id": {
"type": "string"
},
"zone_name": {
"type": "string"
}
},
"required": [
"area",
"since",
"zone_id",
"zone_name"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"critair_class",
"derivation",
"fuel",
"notes",
"regulation",
"vehicle_class",
"zfe_restrictions"
],
"type": "object"
},
"provenance": {
"properties": {
"fetched_at": {
"type": "string"
},
"freshness": {
"properties": {
"as_of": {
"type": "string"
},
"kind": {
"type": "string"
}
},
"required": [
"as_of",
"kind"
],
"type": "object"
},
"source": {
"type": "string"
}
},
"required": [
"fetched_at",
"freshness",
"source"
],
"type": "object"
}
},
"required": [
"data",
"provenance"
],
"type": "object"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"headers": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"method": {
"enum": [
"GET",
"HEAD",
"DELETE"
],
"type": "string"
},
"queryParams": {
"properties": {
"euro_norm": {
"description": "Optional on its own - Declared Euro emission norm (pre_euro, euro1, euro2, euro3, euro4, euro5, euro6; euro1 is accepted and normalised to pre_euro, which the Crit'Air schedule does not distinguish). Provide either 'euro_norm' or 'first_registration'; if both are given, 'euro_norm' wins",
"type": "string"
},
"first_registration": {
"description": "Optional on its own - Date of first registration (YYYY-MM-DD), used to derive the Euro norm when 'euro_norm' is not supplied. It must be a plausible registration date: a future date or one before 1900-01-01 is a 400 (a genuinely old vehicle is answered 200 with critair_class 'non_classe', never an error)",
"type": "string"
},
"fuel": {
"description": "Declared fuel/powertrain: electric, hydrogen, gas (gpl/gnv), plug_in_hybrid, petrol, diesel, petrol_hybrid, diesel_hybrid (common FR/EN synonyms accepted). Required; hybrids are classified by their thermal engine",
"type": "string"
},
"vehicle_class": {
"description": "Optional. Vehicle category: m1 (passenger car, default) or n1 (light commercial vehicle); other categories are out of scope (400)",
"type": "string"
}
},
"required": [
"fuel"
],
"type": "object"
},
"schema": {
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"resource": {
"description": "Before your agent plans a route or advises on a vehicle in France: compute its Crit'Air class and current low-emission-zone (ZFE) restrictions from the official classification tables (arrêté du 21 juin 2016), from declared fuel and Euro norm or first registration date",
"mimeType": "application/json",
"url": "https://api.invoket.com/vehicle/critair"
},
"x402Version": 2
}
Request headers
{
"accept": "*/*",
"user-agent": "Fetch402Bot/0.1 (+https://fetch402.com/crawler; contact: crawler@fetch402.com)"
}
Machine contract
Schemas.
{}
{}