{
  "openapi": "3.0.1",
  "info": {
    "title": "Municibid Government Surplus Auction Scraper",
    "description": "Structured data for every Municibid government surplus auction. Active and completed listings across 46 categories and 19 US states, with full bid history, exact UTC end times, photo galleries, and typed seller and category metadata. Read-only.",
    "version": "0.1",
    "x-build-id": "jvMozrRjtSVZeC1hY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/amrameng~municibid-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-amrameng-municibid-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/amrameng~municibid-scraper/runs": {
      "post": {
        "operationId": "runs-sync-amrameng-municibid-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/amrameng~municibid-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-amrameng-municibid-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": {
          "categories": {
            "title": "Categories",
            "uniqueItems": true,
            "type": "array",
            "description": "Top-level Municibid categories to crawl. Empty = all 46 categories. Each value is the category ID (C12345 form) from the Municibid /SiteMap.",
            "items": {
              "type": "string",
              "enum": [
                "C5764318",
                "C11100415",
                "C12253698",
                "C14622523",
                "C15884675",
                "C160883",
                "C160884",
                "C160885",
                "C160887",
                "C169054",
                "C169055",
                "C169069",
                "C169084",
                "C169085",
                "C169087",
                "C169089",
                "C169090",
                "C169091",
                "C169105",
                "C169106",
                "C169109",
                "C169118",
                "C169119",
                "C169120",
                "C169121",
                "C169128",
                "C169130",
                "C169131",
                "C169135",
                "C169142",
                "C169143",
                "C169145",
                "C169146",
                "C169147",
                "C169148",
                "C169149",
                "C169167",
                "C169168",
                "C169169",
                "C169170",
                "C169171",
                "C169172",
                "C24200839",
                "C30453594",
                "C58277794",
                "C5852560"
              ],
              "enumTitles": [
                "Ambulances",
                "Holiday/Seasonal",
                "Parking",
                "Apparel",
                "Appliances",
                "Automotive",
                "Boating",
                "Furniture",
                "Computers & IT",
                "Aircraft",
                "Collectibles",
                "Electronics",
                "Energy Equipment",
                "Farm Equipment & Supplies",
                "Firearm Accessories",
                "General Equipment",
                "General Supplies",
                "Building Supplies",
                "Golf Carts",
                "Heavy Equipment",
                "Jewelry",
                "Kitchen Equipment",
                "Landscaping",
                "Medical",
                "Music",
                "Office Supplies",
                "Parks & Rec",
                "Police & Fire",
                "Real Estate",
                "Sanitation",
                "School Supplies",
                "Scrap",
                "Signage",
                "Snow Removal",
                "Snowmobiles",
                "Sporting Goods",
                "Storage",
                "Street & Traffic",
                "Structures",
                "Tools",
                "Trailers",
                "Water & Sewer",
                "Books",
                "Certificates and Licenses",
                "Precious Metals",
                "Tractors"
              ]
            },
            "default": []
          },
          "regions": {
            "title": "Regions (US states)",
            "uniqueItems": true,
            "type": "array",
            "description": "US states to filter on. Empty = no region filter (cross-state). Each value is the Municibid region ID (R12345 form).",
            "items": {
              "type": "string",
              "enum": [
                "R3777805",
                "R3777806",
                "R3777810",
                "R3777811",
                "R3777814",
                "R3777815",
                "R3777816",
                "R3777817",
                "R3777818",
                "R3777819",
                "R3777820",
                "R3777822",
                "R3777826",
                "R3777827",
                "R3777829",
                "R3777832",
                "R3777835",
                "R3777842",
                "R3777843"
              ],
              "enumTitles": [
                "Delaware",
                "Florida",
                "Illinois",
                "Indiana",
                "Kentucky",
                "Louisiana",
                "Maine",
                "Maryland",
                "Massachusetts",
                "Michigan",
                "Minnesota",
                "Missouri",
                "New Hampshire",
                "New Jersey",
                "New York",
                "Ohio",
                "Pennsylvania",
                "Vermont",
                "Virginia"
              ]
            },
            "default": []
          },
          "status": {
            "title": "Listing status",
            "enum": [
              "active",
              "completed"
            ],
            "type": "string",
            "description": "Filter by auction status. 'active' = currently open for bids (default). 'completed' = closed auctions, useful for comps and historical analysis.",
            "default": "active"
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "0",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7"
            ],
            "type": "string",
            "description": "Server-side sort. Default 0 = Ending Soon. Documented in Municibid's /Browse landing.",
            "default": "0"
          },
          "keyword": {
            "title": "Keyword (full-text search)",
            "type": "string",
            "description": "Optional full-text search query. Examples: 'fire truck', 'ford f-250', 'snow plow'. Composes with category/region/status filters."
          },
          "seller": {
            "title": "Seller slug (optional)",
            "type": "string",
            "description": "Optional seller filter. Use the slug for a specific agency (e.g. 'cecil' for Cecil Township). The Actor writes a (slug → display name) catalog of all active sellers to the 'SELLERS' key-value store at every run; read it from any prior run's storage to find the slug for a specific agency."
          },
          "priceMin": {
            "title": "Minimum price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip records below this price. Applied after fetch; you are not charged for filtered-out records. Leave blank for no minimum."
          },
          "priceMax": {
            "title": "Maximum price (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip records above this price. Applied after fetch; you are not charged for filtered-out records. Leave blank for no maximum."
          },
          "onlyNoBids": {
            "title": "Only auctions with no bids",
            "type": "boolean",
            "description": "Filter to listings that have not yet received any bids. Useful for finding low-competition snipe candidates. Shorthand for maxBids=0.",
            "default": false
          },
          "minBids": {
            "title": "Minimum number of bids",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only listings with at least this many bids. Useful for filtering to listings that have received market validation. Leave blank for no minimum."
          },
          "maxBids": {
            "title": "Maximum number of bids",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only listings with at most this many bids. Useful for finding listings with low competition. Leave blank for no maximum."
          },
          "endingWithinHours": {
            "title": "Ending within (hours)",
            "minimum": 1,
            "type": "integer",
            "description": "Filter to listings whose auction closes within this many hours from now. Combine with sort=0 (Ending Soon) for an ending-soon sweep. Leave blank for no time-window filter."
          },
          "endAfter": {
            "title": "Auction ended on or after (YYYY-MM-DD)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Filter to listings whose auction end is on or after this date. Combine with status=completed for a historical-window sweep (e.g. last 30 days, Q1 2026). When set on completed sweeps, the Actor short-circuits pagination once it walks past this cutoff. Format: YYYY-MM-DD."
          },
          "endBefore": {
            "title": "Auction ended on or before (YYYY-MM-DD)",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Filter to listings whose auction end is on or before this date. Use with endAfter for clean historical windows (e.g. endAfter=2026-01-01, endBefore=2026-03-31 for Q1 2026). Format: YYYY-MM-DD."
          },
          "listingIds": {
            "title": "Specific listing IDs (optional)",
            "uniqueItems": true,
            "type": "array",
            "description": "If provided, skip discovery and fetch only these specific listing IDs. Each value is the 8-digit ID from a Municibid listing URL (e.g. '82825058'). When set, categories/regions/keyword/seller/status/sort are ignored.",
            "items": {
              "type": "string"
            }
          },
          "maxListings": {
            "title": "Max listings",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of listings to scrape per run. Set to 0 to disable the limit. Use a small value (e.g. 10) for test runs.",
            "default": 100
          },
          "maxPagesPerFacet": {
            "title": "Max pages per facet",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum browse pages to crawl per category/region facet. Each page returns ~20 listings. Set to 0 to disable.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify proxy configuration. The Actor runs at ~2 req/s, which Municibid serves cleanly from any IP — datacenter IPs (the default) are sufficient. Switch to RESIDENTIAL only if you ever observe 429/503 responses."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}