{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenSooq Scraper - MENA Classifieds Data API",
    "description": "Scrape OpenSooq (السوق المفتوح) classified listings across Jordan, Saudi Arabia, UAE, Kuwait, Egypt, and more. Extract price, location, category, images, seller, and phone reveal key. Filter by keyword, city, price, car year, and property size. Export JSON, CSV, Excel.",
    "version": "1.0",
    "x-build-id": "SUiXvTZqNGlxI5xDW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~opensooq-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-opensooq-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/parsebird~opensooq-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-opensooq-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/parsebird~opensooq-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-opensooq-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": {
          "site": {
            "title": "Country site",
            "enum": [
              "jo",
              "sa",
              "ae",
              "kw",
              "eg",
              "om",
              "qa",
              "bh",
              "iq",
              "ly",
              "ye",
              "ps",
              "sd",
              "sy",
              "lb"
            ],
            "type": "string",
            "description": "Which OpenSooq country site to scrape.",
            "default": "jo"
          },
          "query": {
            "title": "Search query",
            "type": "string",
            "description": "Text keyword to search for (e.g. iphone, apartment, bmw). Leave empty to browse the whole vertical."
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Exact OpenSooq search-result URLs (for example https://jo.opensooq.com/en/cars/cars-for-sale/toyota?price_from=5000). These take precedence over the guided filters and preserve every filter in the URL.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "vertical": {
            "title": "Vertical",
            "enum": [
              "general",
              "cars_for_sale",
              "apartments_for_sale",
              "apartments_for_rent"
            ],
            "type": "string",
            "description": "General site-wide search, or a guided vertical with its own filters.",
            "default": "general"
          },
          "category": {
            "title": "Category ID (general search)",
            "type": "string",
            "description": "OpenSooq category ID for General search, optionally `categoryId:subCategoryId` (e.g. `1775:1777`). Ignored when a guided vertical is selected."
          },
          "city": {
            "title": "City ID",
            "type": "string",
            "description": "Numeric OpenSooq city ID (for example Amman is 59, Riyadh is 24). Find it in a city-filtered URL on the site."
          },
          "neighborhood": {
            "title": "Neighborhood ID",
            "type": "string",
            "description": "Numeric OpenSooq neighborhood ID. Requires a city ID."
          },
          "priceFrom": {
            "title": "Min price",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings priced at or above this value."
          },
          "priceTo": {
            "title": "Max price",
            "minimum": 0,
            "type": "integer",
            "description": "Only include listings priced at or below this value."
          },
          "vehicleYearFrom": {
            "title": "Car year from",
            "minimum": 0,
            "type": "integer",
            "description": "Model-year lower bound for the Cars for Sale vertical."
          },
          "vehicleYearTo": {
            "title": "Car year to",
            "minimum": 0,
            "type": "integer",
            "description": "Model-year upper bound for the Cars for Sale vertical."
          },
          "vehicleMileageBand": {
            "title": "Car mileage band",
            "enum": [
              "",
              "0-50000",
              "50000-100000",
              "100000-150000",
              "150000-200000",
              "200000-100000000"
            ],
            "type": "string",
            "description": "Mileage range (km) for the Cars for Sale vertical.",
            "default": ""
          },
          "propertyBedrooms": {
            "title": "Bedrooms",
            "enum": [
              "",
              "studio",
              "1-bedroom",
              "2-bedrooms",
              "3-bedrooms",
              "4-bedrooms",
              "5-bedrooms",
              "6-bedrooms",
              "7-bedrooms",
              "8-bedrooms"
            ],
            "type": "string",
            "description": "Bedroom count for an apartment vertical. Applied as an OpenSooq filter path; cannot be combined with a bathrooms filter (use Start URLs for both).",
            "default": ""
          },
          "propertyBathrooms": {
            "title": "Bathrooms",
            "enum": [
              "",
              "1-bathroom",
              "2-bathrooms",
              "3-bathrooms",
              "4-bathrooms",
              "5-bathrooms",
              "6-bathrooms"
            ],
            "type": "string",
            "description": "Bathroom count for an apartment vertical. Used only when no bedrooms filter is set.",
            "default": ""
          },
          "surfaceFrom": {
            "title": "Min surface (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum apartment surface area in square metres."
          },
          "surfaceTo": {
            "title": "Max surface (m²)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum apartment surface area in square metres."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "",
              "recent",
              "price-asc",
              "price-desc"
            ],
            "type": "string",
            "description": "Result order.",
            "default": ""
          },
          "hasImages": {
            "title": "Only listings with images",
            "type": "boolean",
            "description": "Only return listings that contain an image gallery.",
            "default": false
          },
          "hasPrice": {
            "title": "Only listings with a price",
            "type": "boolean",
            "description": "Only return listings that disclose an explicit price.",
            "default": false
          },
          "isShop": {
            "title": "Only business shop listings",
            "type": "boolean",
            "description": "Only return listings posted by registered OpenSooq business shops.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum number of items",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of listing records to extract. This is the number of billed rows.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy settings. Residential proxies are recommended for clean, unblocked regional access to OpenSooq.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}