{
  "openapi": "3.0.0",
  "info": {
    "title": "Remapdb REST API Documentation",
    "description": "Vehicle Tuning Database API - For Tuning services and Tuners.\n\nAccess comprehensive vehicle details, including types, manufacturers, models, engines, ECU and TCU info, tuning tools, dyno charts, and available tuning or remap stages with their performance gains.\n\n\nREST v1 is deprecated and remains available during the migration period. Existing API keys also work with /v2. See https://docs.remapdb.com/api/migrate-to-v2 for contract changes and the announced retirement schedule. No automatic cutoff is applied.",
    "termsOfService": "https://remapdb.com/terms",
    "contact": {
      "name": "Remapdb.com",
      "url": "https://remapdb.com"
    },
    "version": "1.0",
    "x-logo": {
      "url": "https://cdn.remapdb.com/logos/remapdb-logo-default-full-light.svg",
      "altText": "Remapdb REST API Documentation"
    }
  },
  "servers": [
    {
      "url": "https://api.remapdb.com/v1"
    }
  ],
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Response and Errors",
      "description": "- API will always respond with json, content type: **application/json**.\n- Successfull response will return HTTP **2XX** ***(Success)*** response code.\n- Error response will return either HTTP **4XX** ***(Client Error)*** or HTTP **5XX** ***(Server Error)***.\n\nOn error, API will return error object. It will contain the appropriate error **code** *(integer)* and a **message** *(string)*.\nThe HTTP response code will be the same as the error code.\n\nError Schema:\n```json json_schema\n{\n  \"type\": \"object\",\n  \"properties\": {\n    \"code\": {\n      \"type\": \"integer\"\n    },\n    \"message\": {\n      \"type\": \"string\"\n    }\n  }\n}\n```\n\nError Example:\n```json http\n{\n  \"code\": 404,\n  \"message\": \"Method doesnt exist.\"\n}\n```\n",
      "x-traitTag": true
    },
    {
      "name": "Language",
      "description": "All API methods accept custom language. It can be set via the **\"Accept-Language\"** header. Content of the header should be the code of the language you are requesting.\n\n#### Available languages:\nCode | Name\n---------|----------\n `bg` | Bulgarian\n `da` | Danish\n `de` | German\n `en` | English **(default)**\n `es` | Spanish\n `et` | Estonian\n `fi` | Finnish\n `fr` | French\n `hr` | Croatian\n `hu` | Hungarian\n `it` | Italian\n `lt` | Lithuanian\n `lv` | Latvian\n `nb` | Norwegian Bokmål\n `nl` | Dutch\n `nn` | Norwegian Nynorsk\n `pt` | Portuguese\n `ru` | Russian\n `sv` | Swedish\n `tr` | Turkish\n `zs` | Chinese\n\nIf no \"accept-language\" header is set, the API will use the default language - English.\n\nFollowing example shows how to set the language to Dutch (`nl`) using curl:\n```json http\ncurl 'https://api.remapdb.com/v1/search?query=audi' \\\n--header 'Accept-Language: nl'\n```\n",
      "x-traitTag": true
    },
    {
      "name": "Rate Limits",
      "description": "To ensure optimal service performance and prevent abuse, this API enforces rate limiting.\n  - Rate limits apply to all API methods.\n  - Limits are tied to each API key and subscription plan and reset every minute.\n  - If the rate limit is exceeded, the API will return error code **401** with the message: **“This API key has reached the time limit for this method”**.\n",
      "x-traitTag": true
    },
    {
      "name": "Client SDKs",
      "description": "Remapdb offers OpenAPI v3 specification which can be used with any OpenAPI/Swagger client generator to generate your own client SDK.\nDownload OpenAPI specification: [https://docs.remapdb.com/openapi.json](https://docs.remapdb.com/openapi.json).\n\n\nFollowing SDK's are automatically generated:\nLanguage | Link\n----------|----------\nPHP | [https://github.com/remapdb-api/remapdb-php-sdk](https://github.com/remapdb-api/remapdb-php-sdk)\nJavaScript | [https://github.com/remapdb-api/remapdb-js-sdk](https://github.com/remapdb-api/remapdb-js-sdk)\n",
      "x-traitTag": true
    },
    {
      "name": "Subscription",
      "description": "Most of the API methods require an active API subscription. The following method allows you to obtain information about your current API subscription.\n\nMore info about Remapdb's API subscription can be found here: [https://app.remapdb.com/api](https://app.remapdb.com/api)\n",
      "x-displayName": "API Subscription"
    },
    {
      "name": "Types",
      "description": "Obtain information about the vehicle types. \n\n**Active API subscription required. Get it here: [https://app.remapdb.com/api](https://app.remapdb.com/api)**\n",
      "x-displayName": "Vehicle Types"
    },
    {
      "name": "Manufacturers",
      "description": "Obtain information about vehicle manufacturers. \n\n**Active API subscription required. Get it here: [https://app.remapdb.com/api](https://app.remapdb.com/api)**\n"
    },
    {
      "name": "Models",
      "description": "Obtain information about vehicle models. \n\n**Active API subscription required. Get it here: [https://app.remapdb.com/api](https://app.remapdb.com/api)**\n"
    },
    {
      "name": "Generations",
      "description": "Obtain information about model generations. \n\n**Active API subscription required. Get it here: [https://app.remapdb.com/api](https://app.remapdb.com/api)**      \n"
    },
    {
      "name": "Engines",
      "description": "Obtain information about vehicle engines. \n\n**Active API subscription required. Get it here: [https://app.remapdb.com/api](https://app.remapdb.com/api)**     \n"
    },
    {
      "name": "Search",
      "description": "Searches through manufacturers, models, generations and engines. \n\n**Active API subscription required. Get it here: [https://app.remapdb.com/api](https://app.remapdb.com/api)**\n"
    }
  ],
  "paths": {
    "/subscription": {
      "get": {
        "tags": [
          "Subscription"
        ],
        "summary": "Active Subscription",
        "description": "This method allows you to check if the authenticated bearer token (`Authorization: Bearer <API_KEY>`) has access to Remapdb’s API.",
        "operationId": "check_subscription",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/subscription"
                },
                "examples": {
                  "Active subscription": {
                    "value": {
                      "api_key": "string",
                      "scopes": [
                        "vdb_read"
                      ],
                      "calls_limit": 60,
                      "created": "2024-12-04T08:05:15+00:00",
                      "subscription": {
                        "id": 0,
                        "start_date": "2024-12-04T08:05:15+00:00",
                        "end_date": "2028-12-04T08:05:15+00:00",
                        "catalog_profile": "full",
                        "api_access": true,
                        "is_active": true
                      }
                    }
                  },
                  "Inactive subscription": {
                    "value": {
                      "api_key": "string",
                      "scopes": [
                        "vdb_read"
                      ],
                      "calls_limit": 60,
                      "created": "2022-12-04T08:05:15+00:00",
                      "subscription": {
                        "id": 0,
                        "start_date": "2022-12-04T08:05:15+00:00",
                        "end_date": "2023-12-04T08:05:15+00:00",
                        "catalog_profile": "full",
                        "api_access": true,
                        "is_active": false
                      }
                    }
                  }
                }
              }
            },
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/error_401",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/error_403",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/error_500",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/error_404",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "406": {
            "$ref": "#/components/responses/error_406",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/error_429",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/error_default",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "deprecated": true
      }
    },
    "/types": {
      "get": {
        "tags": [
          "Types"
        ],
        "summary": "Vehicle Types",
        "description": "Provides a list of all available vehicle types.",
        "operationId": "list_types",
        "parameters": [
          {
            "$ref": "#/components/parameters/language"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/vehicle_type"
                  },
                  "maxItems": 1000
                },
                "examples": {
                  "Successful response": {
                    "value": [
                      {
                        "id": 1,
                        "name": "Cars & LCV",
                        "slug": "cars"
                      },
                      {
                        "id": 2,
                        "name": "Trucks & Buses",
                        "slug": "trucks"
                      },
                      {
                        "id": 3,
                        "name": "Agriculture",
                        "slug": "agriculture"
                      },
                      {
                        "id": 5,
                        "name": "Motorcycles & ATVs",
                        "slug": "motorcycles"
                      },
                      {
                        "id": 4,
                        "name": "Marine",
                        "slug": "marine"
                      }
                    ]
                  }
                }
              }
            },
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/error_401",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/error_403",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/error_500",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/error_404",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "406": {
            "$ref": "#/components/responses/error_406",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/error_429",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/error_default",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "deprecated": true
      }
    },
    "/manufacturers/type/{type_id}": {
      "get": {
        "tags": [
          "Manufacturers"
        ],
        "summary": "Manufacturers by Type",
        "description": "Show all manufacturers from specific type.",
        "operationId": "list_manufacturers",
        "parameters": [
          {
            "name": "type_id",
            "in": "path",
            "description": "Vehicle type ID.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "example": 1,
              "minimum": 1,
              "maximum": 2147483647,
              "format": "int32"
            },
            "example": 123
          },
          {
            "$ref": "#/components/parameters/language"
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Pagination cursor. Omit for first page; pass the previous `next_cursor` for next page.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 2147483647,
              "format": "int32"
            },
            "example": 1234
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Number of items to return per page.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "format": "int32",
              "default": 50
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "items": {
                      "type": "array",
                      "maxItems": 100,
                      "items": {
                        "$ref": "#/components/schemas/manufacturer"
                      }
                    },
                    "pagination": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "cursor": {
                          "type": "integer",
                          "format": "int32",
                          "nullable": true
                        },
                        "limit": {
                          "type": "integer",
                          "format": "int32"
                        },
                        "next_cursor": {
                          "type": "integer",
                          "format": "int32",
                          "nullable": true
                        },
                        "has_more": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "limit",
                        "next_cursor",
                        "has_more"
                      ]
                    }
                  },
                  "required": [
                    "items",
                    "pagination"
                  ]
                },
                "examples": {
                  "Successful response": {
                    "value": {
                      "items": [
                        {
                          "id": 1234,
                          "name": "Aston Martin",
                          "slug": "aston-martin",
                          "logo": "https://cdn.remapdb.com/static/assets/vdb/logos/am.svg",
                          "logo_dark": "https://cdn.remapdb.com/static/assets/vdb/logos/am.svg",
                          "type": {
                            "id": 1,
                            "name": "Cars & LCV"
                          }
                        }
                      ],
                      "pagination": {
                        "cursor": null,
                        "limit": 50,
                        "next_cursor": 1234,
                        "has_more": true
                      }
                    }
                  }
                }
              }
            },
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_400",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/error_401",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/error_403",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/error_404",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/error_500",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "406": {
            "$ref": "#/components/responses/error_406",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/error_429",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/error_default",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "deprecated": true
      }
    },
    "/manufacturers/{manufacturer_id}": {
      "get": {
        "tags": [
          "Manufacturers"
        ],
        "summary": "Manufacturer Details",
        "description": "Show all manufacturer metadata along with its corresponding models.",
        "operationId": "get_manufacturer",
        "parameters": [
          {
            "name": "manufacturer_id",
            "in": "path",
            "description": "Manufacturer ID.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "example": 1234,
              "minimum": 1,
              "maximum": 2147483647,
              "format": "int32"
            },
            "example": 123
          },
          {
            "$ref": "#/components/parameters/language"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/manufacturer_w_models"
                },
                "examples": {
                  "Audi": {
                    "value": {
                      "id": 123,
                      "name": "Audi",
                      "slug": "audi",
                      "logo": "https://cdn.remapdb.com/api/logos/audi.png",
                      "type": {
                        "id": 1,
                        "name": "Cars & LCV"
                      },
                      "models": [
                        {
                          "id": 123,
                          "name": "A4",
                          "slug": "a4",
                          "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b9_fl.jpg",
                          "type": {
                            "id": 1,
                            "name": "Cars & LCV"
                          },
                          "manufacturer": {
                            "id": 1234,
                            "name": "Audi"
                          }
                        },
                        {
                          "id": 456,
                          "name": "A5",
                          "slug": "a5",
                          "photo": "https://cdn.remapdb.com/api/generations/audi_a5_b9.jpg",
                          "type": {
                            "id": 1,
                            "name": "Cars & LCV"
                          },
                          "manufacturer": {
                            "id": 1234,
                            "name": "Audi"
                          }
                        }
                      ]
                    }
                  }
                }
              }
            },
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_400",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/error_401",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/error_403",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/error_404",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/error_500",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "406": {
            "$ref": "#/components/responses/error_406",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/error_429",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/error_default",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "deprecated": true
      }
    },
    "/models/manufacturer/{manufacturer_id}": {
      "get": {
        "tags": [
          "Models"
        ],
        "summary": "Models by Manufacturer",
        "description": "Show all models from specific manufacturer.",
        "operationId": "list_models",
        "parameters": [
          {
            "name": "manufacturer_id",
            "in": "path",
            "description": "Manufacturer ID.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "example": 1234,
              "minimum": 1,
              "maximum": 2147483647,
              "format": "int32"
            },
            "example": 123
          },
          {
            "$ref": "#/components/parameters/language"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/manufacturer_model"
                  },
                  "maxItems": 1000
                },
                "examples": {
                  "Audi": {
                    "value": [
                      {
                        "id": 123,
                        "name": "A4",
                        "slug": "a4",
                        "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b9_fl.jpg",
                        "type": {
                          "id": 1,
                          "name": "Cars & LCV"
                        },
                        "manufacturer": {
                          "id": 1234,
                          "name": "Audi"
                        }
                      },
                      {
                        "id": 456,
                        "name": "A5",
                        "slug": "a5",
                        "photo": "https://cdn.remapdb.com/api/generations/audi_a5_b9.jpg",
                        "type": {
                          "id": 1,
                          "name": "Cars & LCV"
                        },
                        "manufacturer": {
                          "id": 1234,
                          "name": "Audi"
                        }
                      }
                    ]
                  }
                }
              }
            },
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_400",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/error_401",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/error_403",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/error_404",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/error_500",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "406": {
            "$ref": "#/components/responses/error_406",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/error_429",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/error_default",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "deprecated": true
      }
    },
    "/models/{model_id}": {
      "get": {
        "tags": [
          "Models"
        ],
        "summary": "Model Details",
        "description": "Show all model metadata along with its corresponding generations.",
        "operationId": "get_model",
        "parameters": [
          {
            "name": "model_id",
            "in": "path",
            "description": "Model ID.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 2147483647,
              "format": "int32"
            },
            "example": 123
          },
          {
            "$ref": "#/components/parameters/language"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/model_w_generations"
                },
                "examples": {
                  "Audi A4": {
                    "value": {
                      "id": 123,
                      "name": "A4",
                      "slug": "a4",
                      "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b9_fl.jpg",
                      "type": {
                        "id": 1,
                        "name": "Cars & LCV"
                      },
                      "manufacturer": {
                        "id": 1234,
                        "name": "Audi"
                      },
                      "generations": [
                        {
                          "id": 123,
                          "name": "B5",
                          "slug": "b5",
                          "year": 1994,
                          "year_end": 2001,
                          "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b5_31pynyoby3ok0.jpg",
                          "type": {
                            "id": 1,
                            "name": "Cars & LCV"
                          },
                          "manufacturer": {
                            "id": 1234,
                            "name": "Audi"
                          },
                          "model": {
                            "id": 1234,
                            "name": "A4"
                          }
                        },
                        {
                          "id": 456,
                          "name": "B6",
                          "slug": "b6",
                          "year": 2000,
                          "year_end": 2006,
                          "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b6_ayzv7s85pm0o.jpg",
                          "type": {
                            "id": 1,
                            "name": "Cars & LCV"
                          },
                          "manufacturer": {
                            "id": 1234,
                            "name": "Audi"
                          },
                          "model": {
                            "id": 1234,
                            "name": "A4"
                          }
                        }
                      ]
                    }
                  }
                }
              }
            },
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_400",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/error_401",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/error_403",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/error_404",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/error_500",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "406": {
            "$ref": "#/components/responses/error_406",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/error_429",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/error_default",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "deprecated": true
      }
    },
    "/generations/model/{model_id}": {
      "get": {
        "tags": [
          "Generations"
        ],
        "summary": "Generations by Model",
        "description": "Show all generations from specific model.",
        "operationId": "list_generations",
        "parameters": [
          {
            "name": "model_id",
            "in": "path",
            "description": "Model ID.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 2147483647,
              "format": "int32"
            },
            "example": 123
          },
          {
            "$ref": "#/components/parameters/language"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/model_generation"
                  },
                  "maxItems": 1000
                },
                "examples": {
                  "Audi A4": {
                    "value": [
                      {
                        "id": 123,
                        "name": "B5",
                        "slug": "b5",
                        "year": 1994,
                        "year_end": 2001,
                        "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b5_31pynyoby3ok0.jpg",
                        "type": {
                          "id": 1,
                          "name": "Cars & LCV"
                        },
                        "manufacturer": {
                          "id": 1234,
                          "name": "Audi"
                        },
                        "model": {
                          "id": 123,
                          "name": "A4"
                        }
                      },
                      {
                        "id": 456,
                        "name": "B6",
                        "slug": "b6",
                        "year": 2000,
                        "year_end": 2006,
                        "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b6_ayzv7s85pm0o.jpg",
                        "type": {
                          "id": 1,
                          "name": "Cars & LCV"
                        },
                        "manufacturer": {
                          "id": 1234,
                          "name": "Audi"
                        },
                        "model": {
                          "id": 123,
                          "name": "A4"
                        }
                      }
                    ]
                  }
                }
              }
            },
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_400",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/error_401",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/error_403",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/error_404",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/error_500",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "406": {
            "$ref": "#/components/responses/error_406",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/error_429",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/error_default",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "deprecated": true
      }
    },
    "/generations/{generation_id}": {
      "get": {
        "tags": [
          "Generations"
        ],
        "summary": "Generation Details",
        "description": "Show all generation metadata along with its corresponding engines.",
        "operationId": "get_generation",
        "parameters": [
          {
            "name": "generation_id",
            "in": "path",
            "description": "Generation ID.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 2147483647,
              "format": "int32"
            },
            "example": 123
          },
          {
            "$ref": "#/components/parameters/language"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/generation_w_engines"
                },
                "examples": {
                  "Successful response": {
                    "value": {
                      "id": 123,
                      "name": "B5",
                      "slug": "b5",
                      "year": 1994,
                      "year_end": 2001,
                      "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b5_31pynyoby3ok0.jpg",
                      "type": {
                        "id": 1,
                        "name": "Cars & LCV"
                      },
                      "manufacturer": {
                        "id": 1234,
                        "name": "Audi"
                      },
                      "model": {
                        "id": 123,
                        "name": "A4"
                      },
                      "engines": [
                        {
                          "id": 1234,
                          "name": "1.8i 125hp 170Nm",
                          "slug": "1-8i-125hp-170nm",
                          "engine_code": "XYZ",
                          "year": 2018,
                          "capacity": 1800,
                          "cylinders": 4,
                          "engine_type": "Petrol",
                          "fuel": "Petrol",
                          "ecus": [
                            {
                              "name": "EDC17CP54",
                              "manufacturer": "Bosch"
                            }
                          ],
                          "tcus": [
                            {
                              "name": "8HP",
                              "manufacturer": "ZF"
                            }
                          ],
                          "performance": {
                            "power": 150,
                            "torque": 270,
                            "dyno_values": {
                              "rpm": [
                                1000,
                                2000,
                                3000,
                                4000,
                                5000,
                                6000,
                                7000,
                                8000,
                                9000
                              ],
                              "hp": [
                                0,
                                49,
                                87,
                                112,
                                135,
                                140,
                                112,
                                0,
                                0
                              ],
                              "nm": [
                                0,
                                238,
                                243,
                                238,
                                233,
                                205,
                                150,
                                0,
                                0
                              ]
                            }
                          }
                        },
                        {
                          "id": 5678,
                          "name": "1.8T 150hp 210Nm",
                          "slug": "1-8t-150hp-210nm",
                          "engine_code": "AGU",
                          "capacity": 1781,
                          "cylinders": 4,
                          "engine_type": "Turbo Petrol",
                          "fuel": "Petrol",
                          "ecus": [
                            {
                              "manufacturer": "Bosch",
                              "name": "M3.8.3"
                            },
                            {
                              "manufacturer": "Bosch",
                              "name": "ME7.5"
                            }
                          ],
                          "tcus": [],
                          "performance": {
                            "power": 150,
                            "torque": 210,
                            "dyno_values": {
                              "rpm": [
                                1000,
                                2000,
                                3000,
                                4000,
                                5000,
                                6000,
                                7000,
                                8000,
                                9000
                              ],
                              "hp": [
                                0,
                                53,
                                93,
                                120,
                                144,
                                150,
                                120,
                                0,
                                0
                              ],
                              "nm": [
                                0,
                                200,
                                204,
                                200,
                                196,
                                173,
                                126,
                                0,
                                0
                              ]
                            }
                          }
                        }
                      ]
                    }
                  }
                }
              }
            },
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_400",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/error_401",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/error_403",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/error_404",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/error_500",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "406": {
            "$ref": "#/components/responses/error_406",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/error_429",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/error_default",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "deprecated": true
      }
    },
    "/engines/generation/{generation_id}": {
      "get": {
        "tags": [
          "Engines"
        ],
        "summary": "Engines by Generation",
        "description": "Show all engines from specific generation.",
        "operationId": "list_engines",
        "parameters": [
          {
            "name": "generation_id",
            "in": "path",
            "description": "Generation ID.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 2147483647,
              "format": "int32"
            },
            "example": 123
          },
          {
            "$ref": "#/components/parameters/language"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/engine"
                  },
                  "maxItems": 1000
                },
                "examples": {
                  "Successful response": {
                    "value": [
                      {
                        "id": 1234,
                        "name": "1.8i 125hp 170Nm",
                        "slug": "1-8i-125hp-170nm",
                        "engine_code": "XYZ",
                        "year": 2018,
                        "capacity": 1800,
                        "cylinders": 4,
                        "engine_type": "Petrol",
                        "fuel": "Petrol",
                        "ecus": [
                          {
                            "name": "EDC17CP54",
                            "manufacturer": "Bosch"
                          }
                        ],
                        "tcus": [
                          {
                            "name": "8HP",
                            "manufacturer": "ZF"
                          }
                        ],
                        "performance": {
                          "power": 150,
                          "torque": 270,
                          "dyno_values": {
                            "rpm": [
                              1000,
                              2000,
                              3000,
                              4000,
                              5000,
                              6000,
                              7000,
                              8000,
                              9000
                            ],
                            "hp": [
                              0,
                              49,
                              87,
                              112,
                              135,
                              140,
                              112,
                              0,
                              0
                            ],
                            "nm": [
                              0,
                              238,
                              243,
                              238,
                              233,
                              205,
                              150,
                              0,
                              0
                            ]
                          }
                        }
                      },
                      {
                        "id": 5678,
                        "name": "1.8T 150hp 210Nm",
                        "slug": "1-8t-150hp-210nm",
                        "engine_code": "AGU",
                        "capacity": 1781,
                        "cylinders": 4,
                        "engine_type": "Turbo Petrol",
                        "fuel": "Petrol",
                        "ecus": [
                          {
                            "model": "M3.8.3",
                            "manufacturer": "Bosch"
                          },
                          {
                            "model": "ME7.5",
                            "manufacturer": "Bosch"
                          }
                        ],
                        "tcus": [],
                        "performance": {
                          "power": 150,
                          "torque": 210,
                          "dyno_values": {
                            "rpm": [
                              1000,
                              2000,
                              3000,
                              4000,
                              5000,
                              6000,
                              7000,
                              8000,
                              9000
                            ],
                            "hp": [
                              0,
                              53,
                              93,
                              120,
                              144,
                              150,
                              120,
                              0,
                              0
                            ],
                            "nm": [
                              0,
                              200,
                              204,
                              200,
                              196,
                              173,
                              126,
                              0,
                              0
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              }
            },
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_400",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/error_401",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/error_403",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/error_404",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/error_500",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "406": {
            "$ref": "#/components/responses/error_406",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/error_429",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/error_default",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "deprecated": true
      }
    },
    "/engines/{engine_id}": {
      "get": {
        "tags": [
          "Engines"
        ],
        "summary": "Engine Details",
        "description": "Show engine metadata along with its performance and tuning information.",
        "operationId": "get_engine",
        "parameters": [
          {
            "name": "engine_id",
            "in": "path",
            "description": "Engine ID.",
            "required": true,
            "style": "simple",
            "explode": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 2147483647,
              "format": "int32"
            },
            "example": 123
          },
          {
            "$ref": "#/components/parameters/language"
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/engine_w_tuning"
                },
                "examples": {
                  "Successful response": {
                    "value": {
                      "id": 1234,
                      "name": "1.8i 125hp 170Nm",
                      "slug": "1-8i-125hp-170nm",
                      "engine_code": "XYZ",
                      "year": 2018,
                      "capacity": 1800,
                      "cylinders": 4,
                      "engine_type": "Petrol",
                      "fuel": "Petrol",
                      "ecus": [
                        {
                          "name": "EDC17CP54",
                          "manufacturer": "Bosch"
                        }
                      ],
                      "tcus": [
                        {
                          "name": "8HP",
                          "manufacturer": "ZF"
                        }
                      ],
                      "performance": {
                        "power": 150,
                        "torque": 270,
                        "dyno_values": {
                          "rpm": [
                            1000,
                            2000,
                            3000,
                            4000,
                            5000,
                            6000,
                            7000,
                            8000,
                            9000
                          ],
                          "hp": [
                            0,
                            169,
                            299,
                            386,
                            463,
                            482,
                            386,
                            0,
                            0
                          ],
                          "nm": [
                            0,
                            589,
                            602,
                            589,
                            577,
                            509,
                            372,
                            0,
                            0
                          ]
                        }
                      },
                      "tuning": {
                        "options": [
                          {
                            "name": "EGR",
                            "description": "Removal of EGR"
                          },
                          {
                            "name": "Decat",
                            "description": "Catalyst Removal"
                          }
                        ],
                        "read_tools": [
                          {
                            "name": "KESS3",
                            "manufacturer": "Alientech"
                          },
                          {
                            "name": "Trasdata",
                            "manufacturer": "Dimsport"
                          }
                        ],
                        "work_methods": [
                          {
                            "name": "OBD"
                          },
                          {
                            "name": "Bench"
                          }
                        ],
                        "stages": [
                          {
                            "stage_number": 1,
                            "performance": {
                              "power": 482,
                              "torque": 620,
                              "top_speed": 225,
                              "zero_to_hundred": 5.8,
                              "dyno_values": {
                                "rpm": [
                                  1000,
                                  2000,
                                  3000,
                                  4000,
                                  5000,
                                  6000,
                                  7000,
                                  8000,
                                  9000
                                ],
                                "hp": [
                                  0,
                                  169,
                                  299,
                                  386,
                                  463,
                                  482,
                                  386,
                                  0,
                                  0
                                ],
                                "nm": [
                                  0,
                                  589,
                                  602,
                                  589,
                                  577,
                                  509,
                                  372,
                                  0,
                                  0
                                ]
                              }
                            }
                          },
                          {
                            "stage_number": 2,
                            "performance": {
                              "power": 492,
                              "torque": 650,
                              "top_speed": 235,
                              "zero_to_hundred": 5.6,
                              "dyno_values": {
                                "rpm": [
                                  1000,
                                  2000,
                                  3000,
                                  4000,
                                  5000,
                                  6000,
                                  7000,
                                  8000,
                                  9000
                                ],
                                "hp": [
                                  0,
                                  169,
                                  299,
                                  386,
                                  463,
                                  482,
                                  386,
                                  0,
                                  0
                                ],
                                "nm": [
                                  0,
                                  589,
                                  602,
                                  589,
                                  577,
                                  509,
                                  372,
                                  0,
                                  0
                                ]
                              }
                            },
                            "modifications_required": "Aftermarket intercooler and exhaust required."
                          }
                        ]
                      }
                    }
                  }
                }
              }
            },
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_400",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/error_401",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/error_403",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/error_404",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/error_500",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "406": {
            "$ref": "#/components/responses/error_406",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/error_429",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/error_default",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "deprecated": true
      }
    },
    "/search": {
      "get": {
        "tags": [
          "Search"
        ],
        "summary": "Vehicle Search",
        "description": "Searches through manufacturers, models, generations and engines.",
        "operationId": "search",
        "parameters": [
          {
            "$ref": "#/components/parameters/language"
          },
          {
            "name": "query",
            "in": "query",
            "description": "Search query.",
            "required": true,
            "style": "form",
            "explode": true,
            "schema": {
              "minLength": 3,
              "type": "string",
              "maxLength": 2048,
              "pattern": "^[^\\u0000-\\u001F\\u007F]*$"
            },
            "example": "audi"
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Pagination document cursor from previous page (`next_cursor`). Omit for first page.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 2147483647,
              "format": "int32"
            },
            "example": 12345
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Number of search results to return per page.",
            "required": false,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "format": "int32",
              "default": 50
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/inline_response_200"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "results": [
                        {
                          "type": {
                            "id": 1,
                            "name": "Cars & LCV"
                          },
                          "manufacturer": {
                            "id": 1234,
                            "name": "Audi"
                          },
                          "model": {
                            "id": 123,
                            "name": "A4"
                          },
                          "generation": {
                            "id": 1234,
                            "name": "B5"
                          },
                          "engine": {
                            "id": 1234,
                            "name": "2.2 i-CDTi 140hp 340Nm"
                          }
                        },
                        {
                          "type": {
                            "id": 1,
                            "name": "Cars & LCV"
                          },
                          "manufacturer": {
                            "id": 4567,
                            "name": "Honda"
                          },
                          "model": {
                            "id": 12345,
                            "name": "Accord"
                          },
                          "generation": {
                            "id": 789,
                            "name": "VII"
                          },
                          "engine": {
                            "id": 9724,
                            "name": "2.4i 190hp 222Nm"
                          }
                        }
                      ],
                      "total": 456,
                      "pagination": {
                        "cursor": null,
                        "limit": 50,
                        "next_cursor": 9724,
                        "has_more": true
                      }
                    }
                  }
                }
              }
            },
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/error_400",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/error_401",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "403": {
            "$ref": "#/components/responses/error_403",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/error_500",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/error_404",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "406": {
            "$ref": "#/components/responses/error_406",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/error_429",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/error_default",
            "headers": {
              "Deprecation": {
                "description": "Configured deprecation date as an RFC 9745 Structured Field Date (for example @1790812800).",
                "schema": {
                  "type": "string"
                }
              },
              "Sunset": {
                "description": "Announced retirement date as an HTTP date, when configured. Retirement requires a separate release.",
                "schema": {
                  "type": "string"
                }
              },
              "Link": {
                "description": "Migration guide with rel=\"deprecation\".",
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "deprecated": true
      }
    }
  },
  "components": {
    "schemas": {
      "access_scope": {
        "description": "The name of the access scope.",
        "example": "vdb_read",
        "maxLength": 2048,
        "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
        "title": "Access scope",
        "type": "string",
        "x-examples": {
          "Example 1": "vdb_read"
        }
      },
      "engine": {
        "additionalProperties": false,
        "description": "Engine object",
        "properties": {
          "capacity": {
            "description": "Engine capacity in cubic cm.",
            "example": 1800,
            "nullable": true,
            "type": "integer",
            "x-stoplight": {
              "id": "gouznp0op64ai"
            }
          },
          "cylinders": {
            "description": "Number of cylinders.",
            "example": 4,
            "nullable": true,
            "type": "integer",
            "x-stoplight": {
              "id": "d6iwr8cyyq6em"
            }
          },
          "ecus": {
            "description": "List of ECU's used in this engine.",
            "items": {
              "$ref": "#/components/schemas/engine_ecu"
            },
            "maxItems": 1000,
            "type": "array",
            "x-stoplight": {
              "id": "migbki7dibp3a"
            }
          },
          "engine_code": {
            "description": "Engine code.",
            "example": "XYZ",
            "maxLength": 2048,
            "nullable": true,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "wckxngr81mqgw"
            }
          },
          "engine_type": {
            "description": "Engine type.",
            "example": "Petrol",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "vjc6vjrlmkyxf"
            }
          },
          "fuel": {
            "description": "Name of the fuel.",
            "example": "Petrol",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "f4hegp9kjeer3"
            }
          },
          "id": {
            "description": "Engine ID.",
            "example": 1234,
            "type": "integer"
          },
          "name": {
            "description": "Engine name.",
            "example": "1.8i 125hp 170Nm",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "luat02qipmx4j"
            }
          },
          "performance": {
            "$ref": "#/components/schemas/engine_performance"
          },
          "slug": {
            "description": "URL-friendly name (slug).",
            "example": "1-8i-125hp-170nm",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "honjea79phwgo"
            }
          },
          "tcus": {
            "description": "List of TCU's used in this engine.",
            "items": {
              "$ref": "#/components/schemas/engine_tcu"
            },
            "maxItems": 1000,
            "type": "array",
            "x-stoplight": {
              "id": "vn78hxdi5oged"
            }
          },
          "year": {
            "description": "Year of manufacture.",
            "example": 2018,
            "nullable": true,
            "type": "integer",
            "x-stoplight": {
              "id": "zaj0ws6i34xwa"
            }
          }
        },
        "title": "Engine",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "capacity": 1800,
            "cylinders": 4,
            "ecus": [
              {
                "manufacturer": "Bosch",
                "name": "EDC17CP54"
              }
            ],
            "engine_code": "XYZ",
            "engine_type": "Petrol",
            "fuel": "Petrol",
            "id": 1234,
            "name": "1.8i 125hp 170Nm",
            "performance": {
              "dyno_values": {
                "hp": [
                  0,
                  49,
                  87,
                  112,
                  135,
                  140,
                  112,
                  0,
                  0
                ],
                "nm": [
                  0,
                  238,
                  243,
                  238,
                  233,
                  205,
                  150,
                  0,
                  0
                ],
                "rpm": [
                  1000,
                  2000,
                  3000,
                  4000,
                  5000,
                  6000,
                  7000,
                  8000,
                  9000
                ]
              },
              "power": 150,
              "torque": 270
            },
            "slug": "1-8i-125hp-170nm",
            "tcus": [
              {
                "manufacturer": "ZF",
                "name": "8HP"
              }
            ],
            "year": 2018
          }
        }
      },
      "engine_ecu": {
        "additionalProperties": false,
        "description": "ECU object",
        "properties": {
          "manufacturer": {
            "description": "Manufacturer.",
            "example": "Bosch",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "ego5g0wgjbx5z"
            }
          },
          "name": {
            "description": "Name.",
            "example": "EDC17CP54",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          }
        },
        "title": "ECU",
        "type": "object",
        "x-examples": {
          "Bosch EDC17": {
            "manufacturer": "Bosch",
            "name": "EDC17CP54"
          }
        }
      },
      "engine_performance": {
        "additionalProperties": false,
        "description": "Engine performance object",
        "properties": {
          "dyno_values": {
            "$ref": "#/components/schemas/engine_performance_dyno"
          },
          "power": {
            "description": "Horse power (metric).",
            "example": 150,
            "type": "integer"
          },
          "torque": {
            "description": "Torque in Nm.",
            "example": 270,
            "type": "integer",
            "x-stoplight": {
              "id": "6gjau8yp073kc"
            }
          }
        },
        "title": "Performance",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "dyno_values": {
              "hp": [
                0,
                49,
                87,
                112,
                135,
                140,
                112,
                0,
                0
              ],
              "nm": [
                0,
                238,
                243,
                238,
                233,
                205,
                150,
                0,
                0
              ],
              "rpm": [
                1000,
                2000,
                3000,
                4000,
                5000,
                6000,
                7000,
                8000,
                9000
              ]
            },
            "power": 150,
            "torque": 270
          }
        }
      },
      "engine_performance_dyno": {
        "additionalProperties": false,
        "description": "Dyno object",
        "nullable": true,
        "properties": {
          "hp": {
            "description": "HP values for plotting a dyno chart.",
            "items": {
              "type": "integer",
              "x-stoplight": {
                "id": "p93ihoykl0ya1"
              }
            },
            "maxItems": 1000,
            "type": "array",
            "x-stoplight": {
              "id": "vd6hysqxr0wx8"
            }
          },
          "nm": {
            "description": "Nm values for plotting a dyno chart.",
            "items": {
              "type": "integer",
              "x-stoplight": {
                "id": "6fkv9wbg7h04g"
              }
            },
            "maxItems": 1000,
            "type": "array",
            "x-stoplight": {
              "id": "4jpbgqaf9x9yh"
            }
          },
          "rpm": {
            "description": "RPM values for plotting a dyno chart.",
            "items": {
              "type": "integer",
              "x-stoplight": {
                "id": "wlvp55ibfn59e"
              }
            },
            "maxItems": 1000,
            "type": "array"
          }
        },
        "title": "Dyno metadata",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "hp": [
              0,
              49,
              87,
              112,
              135,
              140,
              112,
              0,
              0
            ],
            "nm": [
              0,
              238,
              243,
              238,
              233,
              205,
              150,
              0,
              0
            ],
            "rpm": [
              1000,
              2000,
              3000,
              4000,
              5000,
              6000,
              7000,
              8000,
              9000
            ]
          }
        }
      },
      "engine_short": {
        "additionalProperties": false,
        "description": "Engine object",
        "properties": {
          "id": {
            "description": "Engine ID.",
            "example": 1234,
            "type": "integer"
          },
          "name": {
            "description": "Engine Name.",
            "example": "2.2 i-CDTi 140hp 340Nm",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "6gt5ltr93u5j4"
            }
          }
        },
        "title": "Engine",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "id": 1234,
            "name": "2.2 i-CDTi 140hp 340Nm"
          }
        }
      },
      "engine_stage": {
        "additionalProperties": false,
        "description": "Stage object",
        "properties": {
          "modifications_required": {
            "description": "Modifications needed.",
            "example": "Aftermarket intercooler and exhaust required.",
            "maxLength": 2048,
            "nullable": true,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "nxjtpmqu6xw08"
            }
          },
          "performance": {
            "$ref": "#/components/schemas/engine_stage_performance"
          },
          "stage_number": {
            "description": "Remap stage number.",
            "example": 1,
            "type": "integer"
          }
        },
        "title": "Tuning/Remap stage",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "modifications_required": "Aftermarket intercooler and exhaust required.",
            "performance": {
              "dyno_values": {
                "hp": [
                  0,
                  169,
                  299,
                  386,
                  463,
                  482,
                  386,
                  0,
                  0
                ],
                "nm": [
                  0,
                  589,
                  602,
                  589,
                  577,
                  509,
                  372,
                  0,
                  0
                ],
                "rpm": [
                  1000,
                  2000,
                  3000,
                  4000,
                  5000,
                  6000,
                  7000,
                  8000,
                  9000
                ]
              },
              "power": 482,
              "top_speed": 225,
              "torque": 620,
              "zero_to_hundred": 5.8
            },
            "stage_number": 1
          }
        }
      },
      "engine_stage_performance": {
        "additionalProperties": false,
        "description": "Tuning/Remap stage performance object",
        "properties": {
          "dyno_values": {
            "$ref": "#/components/schemas/engine_performance_dyno"
          },
          "power": {
            "description": "Horse power (afrer remap) (metric).",
            "example": 482,
            "type": "integer"
          },
          "top_speed": {
            "description": "Maximum speed (kmh).",
            "example": 225,
            "nullable": true,
            "type": "integer",
            "x-stoplight": {
              "id": "fwt3ezpudlxfr"
            }
          },
          "torque": {
            "description": "Torque (after remap) in Nm.",
            "example": 620,
            "type": "integer",
            "x-stoplight": {
              "id": "osrnglh6pdkbv"
            }
          },
          "zero_to_hundred": {
            "description": "Time to get from 0kmh to 100kmh (in seconds).",
            "example": 5.8,
            "nullable": true,
            "type": "number",
            "x-stoplight": {
              "id": "7le3ptsbr22t6"
            }
          }
        },
        "title": "Tuning/Remap stage performance",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "dyno_values": {
              "hp": [
                0,
                169,
                299,
                386,
                463,
                482,
                386,
                0,
                0
              ],
              "nm": [
                0,
                589,
                602,
                589,
                577,
                509,
                372,
                0,
                0
              ],
              "rpm": [
                1000,
                2000,
                3000,
                4000,
                5000,
                6000,
                7000,
                8000,
                9000
              ]
            },
            "power": 482,
            "top_speed": 225,
            "torque": 620,
            "zero_to_hundred": 5.8
          }
        }
      },
      "engine_tcu": {
        "additionalProperties": false,
        "description": "TCU object",
        "properties": {
          "manufacturer": {
            "description": "Manufacturer.",
            "example": "ZF",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "name": {
            "description": "Name.",
            "example": "8HP",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          }
        },
        "title": "TCU",
        "type": "object",
        "x-examples": {
          "ZF 8HP": {
            "manufacturer": "ZF",
            "name": "8HP"
          }
        }
      },
      "engine_tuning": {
        "additionalProperties": false,
        "description": "Engine tuning object",
        "properties": {
          "options": {
            "description": "Available remap options for this engine.",
            "items": {
              "$ref": "#/components/schemas/tuning_option"
            },
            "maxItems": 1000,
            "type": "array"
          },
          "read_tools": {
            "description": "List with the tuning tools which can be used to read this engine.",
            "items": {
              "$ref": "#/components/schemas/read_tool"
            },
            "maxItems": 1000,
            "type": "array",
            "x-stoplight": {
              "id": "lb5q8g6onza8o"
            }
          },
          "stages": {
            "description": "List with Remap/Tuning Stages.",
            "items": {
              "$ref": "#/components/schemas/engine_stage"
            },
            "maxItems": 1000,
            "type": "array",
            "x-stoplight": {
              "id": "i6vvnixufrwnf"
            }
          },
          "work_methods": {
            "description": "List with the methods to use when reading this engine.",
            "items": {
              "$ref": "#/components/schemas/work_method"
            },
            "maxItems": 1000,
            "type": "array",
            "x-stoplight": {
              "id": "ppvk2wt69dhp4"
            }
          }
        },
        "title": "Tuning",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "options": [
              {
                "description": "Removal of EGR",
                "name": "EGR"
              }
            ],
            "read_tools": [
              {
                "manufacturer": "Alientech",
                "name": "KESS3"
              }
            ],
            "stages": [
              {
                "modifications_required": "Aftermarket intercooler and exhaust required.",
                "performance": {
                  "dyno_values": {
                    "hp": [
                      0,
                      169,
                      299,
                      386,
                      463,
                      482,
                      386,
                      0,
                      0
                    ],
                    "nm": [
                      0,
                      589,
                      602,
                      589,
                      577,
                      509,
                      372,
                      0,
                      0
                    ],
                    "rpm": [
                      1000,
                      2000,
                      3000,
                      4000,
                      5000,
                      6000,
                      7000,
                      8000,
                      9000
                    ]
                  },
                  "power": 482,
                  "top_speed": 225,
                  "torque": 620,
                  "zero_to_hundred": 5.8
                },
                "stage_number": 1
              }
            ],
            "work_methods": [
              {
                "name": "OBD"
              }
            ]
          }
        }
      },
      "engine_w_tuning": {
        "additionalProperties": false,
        "description": "Engine object",
        "properties": {
          "capacity": {
            "description": "Engine capacity in cubic cm.",
            "example": 1800,
            "nullable": true,
            "type": "integer"
          },
          "cylinders": {
            "description": "Number of cylinders.",
            "example": 4,
            "nullable": true,
            "type": "integer"
          },
          "ecus": {
            "description": "List of ECU's used in this engine.",
            "items": {
              "$ref": "#/components/schemas/engine_ecu"
            },
            "maxItems": 1000,
            "type": "array"
          },
          "engine_code": {
            "description": "Engine code.",
            "example": "XYZ",
            "maxLength": 2048,
            "nullable": true,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "engine_type": {
            "description": "Engine type.",
            "example": "Petrol",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "fuel": {
            "description": "Name of the fuel.",
            "example": "Petrol",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "id": {
            "description": "Engine ID.",
            "example": 1234,
            "type": "integer"
          },
          "name": {
            "description": "Engine name.",
            "example": "1.8i 125hp 170Nm",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "performance": {
            "$ref": "#/components/schemas/engine_performance"
          },
          "slug": {
            "description": "URL-friendly name (slug).",
            "example": "1-8i-125hp-170nm",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "tcus": {
            "description": "List of TCU's used in this engine.",
            "items": {
              "$ref": "#/components/schemas/engine_tcu"
            },
            "maxItems": 1000,
            "type": "array"
          },
          "tuning": {
            "$ref": "#/components/schemas/engine_tuning"
          },
          "year": {
            "description": "Year of manufacture.",
            "example": 2018,
            "nullable": true,
            "type": "integer"
          }
        },
        "title": "Engine",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "capacity": 1800,
            "cylinders": 4,
            "ecus": [
              {
                "manufacturer": "Bosch",
                "name": "EDC17CP54"
              }
            ],
            "engine_code": "XYZ",
            "engine_type": "Petrol",
            "fuel": "Petrol",
            "id": 1234,
            "name": "1.8i 125hp 170Nm",
            "performance": {
              "dyno_values": {
                "hp": [
                  0,
                  169,
                  299,
                  386,
                  463,
                  482,
                  386,
                  0,
                  0
                ],
                "nm": [
                  0,
                  589,
                  602,
                  589,
                  577,
                  509,
                  372,
                  0,
                  0
                ],
                "rpm": [
                  1000,
                  2000,
                  3000,
                  4000,
                  5000,
                  6000,
                  7000,
                  8000,
                  9000
                ]
              },
              "power": 150,
              "torque": 270
            },
            "slug": "1-8i-125hp-170nm",
            "tcus": [
              {
                "manufacturer": "ZF",
                "name": "8HP"
              }
            ],
            "tuning": {
              "options": [
                {
                  "description": "Removal of EGR",
                  "name": "EGR"
                }
              ],
              "read_tools": [
                {
                  "manufacturer": "Alientech",
                  "name": "KESS3"
                }
              ],
              "stages": [
                {
                  "modifications_required": "Aftermarket intercooler and exhaust required.",
                  "performance": {
                    "dyno_values": {
                      "hp": [
                        0,
                        169,
                        299,
                        386,
                        463,
                        482,
                        386,
                        0,
                        0
                      ],
                      "nm": [
                        0,
                        589,
                        602,
                        589,
                        577,
                        509,
                        372,
                        0,
                        0
                      ],
                      "rpm": [
                        1000,
                        2000,
                        3000,
                        4000,
                        5000,
                        6000,
                        7000,
                        8000,
                        9000
                      ]
                    },
                    "power": 482,
                    "top_speed": 225,
                    "torque": 620,
                    "zero_to_hundred": 5.8
                  },
                  "stage_number": 1
                }
              ],
              "work_methods": [
                {
                  "name": "OBD"
                }
              ]
            },
            "year": 2018
          }
        }
      },
      "error": {
        "additionalProperties": false,
        "description": "Error object",
        "properties": {
          "code": {
            "description": "Error code. Typically it will be the same as the returtned HTTP response code.",
            "example": 404,
            "type": "integer"
          },
          "message": {
            "description": "Error message.",
            "example": "Not found",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "iaxsxsm0kqi9n"
            }
          }
        },
        "title": "Error",
        "type": "object",
        "x-examples": {
          "Bad Request": {
            "code": 400,
            "message": "Bad request / Malformed parameter"
          },
          "Internal Server Error": {
            "code": 500,
            "message": "Internal Server Error"
          },
          "Invalid API key": {
            "code": 403,
            "message": "Invalid API key"
          },
          "Method Not Found": {
            "code": 404,
            "message": "Method not found"
          },
          "No API Access": {
            "code": 401,
            "message": "API access is not enabled for this subscription"
          },
          "No active subscription": {
            "code": 401,
            "message": "This method requires an active subscription."
          },
          "No permissions": {
            "code": 401,
            "message": "This API key does not have enough permissions"
          }
        }
      },
      "generation_short": {
        "additionalProperties": false,
        "description": "Generation metadata object",
        "properties": {
          "id": {
            "description": "Generation ID.",
            "example": 1234,
            "type": "integer"
          },
          "name": {
            "description": "Generation Name.",
            "example": "B5",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "a1w6j5210rvo9"
            }
          }
        },
        "title": "Generation",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "id": 1234,
            "name": "B5"
          }
        }
      },
      "generation_w_engines": {
        "additionalProperties": false,
        "description": "Generation metadata object",
        "properties": {
          "engines": {
            "description": "List with all the engines.",
            "items": {
              "$ref": "#/components/schemas/engine"
            },
            "maxItems": 1000,
            "type": "array"
          },
          "id": {
            "description": "Generation ID.",
            "example": 123,
            "type": "integer"
          },
          "manufacturer": {
            "$ref": "#/components/schemas/manufacturer_short"
          },
          "model": {
            "$ref": "#/components/schemas/model_short"
          },
          "name": {
            "description": "Generation Name.",
            "example": "B5",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "photo": {
            "description": "Link to generations's photo.",
            "example": "https://cdn.remapdb.com/api/generations/audi_a4_b5_31pynyoby3ok0.jpg",
            "maxLength": 2048,
            "nullable": true,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "slug": {
            "description": "URL-friendly name (slug).",
            "example": "b5",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/vehicle_type_short"
          },
          "year": {
            "description": "Year of manufacture.",
            "example": 1994,
            "nullable": true,
            "type": "integer",
            "x-stoplight": {
              "id": "nq06kurihg3bs"
            }
          },
          "year_end": {
            "description": "End year of manufacture.",
            "example": 2001,
            "nullable": true,
            "type": "integer",
            "x-stoplight": {
              "id": "gsfwdd4ux320x"
            }
          }
        },
        "title": "Generation",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "engines": [
              {
                "capacity": 1800,
                "cylinders": 4,
                "ecus": [
                  {
                    "manufacturer": "Bosch",
                    "name": "EDC17CP54"
                  }
                ],
                "engine_code": "XYZ",
                "engine_type": "Petrol",
                "fuel": "Petrol",
                "id": 1234,
                "name": "1.8i 125hp 170Nm",
                "performance": {
                  "dyno_values": {
                    "hp": [
                      0,
                      49,
                      87,
                      112,
                      135,
                      140,
                      112,
                      0,
                      0
                    ],
                    "nm": [
                      0,
                      238,
                      243,
                      238,
                      233,
                      205,
                      150,
                      0,
                      0
                    ],
                    "rpm": [
                      1000,
                      2000,
                      3000,
                      4000,
                      5000,
                      6000,
                      7000,
                      8000,
                      9000
                    ]
                  },
                  "power": 150,
                  "torque": 270
                },
                "slug": "1-8i-125hp-170nm",
                "tcus": [
                  {
                    "manufacturer": "ZF",
                    "name": "8HP"
                  }
                ],
                "year": 2018
              }
            ],
            "id": 123,
            "manufacturer": {
              "id": 1234,
              "name": "Audi"
            },
            "model": {
              "id": 123,
              "name": "A4"
            },
            "name": "B5",
            "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b5_31pynyoby3ok0.jpg",
            "slug": "b5",
            "type": {
              "id": 1,
              "name": "Cars & LCV"
            },
            "year": 1994,
            "year_end": 2001
          }
        }
      },
      "inline_response_200": {
        "additionalProperties": false,
        "properties": {
          "results": {
            "description": "List with search results.",
            "items": {
              "$ref": "#/components/schemas/search_result"
            },
            "maxItems": 1000,
            "type": "array",
            "x-stoplight": {
              "id": "j4z15ozedvqwc"
            }
          },
          "total": {
            "description": "Number of results.",
            "example": 456,
            "type": "integer",
            "x-stoplight": {
              "id": "oo52tlzajd2kl"
            }
          },
          "pagination": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "cursor": {
                "type": "integer",
                "format": "int32",
                "nullable": true,
                "description": "Current page document cursor used for this request."
              },
              "limit": {
                "type": "integer",
                "format": "int32"
              },
              "next_cursor": {
                "type": "integer",
                "format": "int32",
                "nullable": true,
                "description": "Next page document cursor. Pass this value as `cursor` to continue."
              },
              "has_more": {
                "type": "boolean"
              }
            },
            "required": [
              "limit",
              "next_cursor",
              "has_more"
            ]
          }
        },
        "type": "object",
        "required": [
          "results",
          "total",
          "pagination"
        ]
      },
      "manufacturer": {
        "additionalProperties": false,
        "description": "Manufacturer object",
        "properties": {
          "id": {
            "description": "Manufacturer ID.",
            "example": 1000,
            "type": "integer"
          },
          "logo": {
            "description": "Link to manufacturer's logo.",
            "example": "https://cdn.remapdb.com/vdb/logos/audi-light.svg",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "r5cesqw6fpi3q"
            }
          },
          "logo_dark": {
            "description": "Link to manufacturer's logo (Version for dark themes).",
            "example": "https://cdn.remapdb.com/vdb/logos/audi-dark.svg",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "r5cesqw6fpi3z"
            }
          },
          "name": {
            "description": "Name of the manufacturer.",
            "example": "Audi",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "zuovreto6t14g"
            }
          },
          "slug": {
            "description": "URL-friendly name (slug).",
            "example": "audi",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "itntjehjnxva8"
            }
          },
          "type": {
            "$ref": "#/components/schemas/manufacturer_type"
          }
        },
        "title": "Manufacturer",
        "type": "object",
        "x-examples": {
          "Audi": {
            "id": 1000,
            "logo": "https://cdn.remapdb.com/vdb/logos/audi-light.svg",
            "logo_dark": "https://cdn.remapdb.com/vdb/logos/audi-dark.svg",
            "name": "Audi",
            "slug": "audi",
            "type": {
              "id": 0,
              "name": "string"
            }
          }
        }
      },
      "manufacturer_model": {
        "additionalProperties": false,
        "description": "Model object",
        "properties": {
          "id": {
            "description": "Model ID.",
            "example": 123,
            "type": "integer"
          },
          "manufacturer": {
            "$ref": "#/components/schemas/manufacturer_short"
          },
          "name": {
            "description": "Model Name.",
            "example": "A4",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "yuchyc06ifj06"
            }
          },
          "photo": {
            "description": "Link to model's photo.",
            "example": "https://cdn.remapdb.com/api/generations/audi_a4_b9_fl.jpg",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "kh9e1m2ng7s51"
            }
          },
          "slug": {
            "description": "URL-friendly name (slug).",
            "example": "a4",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "qe0jif8hl4jzo"
            }
          },
          "type": {
            "$ref": "#/components/schemas/vehicle_type_short"
          }
        },
        "title": "Model",
        "type": "object",
        "x-examples": {
          "Audi A4": {
            "id": 123,
            "manufacturer": {
              "id": 1000,
              "name": "Audi"
            },
            "name": "A4",
            "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b9_fl.jpg",
            "slug": "a4",
            "type": {
              "id": 1,
              "name": "Cars & LCV"
            }
          }
        }
      },
      "manufacturer_short": {
        "additionalProperties": false,
        "description": "Manufacturer object",
        "properties": {
          "id": {
            "description": "Manufacturer ID.",
            "example": 1234,
            "type": "integer"
          },
          "name": {
            "description": "Name of the manufacturer.",
            "example": "Audi",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          }
        },
        "title": "Manufacturer",
        "type": "object",
        "x-examples": {
          "Audi": {
            "id": 1000,
            "name": "Audi"
          }
        }
      },
      "manufacturer_type": {
        "additionalProperties": false,
        "description": "Vehicle type object.",
        "properties": {
          "id": {
            "description": "Vehicle Type ID.",
            "example": 123,
            "type": "integer",
            "x-stoplight": {
              "id": "32dplvwo445n9"
            }
          },
          "name": {
            "description": "The name of the vehicle type.",
            "example": "Cars & LCV",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "zphic8laubrsf"
            }
          }
        },
        "type": "object"
      },
      "manufacturer_w_models": {
        "additionalProperties": false,
        "description": "Manufacturer metadata object",
        "properties": {
          "id": {
            "description": "Manufacturer ID.",
            "example": 1234,
            "type": "integer"
          },
          "logo": {
            "description": "Link to manufacturer's logo.",
            "example": "https://cdn.remapdb.com/vdb/logos/audi-light.svg",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "logo_dark": {
            "description": "Link to manufacturer's logo (Version for dark themes).",
            "example": "https://cdn.remapdb.com/vdb/logos/audi-dark.svg",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "models": {
            "description": "List with all the models.",
            "items": {
              "$ref": "#/components/schemas/manufacturer_model"
            },
            "maxItems": 1000,
            "type": "array"
          },
          "name": {
            "description": "Name of the manufacturer.",
            "example": "Audi",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "slug": {
            "description": "URL-friendly name (slug).",
            "example": "audi",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/vehicle_type_short"
          }
        },
        "title": "Manufacturer",
        "type": "object",
        "x-examples": {
          "Audi": {
            "id": 1234,
            "logo": "https://cdn.remapdb.com/vdb/logos/audi-light.svg",
            "logo_dark": "https://cdn.remapdb.com/vdb/logos/audi-dark.svg",
            "models": [
              {
                "id": 123,
                "manufacturer": {
                  "id": 1234,
                  "name": "Audi"
                },
                "name": "A4",
                "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b9_fl.jpg",
                "slug": "a4",
                "type": {
                  "id": 1,
                  "name": "Cars & LCV"
                }
              },
              {
                "id": 456,
                "manufacturer": {
                  "id": 1234,
                  "name": "Audi"
                },
                "name": "A5",
                "photo": "https://cdn.remapdb.com/api/generations/audi_a5_b9.jpg",
                "slug": "a5",
                "type": {
                  "id": 1,
                  "name": "Cars & LCV"
                }
              }
            ],
            "name": "Audi",
            "slug": "audi",
            "type": {
              "id": 1,
              "name": "Cars & LCV"
            }
          }
        }
      },
      "model_generation": {
        "additionalProperties": false,
        "description": "Generation object",
        "properties": {
          "id": {
            "description": "Generation ID.",
            "example": 123,
            "type": "integer"
          },
          "manufacturer": {
            "$ref": "#/components/schemas/manufacturer_short"
          },
          "model": {
            "$ref": "#/components/schemas/model_short"
          },
          "name": {
            "description": "Generation Name.",
            "example": "B5",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "photo": {
            "description": "Link to generations's photo.",
            "example": "https://cdn.remapdb.com/api/generations/audi_a4_b5_31pynyoby3ok0.jpg",
            "maxLength": 2048,
            "nullable": true,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "6orzawzdhd3cj"
            }
          },
          "slug": {
            "description": "URL-friendly name (slug).",
            "example": "b5",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/vehicle_type_short"
          },
          "year": {
            "description": "Year of manufacture.",
            "example": 1994,
            "nullable": true,
            "type": "integer"
          },
          "year_end": {
            "description": "End year of manufacture.",
            "example": 2001,
            "nullable": true,
            "type": "integer",
            "x-stoplight": {
              "id": "nh34xn1mr2zbc"
            }
          }
        },
        "title": "Generation",
        "type": "object",
        "x-examples": {
          "Audi A4 B5": {
            "id": 123,
            "manufacturer": {
              "id": 123,
              "name": "Audi"
            },
            "model": {
              "id": 123,
              "name": "A4"
            },
            "name": "B5",
            "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b5_31pynyoby3ok0.jpg",
            "slug": "b5",
            "type": {
              "id": 1,
              "name": "Cars & LCV"
            },
            "year": 1994,
            "year_end": 2001
          }
        }
      },
      "model_short": {
        "additionalProperties": false,
        "description": "Model object",
        "properties": {
          "id": {
            "description": "Model ID.",
            "example": 123,
            "type": "integer"
          },
          "name": {
            "description": "Name of the model.",
            "example": "A4",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          }
        },
        "title": "Model",
        "type": "object",
        "x-examples": {
          "Audi A4": {
            "id": 123,
            "name": "A4"
          }
        }
      },
      "model_w_generations": {
        "additionalProperties": false,
        "description": "Model metadata object",
        "properties": {
          "generations": {
            "description": "List with all the models.",
            "items": {
              "$ref": "#/components/schemas/model_generation"
            },
            "maxItems": 1000,
            "type": "array"
          },
          "id": {
            "description": "Model ID.",
            "example": 1234,
            "type": "integer"
          },
          "manufacturer": {
            "$ref": "#/components/schemas/manufacturer_short"
          },
          "name": {
            "description": "Name of the model.",
            "example": "A4",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "photo": {
            "description": "Link to model's photo.",
            "example": "https://cdn.remapdb.com/api/generations/audi_a4_b9_fl.jpg",
            "maxLength": 2048,
            "nullable": true,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "slug": {
            "description": "URL-friendly name (slug).",
            "example": "4",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/vehicle_type_short"
          }
        },
        "title": "Model",
        "type": "object",
        "x-examples": {
          "Audi A4": {
            "generations": [
              {
                "id": 123,
                "manufacturer": {
                  "id": 1234,
                  "name": "Audi"
                },
                "model": {
                  "id": 1234,
                  "name": "A4"
                },
                "name": "B5",
                "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b5_31pynyoby3ok0.jpg",
                "slug": "b5",
                "type": {
                  "id": 1,
                  "name": "Cars & LCV"
                },
                "year": 1994,
                "year_end": 2001
              },
              {
                "id": 456,
                "manufacturer": {
                  "id": 1234,
                  "name": "Audi"
                },
                "model": {
                  "id": 1234,
                  "name": "A4"
                },
                "name": "B6",
                "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b6_ayzv7s85pm0o.jpg",
                "slug": "b6",
                "type": {
                  "id": 1,
                  "name": "Cars & LCV"
                },
                "year": 2000,
                "year_end": 2006
              }
            ],
            "id": 123,
            "manufacturer": {
              "id": 1234,
              "name": "Audi"
            },
            "name": "A4",
            "photo": "https://cdn.remapdb.com/api/generations/audi_a4_b9_fl.jpg",
            "slug": "a4",
            "type": {
              "id": 1,
              "name": "Cars & LCV"
            }
          }
        }
      },
      "read_tool": {
        "additionalProperties": false,
        "description": "Read Tool object",
        "properties": {
          "manufacturer": {
            "description": "Manufacturer.",
            "example": "Alientech",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "ene9p2f5occpc"
            }
          },
          "name": {
            "description": "Name.",
            "example": "KESS3",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          }
        },
        "title": "Read Tool",
        "type": "object",
        "x-examples": {
          "Alientech KESS3": {
            "manufacturer": "Alientech",
            "name": "KESS3"
          }
        }
      },
      "search_result": {
        "additionalProperties": false,
        "description": "Search result object",
        "properties": {
          "engine": {
            "$ref": "#/components/schemas/engine_short"
          },
          "generation": {
            "$ref": "#/components/schemas/generation_short"
          },
          "manufacturer": {
            "$ref": "#/components/schemas/manufacturer_short"
          },
          "model": {
            "$ref": "#/components/schemas/model_short"
          },
          "type": {
            "$ref": "#/components/schemas/vehicle_type_short"
          }
        },
        "title": "Search result",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "engine": {
              "id": 1234,
              "name": "2.2 i-CDTi 140hp 340Nm"
            },
            "generation": {
              "id": 1234,
              "name": "B5"
            },
            "manufacturer": {
              "id": 1234,
              "name": "Audi"
            },
            "model": {
              "id": 123,
              "name": "A4"
            },
            "type": {
              "id": 1,
              "name": "Cars & LCV"
            }
          }
        }
      },
      "subscription": {
        "additionalProperties": false,
        "properties": {
          "api_key": {
            "description": "The API key used as the bearer token in `Authorization: Bearer <API_KEY>`.",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          },
          "calls_limit": {
            "description": "The maximum number of API requests that can be made within the configured access window.",
            "example": 60,
            "type": "integer",
            "x-stoplight": {
              "id": "rcsq3dtzpxxxm"
            }
          },
          "created": {
            "description": "ISO 8601 date",
            "example": "2024-12-04T08:05:15Z",
            "format": "date-time",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "icktjotpy6g1i"
            }
          },
          "scopes": {
            "description": "Array with strings. Contains all the access scopes that this API key has.",
            "items": {
              "$ref": "#/components/schemas/access_scope"
            },
            "maxItems": 1000,
            "type": "array"
          },
          "subscription": {
            "$ref": "#/components/schemas/subscription_subscription"
          }
        },
        "title": "API Subscription",
        "type": "object",
        "x-examples": {
          "Example 1": {
            "api_key": "string",
            "calls_limit": 60,
            "created": "2024-12-04T08:05:15+00:00",
            "scopes": [
              "vdb_read"
            ],
            "subscription": {
              "api_access": true,
              "end_date": "2028-12-04T08:05:15+00:00",
              "id": 0,
              "is_active": true,
              "plan_sku": "max",
              "catalog_profile": "full",
              "start_date": "2024-12-04T08:05:15+00:00"
            }
          }
        }
      },
      "subscription_subscription": {
        "additionalProperties": false,
        "description": "Object which contains the subscription information.",
        "properties": {
          "api_access": {
            "description": "Can this subscription access the API.",
            "type": "boolean",
            "x-stoplight": {
              "id": "x9o01g1qugtmd"
            }
          },
          "end_date": {
            "description": "Subscription end date. ISO 8601 format.",
            "example": "2024-12-04T08:05:15Z",
            "format": "date-time",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "qzeesxg0ymgsb"
            },
            "nullable": true
          },
          "id": {
            "description": "Subscription ID",
            "type": "integer",
            "x-stoplight": {
              "id": "yod35rmvjze6b"
            }
          },
          "plan_sku": {
            "description": "Subscription plan SKU. MCP access requires API or MAX plan.",
            "example": "max",
            "nullable": true,
            "type": "string"
          },
          "catalog_profile": {
            "description": "Catalog visibility profile applied to REST and MCP vehicle data.",
            "enum": [
              "full",
              "trial"
            ],
            "example": "full",
            "type": "string"
          },
          "is_active": {
            "description": "Shows if description is active or not.",
            "type": "boolean",
            "x-stoplight": {
              "id": "bygnz6z7i0tlz"
            }
          },
          "start_date": {
            "description": "Date when subscription started. ISO 8601 format.",
            "example": "2024-12-04T08:05:15Z",
            "format": "date-time",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "hi3rd4wo3ilq0"
            },
            "nullable": true
          }
        },
        "type": "object"
      },
      "tuning_option": {
        "additionalProperties": false,
        "description": "Tuning option object",
        "properties": {
          "description": {
            "description": "Description.",
            "example": "Removal of EGR",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "kdmq9vrd1s855"
            }
          },
          "name": {
            "description": "Name.",
            "example": "EGR",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          }
        },
        "title": "Option",
        "type": "object",
        "x-examples": {
          "EGR": {
            "description": "Removal of EGR",
            "name": "EGR"
          }
        }
      },
      "vehicle_type": {
        "additionalProperties": false,
        "description": "Vehicle type object",
        "properties": {
          "id": {
            "description": "Vehicle type ID.",
            "example": 1,
            "type": "integer"
          },
          "name": {
            "description": "Name.",
            "example": "Cars & LCV",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "37vywsmmu6ymi"
            }
          },
          "slug": {
            "description": "URL-friendly name (slug).",
            "example": "cars",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string",
            "x-stoplight": {
              "id": "h9ym5l37ldaru"
            }
          }
        },
        "title": "Vehicle type",
        "type": "object",
        "x-examples": {
          "Cars": {
            "id": 1,
            "name": "Cars & LCV",
            "slug": "cars"
          }
        }
      },
      "vehicle_type_short": {
        "additionalProperties": false,
        "description": "Vehicle type object",
        "properties": {
          "id": {
            "description": "Vehicle type ID.",
            "example": 1,
            "type": "integer"
          },
          "name": {
            "description": "Name.",
            "example": "Cars & LCV",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          }
        },
        "title": "Vehicle type",
        "type": "object",
        "x-examples": {
          "Cars": {
            "id": 1,
            "name": "Cars & LCV"
          }
        }
      },
      "work_method": {
        "additionalProperties": false,
        "description": "Work method object",
        "properties": {
          "name": {
            "description": "Name.",
            "example": "OBD",
            "maxLength": 2048,
            "pattern": "^[^\\u0000-\\u001F\\u007F]*$",
            "type": "string"
          }
        },
        "title": "Work method",
        "type": "object",
        "x-examples": {
          "OBD": {
            "name": "OBD"
          }
        }
      }
    },
    "responses": {
      "error_401": {
        "description": "Request is unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "No API access": {
                "value": {
                  "code": 401,
                  "message": "API access is not enabled for this subscription."
                }
              },
              "No enough permissions": {
                "value": {
                  "code": 401,
                  "message": "This API key does not have enough permissions"
                }
              },
              "No active subscription": {
                "value": {
                  "code": 401,
                  "message": "This method requires an active subscription."
                }
              },
              "Other": {
                "value": {
                  "code": 401,
                  "message": "Request unauthorized"
                }
              }
            }
          }
        }
      },
      "error_400": {
        "description": "Bad/Malformed Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Bad Request": {
                "value": {
                  "code": 400,
                  "message": "Bad request / Malformed parameter"
                }
              },
              "Other": {
                "value": {
                  "code": 400,
                  "message": "Other malformed request or bad parameter"
                }
              }
            }
          }
        }
      },
      "error_403": {
        "description": "Request forbidden",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Invalid API key": {
                "value": {
                  "code": 403,
                  "message": "Invalid API key"
                }
              },
              "Other": {
                "value": {
                  "code": 403,
                  "message": "Request is forbidden"
                }
              }
            }
          }
        }
      },
      "error_404": {
        "description": "Not Found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Not found": {
                "value": {
                  "code": 404,
                  "message": "Not found"
                }
              }
            }
          }
        }
      },
      "error_500": {
        "description": "Server Error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Server Error": {
                "value": {
                  "code": 500,
                  "message": "Internal Server Error"
                }
              }
            }
          }
        }
      },
      "error_406": {
        "description": "Not Acceptable",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Not Acceptable": {
                "value": {
                  "code": 406,
                  "message": "Requested response format is not acceptable"
                }
              }
            }
          }
        }
      },
      "error_429": {
        "description": "Too Many Requests",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Rate limit exceeded": {
                "value": {
                  "code": 429,
                  "message": "Too many requests"
                }
              }
            }
          }
        }
      },
      "error_default": {
        "description": "Unexpected error",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/error"
            },
            "examples": {
              "Unexpected": {
                "value": {
                  "code": 500,
                  "message": "Unexpected error"
                }
              }
            }
          }
        }
      }
    },
    "parameters": {
      "language": {
        "name": "Accept-Language",
        "in": "header",
        "description": "Method accept custom language. Content of the header should be the code of the language you are requesting. E.g.: `en`.\n",
        "required": false,
        "style": "simple",
        "explode": false,
        "schema": {
          "type": "string",
          "example": "en",
          "enum": [
            "bg",
            "da",
            "de",
            "en",
            "es",
            "et",
            "fi",
            "fr",
            "hr",
            "it",
            "lt",
            "lv",
            "nb",
            "nl",
            "nn",
            "pt",
            "ru",
            "sv",
            "tr",
            "zs"
          ]
        },
        "example": "en"
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "API Key",
        "description": "All API methods require Bearer authentication.\nUse your existing API key as the bearer token.\n\nAuthorization header format: `Authorization: Bearer YOUR_API_KEY`."
      }
    }
  }
}
