{
  "openapi": "3.0.1",
  "info": {
    "title": "Craigslist Scraper",
    "description": "Scrape Craigslist listings across cars, housing, jobs, electronics, furniture, services, gigs, and events. Filter by keyword, price, condition, or sort. Each row includes title, price, location, description, images, post ID, and category-specific attributes. Export as JSON, CSV, Excel.",
    "version": "1.0",
    "x-build-id": "a90MmjZB1jxdGOS6b"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~craigslist-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-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/parsebird~craigslist-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-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/parsebird~craigslist-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-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.",
            "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.",
            "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; more specific subcategories narrow the 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 without 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, every search result is followed with a second request to fetch the full description, attributes, complete image gallery, post ID, and posted timestamp. Off by default for faster, cheaper runs that return only search-card fields.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on total postings. Default 25 — increase for bigger runs, or set to 0 for no cap (an internal limit of 100,000 still applies). The actor stops requesting new pages once this number is reached.",
            "default": 25
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Datacenter proxies work for most runs. Switch to residential proxies if you see frequent blocks or empty results.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}