{
  "openapi": "3.0.1",
  "info": {
    "title": "OfferUp Scraper | Listings, Prices and Sellers",
    "description": "OfferUp scraper for US marketplace listings: search by keyword and ZIP code or city, get price, condition, description, photos, distance, seller rating, items sold, phone and address, plus VIN, mileage and title status on cars. 100 listings in 41 seconds, 43 fields each, no OfferUp account.",
    "version": "1.0",
    "x-build-id": "fh99mXKby4g6orFcQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/silentflow~offerup-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-silentflow-offerup-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/silentflow~offerup-scraper/runs": {
      "post": {
        "operationId": "runs-sync-silentflow-offerup-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/silentflow~offerup-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-silentflow-offerup-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": {
          "keywords": {
            "title": "🔎 Keywords",
            "type": "array",
            "description": "What to search on OfferUp, one keyword per line (<code>iphone 15</code>, <code>sectional sofa</code>, <code>toyota tacoma</code>). Every keyword runs its own search in every location below, with the same filters, and the results are combined without duplicates. A popular keyword returns hundreds of listings around one ZIP code: set <b>Max listings</b> to what you need.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "🔗 OfferUp URLs or IDs",
            "type": "array",
            "description": "Paste offerup.com addresses, one per line:<ul><li>a search with its filters (<code>offerup.com/search?q=sofa&PRICE_MAX=300</code>), car filters included (make, year, mileage, dealer or private seller)</li><li>a category page (<code>offerup.com/c/cars-and-trucks</code>)</li><li>a listing (<code>offerup.com/item/detail/…</code>) or its bare ID</li><li>a seller profile (<code>offerup.com/p/63289412</code>) or the seller's number: the seller's whole inventory, sold items included</li></ul>Filters written in a URL win over the filters below for that URL; a search URL without its own place runs in every location below.",
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "📍 ZIP codes or cities",
            "type": "array",
            "description": "Where to search, one place per line: a US ZIP code (<code>10001</code>) or a city (<code>Austin, TX</code>). Each keyword runs once per place and every row gets its distance in miles from that place. Leave empty to search around New York (10001).",
            "items": {
              "type": "string"
            }
          },
          "radiusMiles": {
            "title": "📏 Radius (miles)",
            "minimum": 1,
            "type": "integer",
            "description": "How far around each place to look, in miles. OfferUp's own steps are 5, 10, 20, 30 and 50 miles; cars and trucks go up to 200. A wider radius gives more listings, the closest ones first when sorted by distance.",
            "default": 30
          },
          "maxItems": {
            "title": "🔢 Max listings",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many listings across all keywords, places and URLs. Each listing is one row with its full detail, so the run cost scales with this number. 100 listings take well under a minute.",
            "default": 100
          },
          "category": {
            "title": "🏷️ Category",
            "type": "string",
            "description": "Keep one OfferUp category. Pick it from the list, or type any of OfferUp's 1,244 categories by name (<code>Sectionals</code>, <code>Golf clubs</code>). Alone, with no keyword, it lists that whole category around each place."
          },
          "minPrice": {
            "title": "💵 Min price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings priced at or above this amount in US dollars. Leave empty for no minimum; free items are priced 0."
          },
          "maxPrice": {
            "title": "💵 Max price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only listings priced at or below this amount in US dollars. Leave empty for no maximum."
          },
          "condition": {
            "title": "✨ Condition",
            "type": "array",
            "description": "Keep only these conditions, as the seller declared them. Pick several to combine them; leave empty for every condition.",
            "items": {
              "type": "string",
              "enum": [
                "new",
                "open_box",
                "reconditioned",
                "used",
                "for_parts",
                "other"
              ],
              "enumTitles": [
                "New (unused, sealed, undamaged)",
                "Open box (unused, undamaged)",
                "Reconditioned (restored by the seller or a third party)",
                "Used (works, may show wear)",
                "For parts",
                "Other"
              ]
            }
          },
          "sort": {
            "title": "↕️ Sort by",
            "enum": [
              "relevance",
              "newest",
              "closest",
              "price_asc",
              "price_desc"
            ],
            "type": "string",
            "description": "The order OfferUp returns listings in. <b>Newest first</b> fits a monitoring schedule, <b>Closest first</b> a local buyer, the price orders a deal hunt.",
            "default": "relevance"
          },
          "postedWithinHours": {
            "title": "📅 Posted within (hours)",
            "minimum": 1,
            "type": "integer",
            "description": "Only listings posted in the last N hours (<code>24</code> for the last day, <code>168</code> for the last week). Results then come newest first and each search stops at the first page that is entirely older, so a daily schedule reads only the new stock. Applies to keywords, search URLs, listings and seller inventories alike. Leave empty for any date."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}