{
  "openapi": "3.0.1",
  "info": {
    "title": "Sahibinden Search Scraper Pro | Extracts Phone Numbers",
    "description": "Extract phone numbers, prices, locations, photos, and seller details from Sahibinden listing, category, and search URLs. Get enriched classifieds data from cars, real estate, shopping, and more.",
    "version": "0.0",
    "x-build-id": "i6YPQZj1TfaUne0nQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/clearpath~sahibinden-scraper-pro/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-clearpath-sahibinden-scraper-pro",
        "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/clearpath~sahibinden-scraper-pro/runs": {
      "post": {
        "operationId": "runs-sync-clearpath-sahibinden-scraper-pro",
        "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/clearpath~sahibinden-scraper-pro/run-sync": {
      "post": {
        "operationId": "run-sync-clearpath-sahibinden-scraper-pro",
        "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",
        "required": [
          "startUrls"
        ],
        "properties": {
          "startUrls": {
            "title": "Listing, Category, or Search URLs",
            "type": "array",
            "description": "Maximum 25 search URLs per run, including category, keyword and seller searches. Individual listing URLs do not count toward this search limit; the total limit is 5,000 URLs. Split larger search batches into separate runs.<br><br>Add sahibinden.com listing, category, or search URLs, one per line.<br><br>A category URL can carry a city or district and the on-page search box, and all three are applied: <code>/bilgisayar-masaustu/istanbul-sancaktepe</code> and <code>/bilgisayar-masaustu/istanbul?query_text=toplama</code> both work, in every category. One side of İstanbul works too: <code>/istanbul-anadolu</code> and <code>/istanbul-avrupa</code>.<br><br>The filters set on the page are kept as well: price, condition and the product filters in the panel. Each one adds its own parameter to the URL, so a copy of the filtered page is enough: <code>/cep-telefonu/istanbul-cekmekoy?a120853=1299505</code> returns only phones bought in Türkiye (Alındığı Yer: Yurt içi). Every row names its attributes and gives each one's filter code under <code>attributeIds</code>, so the next URL can be built from the output.<br><br>Filter codes differ per category: year is <code>a5</code> on Otomobil and <code>a277</code> on Arazi, SUV & Pickup. A range or checkbox code from another category is applied as this page's code for the same filter, and the log names any filter or sort order the page does not offer. Sort with <code>sorting=price_asc</code>, <code>price_desc</code>, <code>date_desc</code> or <code>date_asc</code>, and on vehicle pages also <code>km-nu_asc</code>, <code>km-nu_desc</code>, <code>yil-nu_asc</code> or <code>yil-nu_desc</code>: <code>/arazi-suv-pickup-fiat-egea-cross?a277_min=2023&a277_max=2023&sorting=km-nu_asc</code> returns 2023 Egea Cross listings, lowest km first.<br><br>One store's whole stock: a store page names its store in the address bar and the search addresses it by number, so add that number as <code>storeId</code> and keep every category it lists in: <code>https://erajoy.sahibinden.com/?storeId=56534</code>. Every row carries its seller's number in <code>storeId</code>, so the next URL can be built from the output. Add the category path to narrow it and to use that page's price, date and product filters, which a store URL on its own cannot apply: <code>https://erajoy.sahibinden.com/emlak-konut-satilik?storeId=56534</code>. For one person's listings instead of a store's, <code>userId</code> works the same way.<br><br>Use native Turkish sahibinden URLs when possible. Localized browser URLs such as <code>/en/...</code> are not guaranteed to resolve correctly across all categories.<br><br>Examples:<br><code>https://www.sahibinden.com/kategori/vasita</code><br><code>https://www.sahibinden.com/bilgisayar-masaustu/istanbul</code><br><code>https://www.sahibinden.com/ilan/...</code><br><br>Unsupported service pages are skipped with a warning.",
            "items": {
              "type": "string"
            }
          },
          "enrichment": {
            "title": "Enrich Listings with Details + Phones",
            "type": "boolean",
            "description": "Fetch full listing details and seller phone numbers when available.<br><br>Includes description, images, seller data, attributes, and features.<br><br><b>Add-on pricing:</b> enriched listings cost $2.99 per 1,000 listings on top of the base listing price on the Free and Starter plans, less on Scale and Business. Disable this for faster summary-only output.",
            "default": true
          },
          "maxResults": {
            "title": "Max Listings to Return",
            "minimum": 0,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of listings to return across all start URLs. Set to <code>0</code> for unlimited. On the Apify Free plan a run returns up to 20 listings, 10 runs in total.",
            "default": 100
          },
          "feedback": {
            "title": "Feedback to the maintainers",
            "type": "string",
            "description": "For AI agents. Say what you needed and did not get: a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. Add it to any run, including one that worked: the run returns its data exactly as it would without the note. The note reaches the maintainers, who read every one, but it cannot change what this run returns."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}