{
  "openapi": "3.0.1",
  "info": {
    "title": "Facebook Marketplace Scraper + Seller Ratings & Alerts",
    "description": "Scrape Facebook Marketplace without login: full description, all photos, condition, location and seller name, join date and rating. Search any city, ZIP or coordinates with price, radius, condition and date filters. Monitoring mode returns only new and price-changed listings.",
    "version": "1.0",
    "x-build-id": "691Ypz0jZkkW61oT6"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/kingly_contest_7cb~facebook-marketplace-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-kingly_contest_7cb-facebook-marketplace-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/kingly_contest_7cb~facebook-marketplace-scraper/runs": {
      "post": {
        "operationId": "runs-sync-kingly_contest_7cb-facebook-marketplace-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/kingly_contest_7cb~facebook-marketplace-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-kingly_contest_7cb-facebook-marketplace-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": {
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "One or more keywords to search, for example \"road bike\" or \"iphone 15\". Each keyword is a separate search.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Marketplace URLs",
            "type": "array",
            "description": "Optional. Paste Facebook Marketplace search, category, or item URLs (for example https://www.facebook.com/marketplace/dallas/search/?query=bike). Filters in the URL are kept.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City and state (\"Austin, TX\"), US ZIP code (\"78701\"), or a Facebook location slug or ID from a Marketplace URL (\"dallas\", \"nyc\", \"108424279189115\"). City names and ZIP codes are converted to exact coordinates."
          },
          "latitude": {
            "title": "Latitude",
            "type": "string",
            "description": "Optional. Exact search center latitude, for example 32.7767. If you set this and Longitude, they take priority over Location."
          },
          "longitude": {
            "title": "Longitude",
            "type": "string",
            "description": "Optional. Exact search center longitude, for example -96.7970."
          },
          "radius": {
            "title": "Search radius",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How far from the location to search. Leave empty to use Facebook's default (about 40 miles)."
          },
          "radiusUnit": {
            "title": "Radius unit",
            "enum": [
              "miles",
              "km"
            ],
            "type": "string",
            "description": "Unit for Search radius.",
            "default": "miles"
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price in whole currency units, for example 50 for $50."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price in whole currency units."
          },
          "conditions": {
            "title": "Item condition",
            "type": "array",
            "description": "Only return items in these conditions. Leave empty for all conditions.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "used_like_new",
                "used_good",
                "used_fair"
              ],
              "enumTitles": [
                "New",
                "Used - Like new",
                "Used - Good",
                "Used - Fair"
              ]
            }
          },
          "daysSinceListed": {
            "title": "Date listed",
            "enum": [
              "any",
              "1",
              "7",
              "30"
            ],
            "type": "string",
            "description": "Only return listings posted within this window.",
            "default": "any"
          },
          "deliveryMethod": {
            "title": "Delivery method",
            "enum": [
              "all",
              "local_pickup",
              "shipping"
            ],
            "type": "string",
            "description": "Filter by local pickup or shipping.",
            "default": "all"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "best_match",
              "creation_time_descend",
              "price_ascend",
              "price_descend",
              "distance_ascend"
            ],
            "type": "string",
            "description": "Sort order. For monitoring new listings, use \"Date listed: newest first\".",
            "default": "best_match"
          },
          "maxItems": {
            "title": "Max listings per search",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop each search after this many listings are output.",
            "default": 50
          },
          "maxPagesPerSearch": {
            "title": "Max result pages per search",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Safety limit on pages per search. Each page has about 24 listings.",
            "default": 10
          },
          "includeDetails": {
            "title": "Include full listing details",
            "type": "boolean",
            "description": "Open each listing for the full description, all photos, condition, exact coordinates, category, and seller details (join date and ratings). Turn this off for faster, cheaper runs that only return search-card data, which still includes seller name and ID.",
            "default": true
          },
          "detailsConcurrency": {
            "title": "Detail concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many listing pages to open in parallel.",
            "default": 4
          },
          "strictFiltering": {
            "title": "Strict filtering",
            "type": "boolean",
            "description": "Facebook often mixes in listings outside your filters. When this is on, the Actor removes items outside your price range, radius (when coordinates are known), or conditions, and drops sold or pending items.",
            "default": true
          },
          "includeSold": {
            "title": "Include sold/pending",
            "type": "boolean",
            "description": "Keep listings marked sold or pending.",
            "default": false
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop listings whose title or description contains any of these words, for example \"broken\", \"parts only\", or \"wanted\".",
            "items": {
              "type": "string"
            }
          },
          "requireKeywordsInTitle": {
            "title": "Require keywords in title",
            "type": "boolean",
            "description": "Only keep listings whose title contains every word of the search keyword.",
            "default": false
          },
          "monitoringMode": {
            "title": "Monitoring mode (only new listings)",
            "type": "boolean",
            "description": "Remember listing IDs in a named key-value store, and output only listings that weren't returned by earlier runs of the same search. Schedule the Actor (for example, hourly) and connect a webhook, Slack, or email integration to get alerts.",
            "default": false
          },
          "monitoringStoreName": {
            "title": "Monitoring store name",
            "type": "string",
            "description": "Name of the key-value store that keeps seen IDs. It is created automatically and persists between runs.",
            "default": "fb-marketplace-monitor"
          },
          "monitoringKey": {
            "title": "Monitoring key",
            "type": "string",
            "description": "Optional label for this watch, for example \"dallas-bikes\". Leave empty to derive one automatically from the search settings."
          },
          "emitPriceChanges": {
            "title": "Also output price changes",
            "type": "boolean",
            "description": "In monitoring mode, output a previously seen listing again when its price changes. That output has monitoringStatus PRICE_CHANGED and includes previousPrice.",
            "default": true
          },
          "monitoringRetentionDays": {
            "title": "Remember listings for (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Forget seen IDs that haven't appeared for this many days.",
            "default": 60
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "We recommend residential proxies because Facebook blocks most datacenter IPs.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          },
          "maxRetries": {
            "title": "Max retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Retries per page. Each retry uses a new proxy IP and fresh cookies.",
            "default": 5
          },
          "cookies": {
            "title": "Facebook cookies (optional)",
            "type": "array",
            "description": "Not required, because the Actor works logged out. Only provide cookies if you understand the risk to your account. Use the format [{\"name\":\"c_user\",\"value\":\"...\"}]."
          },
          "debugSaveResponses": {
            "title": "Debug: save raw responses",
            "type": "boolean",
            "description": "Save raw pages to the run's key-value store for troubleshooting.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}