{
  "openapi": "3.0.1",
  "info": {
    "title": "Craigslist Scraper",
    "description": "[💰 $1.4 / 1K] Extract Craigslist listings across cars, housing, jobs, electronics, furniture, services, gigs, and events. Filter by keyword, price, condition, or sort — or paste URLs directly. Each row includes title, price, location, description, images, post ID, and category-specific attributes.",
    "version": "1.0",
    "x-build-id": "peJ204fxrrXiC4hcH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~craigslist-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-craigslist-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/solidcode~craigslist-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-craigslist-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/solidcode~craigslist-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-craigslist-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": {
          "startUrls": {
            "title": "Craigslist URLs",
            "type": "array",
            "description": "Paste one or more Craigslist URLs. Accepts search pages (https://sfbay.craigslist.org/search/sss?query=bike), category pages (https://newyork.craigslist.org/search/cta), and individual posting URLs. When provided, these override the City + Category + Keyword fields below. Plain URLs only — do not wrap them in JSON objects.",
            "items": {
              "type": "string"
            }
          },
          "region": {
            "title": "City",
            "enum": [
              "newyork",
              "losangeles",
              "chicago",
              "sfbay",
              "seattle",
              "boston",
              "washingtondc",
              "atlanta",
              "dallas",
              "houston",
              "denver",
              "philadelphia",
              "miami",
              "austin",
              "sandiego",
              "phoenix",
              "portland",
              "minneapolis",
              "detroit",
              "nashville",
              "raleigh",
              "charlotte",
              "baltimore",
              "stlouis",
              "orlando",
              "tampa",
              "lasvegas",
              "sacramento",
              "hartford",
              "columbus",
              "indianapolis",
              "cincinnati",
              "cleveland",
              "kansascity",
              "milwaukee",
              "sanantonio",
              "pittsburgh",
              "newhaven",
              "providence",
              "richmond",
              "salem",
              "saltlakecity",
              "anchorage",
              "honolulu",
              "montreal",
              "toronto",
              "vancouver",
              "calgary",
              "ottawa",
              "edmonton"
            ],
            "type": "string",
            "description": "Craigslist city to search. Covers the most popular US and Canadian regions. If your city isn't listed, paste a Craigslist URL above instead — any city subdomain works (e.g. raleigh.craigslist.org, halifax.craigslist.org).",
            "default": "newyork"
          },
          "category": {
            "title": "Category",
            "enum": [
              "sss",
              "cta",
              "ela",
              "fua",
              "apa",
              "roo",
              "sub",
              "jjj",
              "ggg",
              "bbb",
              "ccc",
              "rrr",
              "eee"
            ],
            "type": "string",
            "description": "What kind of listings to collect. \"For sale (all)\" returns the full for-sale catalogue; the more specific subcategories (Cars & Trucks, Electronics, Furniture, Housing) narrow Craigslist's own search.",
            "default": "sss"
          },
          "searchTerm": {
            "title": "Keyword",
            "type": "string",
            "description": "Optional search keyword. Matches against the title and body of postings (e.g. \"honda civic\", \"two bedroom\", \"vintage camera\"). Leave empty to return every listing in the selected category."
          },
          "priceMin": {
            "title": "Minimum Price",
            "minimum": 0,
            "type": "integer",
            "description": "Only include postings priced at or above this amount. Leave empty for no minimum. Ignored on categories that don't have prices (Jobs, Community, Resumes)."
          },
          "priceMax": {
            "title": "Maximum Price",
            "minimum": 0,
            "type": "integer",
            "description": "Only include postings priced at or below this amount. Leave empty for no maximum."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "any",
              "new",
              "like-new",
              "excellent",
              "good",
              "fair",
              "salvage"
            ],
            "type": "string",
            "description": "Restrict to a specific condition (For Sale categories only). Most posters tag this honestly; some leave it blank, which means the row is excluded when this filter is set.",
            "default": "any"
          },
          "hasImage": {
            "title": "Has image",
            "type": "boolean",
            "description": "When on, only return postings that have at least one photo.",
            "default": false
          },
          "postedToday": {
            "title": "Posted today",
            "type": "boolean",
            "description": "When on, only return postings published in the last 24 hours.",
            "default": false
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "date",
              "rel",
              "priceasc",
              "pricedsc"
            ],
            "type": "string",
            "description": "How Craigslist orders the search results.",
            "default": "date"
          },
          "includeDetails": {
            "title": "Include full posting details",
            "type": "boolean",
            "description": "When on (default), every search result is followed with a second request to the posting page so the row carries the full description body, all attributes, the complete image gallery, exact post ID, and posted timestamp. Turn off for faster, cheaper runs that return only what's visible on the search results card (title, price, link, thumbnail).",
            "default": true
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on total postings across all sources. Default 200 — increase for bigger runs, or set to 0 for no cap (an internal upper limit of 100,000 still applies to prevent runaway pagination). The actor stops requesting new pages once this number is reached but keeps the full final page even if it slightly overshoots.",
            "default": 200
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}