{
  "openapi": "3.0.1",
  "info": {
    "title": "DIBBS RFQ Scraper: DLA Solicitations by NSN, FSC and CAGE Code",
    "description": "Scrape DLA DIBBS RFQ solicitations by NSN, FSC, part number, CAGE code or solicitation number. Get NSN, item, quantity, issue and return-by dates, set-aside type and PDF links as JSON, CSV or Excel. Skip the slow DIBBS search screens and manual copying. Pay only $4 per 1,000 RFQs, no subscription.",
    "version": "0.3",
    "x-build-id": "AaCnNsw2hk14mPtOI"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~dibbs-rfq-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-dibbs-rfq-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/getascraper~dibbs-rfq-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-dibbs-rfq-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/getascraper~dibbs-rfq-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-dibbs-rfq-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": {
          "searchCategory": {
            "title": "Search By",
            "enum": [
              "nsn",
              "fsc",
              "sol",
              "pr",
              "nomenclature",
              "cage",
              "partnumber"
            ],
            "type": "string",
            "description": "Which field to search DIBBS RFQs by. Options confirmed live on the real dibbs.bsm.dla.mil RFQ search form.",
            "default": "fsc"
          },
          "searchValue": {
            "title": "Search Value",
            "type": "string",
            "description": "The value to search for, matching the Search By category above (e.g. a Federal Supply Class like \"5340\", an NSN, or a solicitation number). A value is required: DIBBS returns no results for an empty search.",
            "default": "5340"
          },
          "searchScope": {
            "title": "Date Range / Scope",
            "enum": [
              "open",
              "todays",
              "recent",
              "all"
            ],
            "type": "string",
            "description": "Confirmed live on the real DIBBS search form: \"All\" is NOT limited to a recent window — it returns every RFQ on file whether open, closed, awarded, or cancelled, verified to include records going back multiple years (11,229 results for FSC 5340, oldest seen from 2017). This is unlimited history, unlike competing DIBBS scrapers that cap history at roughly 30 days.",
            "default": "recent"
          },
          "smallBusinessSetAsideOnly": {
            "title": "Small Business Set-Aside Only",
            "type": "boolean",
            "description": "Only return RFQs set aside for small businesses.",
            "default": false
          },
          "hubZoneOnly": {
            "title": "HUBZone Only",
            "type": "boolean",
            "description": "Only return RFQs set aside for HUBZone businesses.",
            "default": false
          },
          "serviceDisabledVetOwnedOnly": {
            "title": "Service-Disabled Veteran-Owned Small Business Only",
            "type": "boolean",
            "description": "Only return RFQs set aside for Service-Disabled Veteran-Owned Small Businesses (SDVOSB).",
            "default": false
          },
          "womanOwnedSmallBusinessOnly": {
            "title": "Woman-Owned Small Business Only",
            "type": "boolean",
            "description": "Only return RFQs set aside for Woman-Owned Small Businesses (WOSB).",
            "default": false
          },
          "economicallyDisadvantagedWosbOnly": {
            "title": "Economically Disadvantaged WOSB Only",
            "type": "boolean",
            "description": "Only return RFQs set aside for Economically Disadvantaged Woman-Owned Small Businesses (EDWOSB).",
            "default": false
          },
          "unrestrictedOnly": {
            "title": "Unrestricted / Not Set Aside Only",
            "type": "boolean",
            "description": "Only return RFQs with no small-business set-aside restriction.",
            "default": false
          },
          "maxItems": {
            "title": "Max RFQ Records",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of RFQ records to return in this run. The default of 25 finishes in about two minutes with attachment links; raise it for bigger pulls.",
            "default": 25
          },
          "fetchAttachmentLinks": {
            "title": "Fetch Attachment/Drawing Links (Detail Page)",
            "type": "boolean",
            "description": "When enabled, visits each RFQ's \"Package View\" detail page to collect drawing/attachment document links beyond the main solicitation PDF, when present. Adds one extra request per record. Disable to scrape faster if you only need the search-results fields.",
            "default": true
          },
          "maxRequestRetries": {
            "title": "Max Retries Per Request",
            "minimum": 0,
            "type": "integer",
            "description": "How many times to retry a failed request before giving up. Each retry uses a fresh connection, so a few failed connections do not end the run.",
            "default": 6
          },
          "requestDelaySecs": {
            "title": "Delay Between Requests (seconds)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum pacing delay between requests, to stay a good citizen of a public .mil system.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify datacenter proxy is on by default. Some connections to DIBBS are refused or stall, and the Actor retries them on a fresh connection.",
            "default": {
              "useApifyProxy": true
            }
          },
          "onlyNewSolicitations": {
            "title": "Only New Solicitations (Monitoring)",
            "type": "boolean",
            "description": "When enabled, the first run builds a baseline of seen solicitation numbers. Later scheduled runs with the same Monitor Scope only output solicitations not seen before, turning this into a daily new-RFQ feed for contractors watching a given NSN/FSC/category.",
            "default": false
          },
          "monitorScope": {
            "title": "Monitor Scope",
            "type": "string",
            "description": "Names this saved search so each monitor keeps its own seen-solicitations history. Use a distinct name per saved search or schedule.",
            "default": "default"
          },
          "resetSeenSolicitations": {
            "title": "Reset Seen-Solicitations Baseline",
            "type": "boolean",
            "description": "Clear the stored baseline for the given Monitor Scope before this run, so all matching solicitations are treated as new again.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}