{
  "openapi": "3.0.1",
  "info": {
    "title": "Kleinanzeigen Scraper",
    "description": "Scrape Kleinanzeigen posts and search results. Extract titles, prices, descriptions, images, seller info, and properties from any listing. Search by keyword and location or look up posts by URL. No API key needed. Export as CSV, JSON, or Excel.",
    "version": "1.0",
    "x-build-id": "b8C9Fb0q91t8a6n7L"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/beatanalytics~kleinanzeigen-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-beatanalytics-kleinanzeigen-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/beatanalytics~kleinanzeigen-scraper/runs": {
      "post": {
        "operationId": "runs-sync-beatanalytics-kleinanzeigen-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/beatanalytics~kleinanzeigen-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-beatanalytics-kleinanzeigen-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": {
          "searchKeywords": {
            "title": "Search keywords",
            "type": "array",
            "description": "Keywords to search for (e.g. \"iPhone 15 Pro\", \"Sofa\"). Used together with Search locations if provided. All combinations of keywords and locations are searched.",
            "items": {
              "type": "string"
            }
          },
          "searchLocations": {
            "title": "Search locations",
            "type": "array",
            "description": "Optional locations to search in (e.g. \"Berlin\", \"10178\", \"München\"). Used together with Search keywords. All combinations are searched. If omitted, searches are performed without location filter.",
            "items": {
              "type": "string"
            }
          },
          "searchRadius": {
            "title": "Search radius (km)",
            "enum": [
              "0",
              "5",
              "10",
              "20",
              "30",
              "50",
              "100",
              "150",
              "200"
            ],
            "type": "string",
            "description": "Search radius in km around the location. Has no effect if no location is given. Valid values: 0, 5, 10, 20, 30, 50, 100, 150, 200.",
            "default": "0"
          },
          "searchCategoryId": {
            "title": "Category ID",
            "type": "integer",
            "description": "Optional Kleinanzeigen category ID to filter search results (e.g. 161 for Elektronik). Find category IDs by browsing Kleinanzeigen categories."
          },
          "maxResultsPerSearch": {
            "title": "Max results per search",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of results per search keyword+location combination.",
            "default": 25
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "recommended",
              "newest",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "Order of search results. Only affects keyword search. \"recommended\" is Kleinanzeigen's default relevance ranking.",
            "default": "recommended"
          },
          "minPrice": {
            "title": "Minimum price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return posts priced at or above this amount, in EUR. Only affects keyword search."
          },
          "maxPrice": {
            "title": "Maximum price (€)",
            "minimum": 0,
            "type": "integer",
            "description": "Only return posts priced at or below this amount, in EUR. Only affects keyword search."
          },
          "sellerType": {
            "title": "Seller type",
            "enum": [
              "private",
              "commercial"
            ],
            "type": "string",
            "description": "Restrict search results to private or commercial (Gewerblich) sellers. Only affects keyword search. Leave unset for both."
          },
          "adType": {
            "title": "Ad type",
            "enum": [
              "offered",
              "wanted"
            ],
            "type": "string",
            "description": "Restrict search results to offered (\"Ich biete\") or wanted (\"Ich suche\") posts. Only affects keyword search. Leave unset for both."
          },
          "buyNowOnly": {
            "title": "Buy Now only",
            "type": "boolean",
            "description": "Only return posts that offer Direkt kaufen (buy now). Only affects keyword search.",
            "default": false
          },
          "pictureRequired": {
            "title": "Require pictures",
            "type": "boolean",
            "description": "Only return posts that have at least one photo. Only affects keyword search.",
            "default": false
          },
          "shippable": {
            "title": "Shipping available only",
            "type": "boolean",
            "description": "Only return posts that offer shipping (Versand). Only affects keyword search.",
            "default": false
          },
          "postUrls": {
            "title": "Post URLs",
            "type": "array",
            "description": "Direct Kleinanzeigen post URLs to scrape details for. Can be used instead of or in addition to search.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "postIds": {
            "title": "Post IDs",
            "type": "array",
            "description": "Direct Kleinanzeigen post IDs (Anzeigen-IDs) to scrape details for. Can be used instead of or in addition to URLs and/or search.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}