{
  "openapi": "3.0.1",
  "info": {
    "title": "Standvirtual Scraper",
    "description": "[💰 $0.90 / 1K] Extract car listings from Standvirtual.com, Portugal's largest car marketplace — price, year, mileage, fuel, gearbox, make/model, seller, location, and photos. Search by make/model + filters, or paste a search URL.",
    "version": "1.0",
    "x-build-id": "iGlLRdQXi5xZcSNXu"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~standvirtual-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-standvirtual-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/solidcode~standvirtual-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-standvirtual-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/solidcode~standvirtual-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-standvirtual-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchUrls": {
            "title": "Standvirtual search URLs",
            "type": "array",
            "description": "Paste one or more Standvirtual.com search-result URLs. Go to standvirtual.com, set your filters in the browser (make, model, price, year, fuel...), and copy the URL from the address bar. When provided, these are used directly and the filter fields below are ignored.",
            "items": {
              "type": "string"
            }
          },
          "make": {
            "title": "Make",
            "type": "string",
            "description": "Car manufacturer as shown on Standvirtual, e.g. 'BMW', 'Mercedes-Benz', 'Renault'. Leave empty for all makes. Ignored when search URLs are provided."
          },
          "model": {
            "title": "Model",
            "type": "string",
            "description": "Model name as shown on Standvirtual (must match the chosen Make), e.g. 'Serie 3', 'Classe C', 'Clio'. Leave empty for all models of the chosen make."
          },
          "fuelTypes": {
            "title": "Fuel type",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include cars with these fuel types. Leave empty for all fuel types.",
            "items": {
              "type": "string",
              "enum": [
                "petrol",
                "diesel",
                "lpg",
                "hybrid",
                "plugin-hybrid",
                "electric",
                "hydrogen",
                "ethanol",
                "cng"
              ],
              "enumTitles": [
                "Petrol",
                "Diesel",
                "LPG",
                "Hybrid",
                "Plug-in Hybrid",
                "Electric",
                "Hydrogen",
                "Ethanol",
                "CNG (Natural gas)"
              ]
            }
          },
          "bodyTypes": {
            "title": "Body type",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include cars with these body types. Leave empty for all body types.",
            "items": {
              "type": "string",
              "enum": [
                "city-cars",
                "compact",
                "sedan",
                "station-wagon",
                "suv",
                "coupe",
                "cabrio",
                "minivan",
                "pickup"
              ],
              "enumTitles": [
                "City car",
                "Compact",
                "Sedan",
                "Station wagon",
                "SUV / Off-road",
                "Coupe",
                "Convertible",
                "Minivan / MPV",
                "Pickup"
              ]
            }
          },
          "gearbox": {
            "title": "Gearbox",
            "enum": [
              "any",
              "manual",
              "automatic"
            ],
            "type": "string",
            "description": "Transmission type.",
            "default": "any"
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "any",
              "dealer",
              "private"
            ],
            "type": "string",
            "description": "Only include listings from this kind of seller. 'Dealer / Business' keeps professional sellers; 'Private seller' keeps individuals. This is applied to each listing after it is fetched, so it never hides any results that match your other filters.",
            "default": "any"
          },
          "priceMin": {
            "title": "Minimum price (EUR)",
            "minimum": 0,
            "maximum": 5000000,
            "type": "integer",
            "description": "Only include cars at or above this price, in euros. Leave empty for no lower bound."
          },
          "priceMax": {
            "title": "Maximum price (EUR)",
            "minimum": 0,
            "maximum": 5000000,
            "type": "integer",
            "description": "Only include cars at or below this price, in euros. Leave empty for no upper bound."
          },
          "yearMin": {
            "title": "Minimum registration year",
            "minimum": 1900,
            "maximum": 2030,
            "type": "integer",
            "description": "Only include cars first registered in or after this year, e.g. 2018. Leave empty for no lower bound."
          },
          "yearMax": {
            "title": "Maximum registration year",
            "minimum": 1900,
            "maximum": 2030,
            "type": "integer",
            "description": "Only include cars first registered in or before this year. Leave empty for no upper bound."
          },
          "mileageMax": {
            "title": "Maximum mileage (km)",
            "minimum": 0,
            "maximum": 2000000,
            "type": "integer",
            "description": "Only include cars at or below this odometer reading, in kilometers, e.g. 150000. Leave empty for no upper bound."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "newest",
              "priceAsc",
              "priceDesc",
              "mileageAsc",
              "mileageDesc",
              "yearDesc",
              "yearAsc"
            ],
            "type": "string",
            "description": "How to order the search results before they are extracted. Ignored when search URLs already include a sort order.",
            "default": "relevance"
          },
          "maxResults": {
            "title": "Max results per URL",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to extract per search URL or search. Set to 0 for unlimited (gets every listing the search returns). Results come in pages, and the last page is always returned in full — so you may receive a few more than this number.",
            "default": 100
          },
          "includePhotos": {
            "title": "Fetch all photos for each listing",
            "type": "boolean",
            "description": "When on, the actor opens each listing to collect its full photo gallery (the 'images' field). When off, you get a single cover photo per listing. Turning this on roughly doubles the work per listing, so it takes longer and costs more — leave it off unless you need every photo.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}