{
  "openapi": "3.1.0",
  "info": {
    "title": "minimiau.pl read-only API",
    "version": "1.0.0",
    "description": "Public data on the one car minimiau.pl sells: a pink 2023 MINI Cooper S near Kraków, Poland. Read-only, no key. An agent cannot buy or reserve the car through this API: give the user the phone or WhatsApp link from /contact. Limit: 60 requests per minute per address. Same data as the MCP server at https://minimiau.pl/mcp.",
    "contact": {
      "name": "Maciej Caputa (seller)",
      "url": "https://minimiau.pl/kontakt/"
    }
  },
  "servers": [
    {
      "url": "https://minimiau.pl/api/v1",
      "description": "Production"
    }
  ],
  "externalDocs": {
    "description": "Documentation",
    "url": "https://minimiau.pl/api/"
  },
  "paths": {
    "/offer": {
      "get": {
        "operationId": "getOffer",
        "summary": "Car and price",
        "description": "Use when the user asks about the MINI Cooper S for sale: price in the market currency of the chosen language, status (for sale, reserved, sold), mileage, key facts, what is included and where the car is.",
        "parameters": [
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "Language of the texts and market of the price. Default pl. One of: pl, de, en, sk, cs, uk.",
            "schema": {
              "type": "string",
              "enum": [
                "pl",
                "de",
                "en",
                "sk",
                "cs",
                "uk"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Car and price",
            "headers": {
              "RateLimit-Limit": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "for_sale",
                        "reserved",
                        "sold"
                      ],
                      "description": "Stable value for agents"
                    },
                    "statusText": {
                      "type": "string",
                      "description": "Status in the chosen language"
                    },
                    "availability": {
                      "type": "string"
                    },
                    "price": {
                      "type": "integer",
                      "description": "Asking price in the currency of the chosen language"
                    },
                    "currency": {
                      "type": "string",
                      "enum": [
                        "PLN",
                        "EUR",
                        "CZK"
                      ]
                    },
                    "priceText": {
                      "type": "string"
                    },
                    "negotiable": {
                      "type": "string"
                    },
                    "included": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "facts": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "mileageKm": {
                      "type": "integer"
                    },
                    "stateOn": {
                      "type": "string",
                      "description": "Date the data was last checked (YYYY-MM-DD)"
                    },
                    "location": {
                      "type": "string"
                    },
                    "map": {
                      "type": "string",
                      "description": "Map of the village; the exact address is given the day before a viewing"
                    },
                    "page": {
                      "type": "string"
                    },
                    "markdown": {
                      "type": "string"
                    },
                    "pricing": {
                      "type": "string"
                    },
                    "updated": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "name",
                    "status",
                    "statusText",
                    "availability",
                    "price",
                    "currency",
                    "priceText",
                    "negotiable",
                    "included",
                    "facts",
                    "mileageKm",
                    "stateOn",
                    "location",
                    "map",
                    "page",
                    "markdown",
                    "pricing",
                    "updated"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "name": "MINI Cooper S 2023, 178 KM, automat, różowa folia PPF",
                  "status": "for_sale",
                  "statusText": "dostępne",
                  "availability": "https://schema.org/InStock",
                  "price": 89000,
                  "currency": "PLN",
                  "priceText": "89 000 zł",
                  "negotiable": "Cena: 89 000 zł. Cena podlega rozsądnej negocjacji.",
                  "included": [
                    "folia ochronna PPF na całym nadwoziu (Clif Designs X-Colors Gloss Rouge Pink, położona 12.2025)",
                    "komplet opon zimowych, do tego letnie Pirelli Cinturato P7 na felgach 17 cali",
                    "2 kluczyki",
                    "badanie techniczne ważne do 28.06.2028",
                    "tablice indywidualne K9 MIAU"
                  ],
                  "facts": [
                    "Cena: 89 000 zł (umowa kupna-sprzedaży)",
                    "Rocznik: 2023 (produkcja 05.2023, 1. rejestracja 28.06.2023)",
                    "Przebieg: 48 906 km (licznik jest na zdjęciu w galerii)",
                    "Silnik: 2.0 turbo, 178 KM (benzyna, 131 kW, Euro 6)",
                    "Skrzynia: Automat (sportowa, dwusprzęgłowa (DCT))",
                    "Historia: Bezwypadkowe (serwis w autoryzowanym serwisie MINI M-Cars w Krakowie)",
                    "Badanie techniczne: do 28.06.2028 (OC opłacone do listopada 2026)",
                    "W cenie: Zimówki i 2 kluczyki (plus folia ochronna i tablice K9 MIAU)"
                  ],
                  "mileageKm": 48906,
                  "stateOn": "2026-10-28",
                  "location": "Auto stoi w Libertowie pod Krakowem (gmina Mogilany, małopolskie): Zobacz na mapie (https://www.google.com/maps/search/?api=1&query=Libert%C3%B3w%2C%20gmina%20Mogilany%2C%20Polska). Dokładny adres podaję dzień przed oględzinami.",
                  "map": "https://www.google.com/maps/search/?api=1&query=Libert%C3%B3w%2C%20gmina%20Mogilany%2C%20Polska",
                  "page": "https://minimiau.pl/",
                  "markdown": "https://minimiau.pl/index.md",
                  "pricing": "https://minimiau.pl/pricing.md",
                  "updated": "2026-10-28"
                }
              }
            }
          },
          "400": {
            "description": "Unknown query parameter or invalid value",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Unknown path",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "405": {
            "description": "Only GET, HEAD and OPTIONS",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "More than 60 requests per minute from one address; see Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "RateLimit-Limit": {
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "schema": {
                  "type": "integer"
                }
              },
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal error, or an answer too large to send",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data temporarily unavailable; try again in a minute",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/photos": {
      "get": {
        "operationId": "getPhotos",
        "summary": "Photos and videos",
        "description": "Use when the user wants to see the car: addresses of photos and videos with a description, each marked real or made with AI for fun (the car in AI videos is real).",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "How many items to return, 1 to 50. Default 12.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Photos and videos",
            "headers": {
              "RateLimit-Limit": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "total": {
                      "type": "integer"
                    },
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "enum": [
                              "photo",
                              "video"
                            ]
                          },
                          "url": {
                            "type": "string"
                          },
                          "description": {
                            "type": "string"
                          },
                          "real": {
                            "type": "boolean"
                          },
                          "note": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "type",
                          "url",
                          "description",
                          "real",
                          "note"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "total",
                    "items"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "total": 40,
                  "items": [
                    {
                      "type": "photo",
                      "url": "https://minimiau.pl/media/foto/01-przod-3-4-prawy-1600-v1.webp",
                      "description": "Pink MINI Cooper S with the K9 MIAU number plate, front from the right",
                      "real": true,
                      "note": "real"
                    },
                    {
                      "type": "video",
                      "url": "https://minimiau.pl/media/film/prawdziwe-yara-v1.mp4",
                      "description": "Filmed on a phone outside the house in Libertów",
                      "real": true,
                      "note": "real"
                    },
                    {
                      "type": "photo",
                      "url": "https://minimiau.pl/media/foto/02-profil-lewy-1600-v1.webp",
                      "description": "Left side, black roof and black wheels",
                      "real": true,
                      "note": "real"
                    },
                    {
                      "type": "photo",
                      "url": "https://minimiau.pl/media/foto/03-tyl-1600-v1.webp",
                      "description": "Rear",
                      "real": true,
                      "note": "real"
                    },
                    {
                      "type": "video",
                      "url": "https://minimiau.pl/media/film/ai-6-szuka-wlasciciela-v1.mp4",
                      "description": "It is three years old and wants a new home",
                      "real": false,
                      "note": "made with AI for fun, the car is real"
                    },
                    {
                      "type": "video",
                      "url": "https://minimiau.pl/media/film/ai-tatry-v1.mp4",
                      "description": "Two friends, golden autumn in the mountains. The passenger: “It’s such a nice drive”",
                      "real": false,
                      "note": "made with AI for fun, the car is real"
                    },
                    {
                      "type": "photo",
                      "url": "https://minimiau.pl/media/foto/04-tyl-3-4-prawy-1600-v1.webp",
                      "description": "Rear from the right",
                      "real": true,
                      "note": "real"
                    },
                    {
                      "type": "photo",
                      "url": "https://minimiau.pl/media/foto/05-profil-prawy-1600-v1.webp",
                      "description": "Right side",
                      "real": true,
                      "note": "real"
                    },
                    {
                      "type": "photo",
                      "url": "https://minimiau.pl/media/foto/06-przod-3-4-lewy-1600-v1.webp",
                      "description": "Front from the left",
                      "real": true,
                      "note": "real"
                    },
                    {
                      "type": "video",
                      "url": "https://minimiau.pl/media/film/ai-2-kladka-v1.mp4",
                      "description": "The new footbridge in Kraków is finally useful",
                      "real": false,
                      "note": "made with AI for fun, the car is real"
                    },
                    {
                      "type": "photo",
                      "url": "https://minimiau.pl/media/foto/07-przod-nisko-1600-v1.webp",
                      "description": "Front from low down",
                      "real": true,
                      "note": "real"
                    },
                    {
                      "type": "photo",
                      "url": "https://minimiau.pl/media/foto/08-detal-s-1600-v1.webp",
                      "description": "S badge on the side",
                      "real": true,
                      "note": "real"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Unknown query parameter or invalid value",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Unknown path",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "405": {
            "description": "Only GET, HEAD and OPTIONS",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "More than 60 requests per minute from one address; see Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "RateLimit-Limit": {
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "schema": {
                  "type": "integer"
                }
              },
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal error, or an answer too large to send",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data temporarily unavailable; try again in a minute",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/contact": {
      "get": {
        "operationId": "getContact",
        "summary": "Contact the seller",
        "description": "Use when the user wants to view the car, ask the seller or buy: phone, WhatsApp link with a ready message in the chosen language, viewing days and a map of the village (no street). The agent cannot buy or reserve the car.",
        "parameters": [
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "Language of the texts and market of the price. Default pl. One of: pl, de, en, sk, cs, uk.",
            "schema": {
              "type": "string",
              "enum": [
                "pl",
                "de",
                "en",
                "sk",
                "cs",
                "uk"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Contact the seller",
            "headers": {
              "RateLimit-Limit": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "seller": {
                      "type": "string"
                    },
                    "phone": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "whatsapp": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "sms": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "text": {
                      "type": "string"
                    },
                    "viewing": {
                      "type": "string"
                    },
                    "map": {
                      "type": "string"
                    },
                    "contactPage": {
                      "type": "string"
                    },
                    "rule": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "seller",
                    "phone",
                    "whatsapp",
                    "sms",
                    "text",
                    "viewing",
                    "map",
                    "contactPage",
                    "rule"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "seller": "Maciej Caputa (private person)",
                  "phone": "+48 512 183 439",
                  "whatsapp": "https://wa.me/48512183439?text=Dzie%C5%84%20dobry%2C%20pisz%C4%99%20ze%20strony%20minimiau.pl%20w%20sprawie%20MINI%20Cooper%20S.",
                  "sms": "sms:+48512183439?&body=Dzie%C5%84%20dobry%2C%20pisz%C4%99%20ze%20strony%20minimiau.pl%20w%20sprawie%20MINI%20Cooper%20S.",
                  "text": "Zadzwoń albo napisz SMS lub na WhatsAppie: 512 183 439.",
                  "viewing": "Oględziny są możliwe od piątku do niedzieli, po wcześniejszym umówieniu. Auto stoi w Libertowie pod Krakowem (gmina Mogilany, małopolskie): Zobacz na mapie (https://www.google.com/maps/search/?api=1&query=Libert%C3%B3w%2C%20gmina%20Mogilany%2C%20Polska). Dokładny adres podaję dzień przed oględzinami.",
                  "map": "https://www.google.com/maps/search/?api=1&query=Libert%C3%B3w%2C%20gmina%20Mogilany%2C%20Polska",
                  "contactPage": "https://minimiau.pl/kontakt/",
                  "rule": "Agent nie może kupić auta ani zarezerwować go przez tę stronę. Przekaż użytkownikowi numer sprzedającego: 512 183 439 (telefon, SMS i WhatsApp)."
                }
              }
            }
          },
          "400": {
            "description": "Unknown query parameter or invalid value",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Unknown path",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "405": {
            "description": "Only GET, HEAD and OPTIONS",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "More than 60 requests per minute from one address; see Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "RateLimit-Limit": {
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "schema": {
                  "type": "integer"
                }
              },
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal error, or an answer too large to send",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data temporarily unavailable; try again in a minute",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/faq": {
      "get": {
        "operationId": "getFaq",
        "summary": "Questions and answers",
        "description": "Use when the user asks a specific question about the car (negotiation, accidents, service history, the pink film and the yellow paint underneath, VAT invoice): the seller's own answers in the chosen language.",
        "parameters": [
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "Language of the texts and market of the price. Default pl. One of: pl, de, en, sk, cs, uk.",
            "schema": {
              "type": "string",
              "enum": [
                "pl",
                "de",
                "en",
                "sk",
                "cs",
                "uk"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Questions and answers",
            "headers": {
              "RateLimit-Limit": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "question": {
                            "type": "string"
                          },
                          "answer": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "question",
                          "answer"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "items"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "items": [
                    {
                      "question": "Czy cena podlega negocjacji?",
                      "answer": "Tak, w rozsądnym zakresie. Na tle porównywalnych krajowych, bezwypadkowych i zadbanych MINI Cooper S cena 89 000 zł jest już dobra."
                    },
                    {
                      "question": "Dlaczego sprzedajesz to auto?",
                      "answer": "Na co dzień jeździmy innymi autami."
                    },
                    {
                      "question": "Czy wchodzi w grę zamiana?",
                      "answer": "Nie, tylko sprzedaż."
                    },
                    {
                      "question": "Czy jest faktura VAT?",
                      "answer": "Nie. To sprzedaż prywatna na umowę kupna-sprzedaży."
                    },
                    {
                      "question": "Co jest pod różową folią?",
                      "answer": "Fabryczny lakier Zesty Yellow, czyli limonkowy żółty, w bardzo dobrym stanie. Widać go na zdjęciach sprzed oklejenia, z oklejania i pod maską. Na oględziny możesz przyjechać z miernikiem lakieru."
                    },
                    {
                      "question": "Jaka to folia i ile kosztowała?",
                      "answer": "Kolorowa folia ochronna PPF Clif Designs X-Colors w kolorze Gloss Rouge Pink na całym nadwoziu. Położyło ją IGNIS Garage w Krakowie w grudniu 2025 za 16 543,50 zł. Folia jest gruba i przyjmuje na siebie odpryski oraz drobne rysy."
                    },
                    {
                      "question": "Czy można wrócić do żółtego koloru?",
                      "answer": "Tak. Folię zdejmuje firma, która zajmuje się oklejaniem aut, a pod nią zostaje fabryczny lakier Zesty Yellow."
                    },
                    {
                      "question": "Czy auto jest bezwypadkowe?",
                      "answer": "Tak. Auto jest bezwypadkowe i było serwisowane wyłącznie w autoryzowanym serwisie BMW i MINI M-Cars w Krakowie, gdzie jest cała dokumentacja serwisowa. Przebieg i badania sprawdzisz w historiapojazdu.gov.pl po numerze VIN WMW51DH0702U72969, tablicy K9 MIAU i dacie pierwszej rejestracji 28.06.2023."
                    },
                    {
                      "question": "Czy jest pełna historia serwisowa?",
                      "answer": "Auto było serwisowane wyłącznie w autoryzowanym serwisie MINI M-Cars na Górze Libertowskiej w Krakowie. Cała dokumentacja serwisowa jest tam do wglądu."
                    },
                    {
                      "question": "Czy mogę sprawdzić auto w serwisie przed zakupem?",
                      "answer": "Tak, w dowolnym autoryzowanym serwisie MINI albo na stacji kontroli pojazdów. Serwis był robiony na bieżąco."
                    },
                    {
                      "question": "Czy auto wymaga jakichś nakładów?",
                      "answer": "Nie. Serwis był robiony na bieżąco w autoryzowanym serwisie, badanie techniczne jest ważne do 28.06.2028, a w komplecie są opony zimowe. Wystarczy wsiąść i jeździć."
                    },
                    {
                      "question": "Co jest w cenie?",
                      "answer": "Folia PPF na całym nadwoziu, letnie opony Pirelli na felgach 17 cali, komplet opon zimowych, dwa kluczyki i tablice indywidualne K9 MIAU. OC jest opłacone do listopada 2026, a badanie techniczne ważne do 28.06.2028."
                    },
                    {
                      "question": "Fotele są skórzane czy materiałowe?",
                      "answer": "Według specyfikacji MINI to tapicerka z ekoskóry (Leatherette Carbon Black): boki są gładkie, a środek ma fakturę. Fotele są sportowe i podgrzewane."
                    },
                    {
                      "question": "Gdzie można obejrzeć auto?",
                      "answer": "W Libertowie pod Krakowem, po wcześniejszym umówieniu się."
                    },
                    {
                      "question": "Ile pali?",
                      "answer": "Średnio 8,5 l/100 km według komputera pokładowego."
                    },
                    {
                      "question": "Czy filmy na stronie są prawdziwe?",
                      "answer": "Film w nagłówku i wszystkie zdjęcia są prawdziwe. Pozostałe filmy zrobiłem z AI dla zabawy: auto w nich jest prawdziwe, a scenki są wymyślone. Każdy film ma oznaczenie."
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Unknown query parameter or invalid value",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Unknown path",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "405": {
            "description": "Only GET, HEAD and OPTIONS",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "More than 60 requests per minute from one address; see Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "RateLimit-Limit": {
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "schema": {
                  "type": "integer"
                }
              },
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal error, or an answer too large to send",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data temporarily unavailable; try again in a minute",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/listings": {
      "get": {
        "operationId": "getListings",
        "summary": "Listings on other portals",
        "description": "Use when the user wants to see the same car on a car portal (Otomoto, mobile.de, autobazar.eu, TipCars) or compare listings.",
        "parameters": [
          {
            "name": "language",
            "in": "query",
            "required": false,
            "description": "Only the portals linked from that language's page. Default: all portals. One of: pl, de, en, sk, cs, uk.",
            "schema": {
              "type": "string",
              "enum": [
                "pl",
                "de",
                "en",
                "sk",
                "cs",
                "uk"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Listings on other portals",
            "headers": {
              "RateLimit-Limit": {
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "portal": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "portal",
                          "url"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "items"
                  ],
                  "additionalProperties": false
                },
                "example": {
                  "items": [
                    {
                      "portal": "Otomoto",
                      "url": "https://www.otomoto.pl/osobowe/oferta/mini-cooper-s-ID6If3vQ.html"
                    },
                    {
                      "portal": "mobile.de",
                      "url": "https://suchen.mobile.de/fahrzeuge/details.html?id=53246025886560"
                    },
                    {
                      "portal": "autobazar.eu",
                      "url": "https://www.autobazar.eu/detail/mini-cooper-s-mini-cooper-s-3-dvere-2023-178-k-automat-48-906-km-bez-nehody-ochranna-folia/AeK5NMavbiW/"
                    },
                    {
                      "portal": "TipCars",
                      "url": "https://www.tipcars.com/mini-cooper-s/hatchback/benzin/mini-cooper-s-3-dvere-automat-bez-nehody-100171507.html"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Unknown query parameter or invalid value",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Unknown path",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "405": {
            "description": "Only GET, HEAD and OPTIONS",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "More than 60 requests per minute from one address; see Retry-After",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "RateLimit-Limit": {
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Remaining": {
                "schema": {
                  "type": "integer"
                }
              },
              "RateLimit-Reset": {
                "schema": {
                  "type": "integer"
                }
              },
              "Retry-After": {
                "schema": {
                  "type": "integer"
                }
              }
            }
          },
          "500": {
            "description": "Internal error, or an answer too large to send",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Data temporarily unavailable; try again in a minute",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Error": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "status": {
                "type": "integer"
              }
            },
            "required": [
              "code",
              "message",
              "status"
            ],
            "additionalProperties": false
          }
        }
      }
    }
  }
}
