{
  "openapi": "3.0.1",
  "info": {
    "title": "YallaMotor Cars Scraper: UAE Used Car Data",
    "description": "Extract used-car listings from YallaMotor across the UAE, Saudi Arabia, Egypt, and the Gulf. Get price, make, model, year, mileage, and seller data as clean JSON, even where basic scrapers get blocked. Schedule runs, export to Sheets or Airtable. Pay per result, no subscription.",
    "version": "1.0",
    "x-build-id": "BAwHIeJhGeDQC0Ked"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~yallamotor-cars-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-yallamotor-cars-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/getascraper~yallamotor-cars-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-yallamotor-cars-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/getascraper~yallamotor-cars-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-yallamotor-cars-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": {
          "sourceMode": {
            "title": "Source Mode",
            "enum": [
              "listingUrls",
              "searchUrls",
              "keywordSearch"
            ],
            "type": "string",
            "description": "Choose direct listing URLs, search URLs, or a bounded keyword search.",
            "default": "listingUrls"
          },
          "startUrls": {
            "title": "Listing Or Search URLs",
            "minItems": 1,
            "maxItems": 20,
            "type": "array",
            "description": "Provide one to 20 public YallaMotor listing or search URLs when using a URL source mode.",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "title": "URL",
                  "description": "A public YallaMotor listing or search page URL.",
                  "type": "string"
                }
              },
              "required": [
                "url"
              ]
            },
            "default": [
              {
                "url": "https://uae.yallamotor.com/used-cars/search"
              }
            ]
          },
          "keywords": {
            "title": "Keywords",
            "minItems": 1,
            "maxItems": 20,
            "type": "array",
            "description": "Search terms used only in keyword search mode.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "default": [
              "Toyota Camry"
            ]
          },
          "market": {
            "title": "Market",
            "enum": [
              "uae",
              "saudi",
              "egypt",
              "kuwait",
              "qatar",
              "bahrain",
              "oman"
            ],
            "type": "string",
            "description": "Market used when the Actor builds a keyword search URL.",
            "default": "uae"
          },
          "make": {
            "title": "Make",
            "maxLength": 80,
            "type": "string",
            "description": "Optional vehicle make filter for generated searches.",
            "default": ""
          },
          "model": {
            "title": "Model",
            "maxLength": 80,
            "type": "string",
            "description": "Optional vehicle model filter for generated searches.",
            "default": ""
          },
          "sellerType": {
            "title": "Seller Type",
            "enum": [
              "any",
              "dealer",
              "private"
            ],
            "type": "string",
            "description": "Optional seller preference for generated searches.",
            "default": "any"
          },
          "minYear": {
            "title": "Minimum Year",
            "minimum": 0,
            "maximum": 2100,
            "type": "integer",
            "description": "Optional lower model-year limit."
          },
          "maxYear": {
            "title": "Maximum Year",
            "minimum": 0,
            "maximum": 2100,
            "type": "integer",
            "description": "Optional upper model-year limit."
          },
          "minPrice": {
            "title": "Minimum Price",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Optional lower price limit in the source currency."
          },
          "maxPrice": {
            "title": "Maximum Price",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Optional upper price limit in the source currency."
          },
          "maxMileageKm": {
            "title": "Maximum Mileage (Km)",
            "minimum": 0,
            "maximum": 100000000,
            "type": "integer",
            "description": "Optional upper mileage limit."
          },
          "blockedResponsePolicy": {
            "title": "Blocked Response Policy",
            "enum": [
              "failSource"
            ],
            "type": "string",
            "description": "Blocked or challenge responses fail the source and never become an empty inventory result.",
            "default": "failSource"
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Residential Apify Proxy is required to reliably clear YallaMotor's Cloudflare managed challenge. Datacenter proxy or no proxy will frequently fail.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "detailLevel": {
            "title": "Detail Level",
            "enum": [
              "listingOnly",
              "fullListing"
            ],
            "type": "string",
            "description": "Choose listing cards only or the full public listing fields available to the source.",
            "default": "fullListing"
          },
          "includeImages": {
            "title": "Include Image URLs",
            "type": "boolean",
            "description": "Include publicly listed image URLs when available.",
            "default": true
          },
          "includeSellerProfile": {
            "title": "Include Public Seller Profile",
            "type": "boolean",
            "description": "Include public seller name, type, and profile URL when available.",
            "default": true
          },
          "includeContacts": {
            "title": "Include Public Contacts",
            "type": "boolean",
            "description": "Return source-published phone or email fields only when explicitly enabled.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum Items",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Total listing cap across all sources and keywords.",
            "default": 25
          },
          "maxPagesPerSource": {
            "title": "Maximum Pages Per Source",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Maximum listing or search pages to inspect for each source URL.",
            "default": 2
          },
          "maxDetailPages": {
            "title": "Maximum Detail Pages",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum public detail pages to request, capped by Maximum Items at runtime.",
            "default": 25
          },
          "runMode": {
            "title": "Run Mode",
            "enum": [
              "snapshot",
              "changes"
            ],
            "type": "string",
            "description": "Snapshot returns current records. Changes returns new and changed records plus safe lifecycle events.",
            "default": "snapshot"
          },
          "monitorKey": {
            "title": "Monitor Key",
            "maxLength": 100,
            "type": "string",
            "description": "Stable name for a recurring Changes run. Required when Run Mode is Changes.",
            "default": ""
          },
          "emitUnchanged": {
            "title": "Emit Unchanged Listings",
            "type": "boolean",
            "description": "Include unchanged active listings in Changes mode.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Maximum Concurrent Requests",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "Bounded number of stealth browser sessions running at once.",
            "default": 1
          },
          "requestDelayMs": {
            "title": "Request Delay (Ms)",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Delay before each page navigation.",
            "default": 1000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}