{
  "openapi": "3.0.1",
  "info": {
    "title": "Mobile.bg Scraper: Cars, Trucks & Motorcycles in Bulgaria",
    "description": "Scrape mobile.bg, Bulgaria's largest vehicle marketplace: cars, SUVs, trucks, buses, motorcycles, machinery, parts and dealers with EUR price, mileage, fuel, power, photos, price history and new-listing monitoring. No login, no proxy. Export JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "L0YyqzeXd28NJebvj"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~mobile-bg-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-mobile-bg-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/recordsdata~mobile-bg-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-mobile-bg-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/recordsdata~mobile-bg-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-mobile-bg-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": {
          "mode": {
            "title": "What do you want to collect?",
            "enum": [
              "search",
              "urls",
              "dealers",
              "sitemap"
            ],
            "type": "string",
            "description": "Search vehicle ads = ads by section and filters (default). Addresses and listing numbers = specific ads, result pages or dealer sites you paste. Dealers = the dealer directory. Changed since a date = ads added or edited since a date, from the site sitemap.",
            "default": "search"
          },
          "section": {
            "title": "Vehicle section",
            "enum": [
              "cars",
              "buses",
              "trucks",
              "motorcycles",
              "agricultural",
              "industrial",
              "forklifts",
              "caravans",
              "boats",
              "trailers",
              "bicycles",
              "parts",
              "accessories",
              "tires"
            ],
            "type": "string",
            "description": "Which part of the site to search. Default: Cars and SUVs. Parts, accessories and tires use only the vehicle type, category and price.",
            "default": "cars"
          },
          "forVehicle": {
            "title": "Parts fit this vehicle type (parts only)",
            "enum": [
              "cars",
              "buses",
              "trucks",
              "motorcycles",
              "agricultural",
              "industrial",
              "forklifts",
              "caravans",
              "boats",
              "trailers",
              "bicycles"
            ],
            "type": "string",
            "description": "Only for the sections Parts, Accessories and Tires: the kind of vehicle the items are for.",
            "default": "cars"
          },
          "make": {
            "title": "Make (optional)",
            "type": "string",
            "description": "Example: BMW, Volkswagen or Scania. Case does not matter. An unknown make returns close suggestions. Empty means every make.",
            "default": ""
          },
          "model": {
            "title": "Model (optional, needs a make)",
            "type": "string",
            "description": "Example: 320, Golf or Vitara. A model that does not exist for the make returns examples. Empty means every model.",
            "default": ""
          },
          "category": {
            "title": "Body type or category (optional)",
            "type": "string",
            "description": "Cars: sedan, hatchback, station wagon, suv, coupe, convertible, minivan, van, pickup. Motorcycles: scooter, chopper, enduro, naked, ATV. Other sections: the category name in English (tractor, excavator, motor-yacht) or the Bulgarian site label. Empty means every category.",
            "default": ""
          },
          "priceMin": {
            "title": "Min price (EUR)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Example: 5000."
          },
          "priceMax": {
            "title": "Max price (EUR)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Example: 20000."
          },
          "yearFrom": {
            "title": "Min year",
            "minimum": 0,
            "maximum": 2100,
            "type": "integer",
            "description": "Vehicles produced in this year or later. Example: 2015."
          },
          "yearTo": {
            "title": "Max year",
            "minimum": 0,
            "maximum": 2100,
            "type": "integer",
            "description": "Vehicles produced in this year or earlier. Example: 2024."
          },
          "mileageMax": {
            "title": "Max mileage (km)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Example: 150000."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "any",
              "new",
              "damaged",
              "for-parts"
            ],
            "type": "string",
            "description": "Any = every ad. New, Damaged and For parts are the site own filters.",
            "default": "any"
          },
          "fuelType": {
            "title": "Fuel type",
            "enum": [
              "any",
              "petrol",
              "diesel",
              "electric",
              "hybrid",
              "plug-in-hybrid",
              "gas",
              "hydrogen"
            ],
            "type": "string",
            "description": "Fuel of the engine. Any = no filter.",
            "default": "any"
          },
          "transmission": {
            "title": "Transmission",
            "enum": [
              "any",
              "manual",
              "automatic",
              "semi-automatic"
            ],
            "type": "string",
            "description": "Gearbox type. Any = no filter.",
            "default": "any"
          },
          "powerMin": {
            "title": "Min power (hp)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Example: 100."
          },
          "powerMax": {
            "title": "Max power (hp)",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Example: 250."
          },
          "engineSizeMin": {
            "title": "Min engine size (cc)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Example: 1600."
          },
          "engineSizeMax": {
            "title": "Max engine size (cc)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Example: 2000."
          },
          "euroClassMin": {
            "title": "Min Euro emission class (1 to 6)",
            "minimum": 0,
            "maximum": 6,
            "type": "integer",
            "description": "Euro class N or newer. Example: 5."
          },
          "color": {
            "title": "Colour",
            "enum": [
              "any",
              "white",
              "black",
              "silver",
              "grey",
              "light-grey",
              "dark-grey",
              "graphite",
              "blue",
              "light-blue",
              "dark-blue",
              "red",
              "dark-red",
              "burgundy",
              "green",
              "yellow",
              "orange",
              "brown",
              "beige",
              "gold",
              "bronze",
              "purple",
              "pink",
              "cream",
              "pearl",
              "metallic"
            ],
            "type": "string",
            "description": "Body colour as listed by the site. Any = no filter.",
            "default": "any"
          },
          "region": {
            "title": "Region",
            "enum": [
              "any",
              "blagoevgrad",
              "burgas",
              "varna",
              "veliko-tarnovo",
              "vidin",
              "vratsa",
              "gabrovo",
              "dobrich",
              "dupnitsa",
              "kardzhali",
              "kyustendil",
              "lovech",
              "montana",
              "pazardzhik",
              "pernik",
              "pleven",
              "plovdiv",
              "razgrad",
              "ruse",
              "silistra",
              "sliven",
              "smolyan",
              "sofia",
              "stara-zagora",
              "targovishte",
              "haskovo",
              "shumen",
              "yambol",
              "abroad"
            ],
            "type": "string",
            "description": "Province where the vehicle is offered (Sofia includes its province). Outside Bulgaria lists vehicles located abroad.",
            "default": "any"
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "any",
              "dealer",
              "private"
            ],
            "type": "string",
            "description": "Dealers = businesses only. Private = private sellers only (their names and phones are never output).",
            "default": "any"
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "newest",
              "relevance",
              "price-asc",
              "year-desc",
              "mileage-asc",
              "last-2-days"
            ],
            "type": "string",
            "description": "Newest first is best for monitoring.",
            "default": "newest"
          },
          "startUrls": {
            "title": "Links",
            "type": "array",
            "description": "Ad links (www.mobile.bg/obiava-...), result pages with filters (www.mobile.bg/obiavi/...), dealer sites (name.mobile.bg) or www.mobile.bg/dealers.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "listingIds": {
            "title": "Listing numbers (optional)",
            "type": "array",
            "description": "The number after obiava- in an ad link. Example: 11699738500190247.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "dealerQuery": {
            "title": "Dealer name contains (optional)",
            "type": "string",
            "description": "Uses the site dealer search. Example: Auto. Empty means every dealer.",
            "default": ""
          },
          "dealerCity": {
            "title": "Dealer town (optional)",
            "type": "string",
            "description": "Written in Latin letters as on the site. Example: Sofia, Plovdiv or Varna. Empty means every town.",
            "default": ""
          },
          "includeDealerListings": {
            "title": "Also collect each dealer's vehicles",
            "type": "boolean",
            "description": "After each dealer row, also reads that dealer own ads (one vehicle row each). Many more rows.",
            "default": false
          },
          "modifiedSince": {
            "title": "Changed since (date)",
            "type": "string",
            "description": "Ads added or edited since this moment. Example: 2026-10-19 or 2026-10-19T08:00:00Z. Empty means the last 24 hours. Every ad is read in full.",
            "default": ""
          },
          "sitemapSections": {
            "title": "Sections to include (optional)",
            "type": "array",
            "description": "Leave empty for every section.",
            "items": {
              "type": "string",
              "enum": [
                "cars",
                "buses",
                "trucks",
                "motorcycles",
                "agricultural",
                "industrial",
                "forklifts",
                "caravans",
                "boats",
                "trailers",
                "bicycles",
                "parts",
                "accessories",
                "tires"
              ],
              "enumTitles": [
                "Cars and SUVs",
                "Buses and vans",
                "Trucks",
                "Motorcycles and ATVs",
                "Agricultural machinery",
                "Industrial machinery",
                "Forklifts",
                "Caravans and motorhomes",
                "Boats and yachts",
                "Trailers",
                "Bicycles",
                "Parts",
                "Accessories",
                "Tires and wheels"
              ]
            },
            "default": []
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stops after this many rows (all record types together). Free Apify plans are capped at 10 per run. The site shows at most 3,000 results per search; bigger requests are split by make, model, year and price automatically.",
            "default": 50
          },
          "fetchDetails": {
            "title": "Add full ad details",
            "type": "boolean",
            "description": "Off: one row per ad from the result list. On: also opens each ad for body type, power, VIN, equipment, all photos, description, views and dealer address. Slower; billed as a detail record.",
            "default": false
          },
          "includePriceHistory": {
            "title": "Add price history",
            "type": "boolean",
            "description": "Adds one price-history row per price step of every ad. Opens each ad page (includes full details). Billed per row.",
            "default": false
          },
          "includeContactDetails": {
            "title": "Add dealer business phone",
            "type": "boolean",
            "description": "Adds the business phone of dealerships. Private seller names, phones and emails are never output.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new listings",
            "type": "boolean",
            "description": "Skips every ad already returned by an earlier run with the same monitor name.",
            "default": false
          },
          "trackPriceChanges": {
            "title": "Report price changes (needs Only new listings)",
            "type": "boolean",
            "description": "An ad seen before whose price moved by 2 percent or more comes back with the old price, the change and the change in percent.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name (optional)",
            "type": "string",
            "description": "One name per saved search, for example bmw-sofia. Empty derives a name from your filters.",
            "default": ""
          },
          "resetSeen": {
            "title": "Forget previously seen listings",
            "type": "boolean",
            "description": "Clears the memory of this monitor name before the run.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Pages read in parallel (1 to 5)",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Requests are paced to about four per second in total, so a higher value adds little.",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. Empty means direct requests, which work. Add a proxy only if your network needs one."
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}