{
  "openapi": "3.0.1",
  "info": {
    "title": "Government Tenders Scraper — RFPs & Contract Awards",
    "description": "Open government tenders, RFPs and contract awards from the US, UK, EU and Canada in one clean feed: buyer, value, deadline, awardee and notice link, deduplicated across portals, with what is new since your last run. Raw typed data, MCP-ready.",
    "version": "0.1",
    "x-build-id": "kiv38UZP7wLcKu2cr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/inovaflow~government-tenders-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-inovaflow-government-tenders-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/inovaflow~government-tenders-scraper/runs": {
      "post": {
        "operationId": "runs-sync-inovaflow-government-tenders-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/inovaflow~government-tenders-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-inovaflow-government-tenders-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": "Words or phrases to look for in the notice (any of them matches). Empty = every notice. Examples: software, cybersecurity, cloud hosting, facilities management.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "uniqueItems": true,
            "type": "array",
            "description": "Buyer countries. Empty = all. US = federal awards (plus open opportunities with your own SAM.gov key), GB = UK central and local government, CA = Canadian federal government, EU = every EU/EEA buyer; or pick single EU/EEA countries.",
            "items": {
              "type": "string",
              "enum": [
                "US",
                "GB",
                "CA",
                "EU",
                "AT",
                "BE",
                "BG",
                "HR",
                "CY",
                "CZ",
                "DK",
                "EE",
                "FI",
                "FR",
                "DE",
                "GR",
                "HU",
                "IE",
                "IT",
                "LV",
                "LT",
                "LU",
                "MT",
                "NL",
                "PL",
                "PT",
                "RO",
                "SK",
                "SI",
                "ES",
                "SE",
                "NO",
                "IS",
                "LI",
                "CH"
              ],
              "enumTitles": [
                "United States",
                "United Kingdom",
                "Canada",
                "All EU/EEA countries",
                "Austria",
                "Belgium",
                "Bulgaria",
                "Croatia",
                "Cyprus",
                "Czechia",
                "Denmark",
                "Estonia",
                "Finland",
                "France",
                "Germany",
                "Greece",
                "Hungary",
                "Ireland",
                "Italy",
                "Latvia",
                "Lithuania",
                "Luxembourg",
                "Malta",
                "Netherlands",
                "Poland",
                "Portugal",
                "Romania",
                "Slovakia",
                "Slovenia",
                "Spain",
                "Sweden",
                "Norway",
                "Iceland",
                "Liechtenstein",
                "Switzerland"
              ]
            },
            "default": []
          },
          "noticeTypes": {
            "title": "Notice types",
            "uniqueItems": true,
            "type": "array",
            "description": "Tender = an open call for bids (tender, RFP, RFQ, contract notice) — an active buying window. Award = a contract awarded to a named vendor — budget just landed. Planning = a prior-information or pre-market notice — a purchase coming soon.",
            "items": {
              "type": "string",
              "enum": [
                "tender",
                "award",
                "planning"
              ],
              "enumTitles": [
                "Open tenders / RFPs",
                "Contract awards",
                "Planned procurements"
              ]
            },
            "default": [
              "tender",
              "award"
            ]
          },
          "publishedWithinDays": {
            "title": "Published within (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "How far back to look. 1–7 for a daily or weekly monitor; up to 365 for a one-off backfill.",
            "default": 7
          },
          "maxResults": {
            "title": "Maximum notices",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Stop after this many notices (newest first). You are only charged for notices delivered.",
            "default": 100
          },
          "cpvCodes": {
            "title": "CPV codes (UK / EU)",
            "type": "array",
            "description": "Common Procurement Vocabulary codes or prefixes — 72 = IT services, 48 = software packages, 79 = business services. A code filter skips portals that do not classify by it.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "naicsCodes": {
            "title": "NAICS codes (US)",
            "type": "array",
            "description": "NAICS codes or prefixes for US notices — 5415 = computer systems design, 541512 = systems integration.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "buyers": {
            "title": "Buyers",
            "type": "array",
            "description": "Only notices from these buyers (agency, council, ministry, hospital trust…). A name or part of one, e.g. Department of Veterans Affairs, NHS, Bundesamt.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minValueUsd": {
            "title": "Minimum value (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only notices worth at least this much (converted to USD at the official reference rate). Notices that do not publish a value are left out when this is set."
          },
          "maxValueUsd": {
            "title": "Maximum value (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only notices worth at most this much. Notices without a published value are kept."
          },
          "onlyOpenTenders": {
            "title": "Only tenders still open for bids",
            "type": "boolean",
            "description": "Drop tenders whose submission deadline has passed. Awards and planning notices are not affected.",
            "default": false
          },
          "deadlineAfter": {
            "title": "Deadline on or after",
            "type": "string",
            "description": "Only tenders whose submission deadline is on or after this day (YYYY-MM-DD)."
          },
          "deadlineBefore": {
            "title": "Deadline on or before",
            "type": "string",
            "description": "Only tenders whose submission deadline is on or before this day (YYYY-MM-DD)."
          },
          "onlyNewSinceLastRun": {
            "title": "Only new or changed since the last run",
            "type": "boolean",
            "description": "Deliver only notices this watch has not seen before, or whose status, deadline, value or awardee changed. The first run of a watch returns everything and becomes the baseline.",
            "default": false
          },
          "watchId": {
            "title": "Watch name",
            "type": "string",
            "description": "Names the memory used for 'new since last run'. Runs with the same watch name share it. Empty = derived from your filters, so the same search always continues the same watch."
          },
          "resolveAwardeeDomains": {
            "title": "Find the winning vendor's website",
            "type": "boolean",
            "description": "For award notices that do not print the winner's website, check the obvious homepage and keep it only when the page names the company. Every domain says where it came from.",
            "default": true
          },
          "maxDomainLookups": {
            "title": "Maximum website lookups",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Upper bound on winner-website checks per run.",
            "default": 30
          },
          "samApiKey": {
            "title": "SAM.gov API key (optional)",
            "type": "string",
            "description": "Your own free SAM.gov public API key. Adds US federal OPEN opportunities (solicitations, sources sought, pre-solicitations). Without it, US coverage is federal contract awards."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed — the sources are official open-data services. Use it only if your network is blocked.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}