{
  "openapi": "3.0.1",
  "info": {
    "title": "Government Tenders Scraper — EU TED, UK, SAM.gov Procurement",
    "description": "Public procurement notices from EU TED, UK Find a Tender, UK Contracts Finder, SAM.gov and grants.gov in one schema — title, buyer, country, CPV/NAICS, deadline and days left, value, documents and awardee. No API key, filter by keyword, code, country or date.",
    "version": "0.1",
    "x-build-id": "1w3DwzmO2h5OGVvpA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/chorelet~government-tenders-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-chorelet-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/chorelet~government-tenders-scraper/runs": {
      "post": {
        "operationId": "runs-sync-chorelet-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/chorelet~government-tenders-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-chorelet-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",
        "required": [
          "sources"
        ],
        "properties": {
          "sources": {
            "title": "Sources",
            "type": "array",
            "description": "Which official registers to read. `ted` = EU Tenders Electronic Daily (all 27 EU states + EEA), `uk-fts` = UK Find a Tender (above-threshold), `uk-cf` = UK Contracts Finder (below-threshold and awards), `us-sam` = SAM.gov federal contract opportunities, `us-grants` = grants.gov federal funding. All of them are read without an API key.",
            "items": {
              "type": "string",
              "enum": [
                "ted",
                "uk-fts",
                "uk-cf",
                "us-sam",
                "us-grants"
              ],
              "enumTitles": [
                "EU — TED",
                "UK — Find a Tender",
                "UK — Contracts Finder",
                "US — SAM.gov contracts",
                "US — grants.gov"
              ]
            },
            "default": [
              "ted",
              "uk-fts",
              "uk-cf",
              "us-sam"
            ]
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Keep only notices whose title, description, buyer or classification contains any of these, e.g. `software`, `cloud`, `catering`. On TED the words are pushed into the full-text index; everywhere else they are matched on the way out. Empty = every notice in the window.",
            "items": {
              "type": "string"
            }
          },
          "cpvCodes": {
            "title": "CPV codes",
            "type": "array",
            "description": "EU Common Procurement Vocabulary codes, full or truncated: `72000000` or just `72` for all IT services, `45` for construction. Applies to TED and the two UK registers.",
            "items": {
              "type": "string"
            }
          },
          "naicsCodes": {
            "title": "NAICS codes",
            "type": "array",
            "description": "US industry codes for SAM.gov, full or truncated: `541511` (custom programming) or `5415` for all computer services.",
            "items": {
              "type": "string"
            }
          },
          "buyerCountries": {
            "title": "Buyer countries",
            "type": "array",
            "description": "Two- or three-letter codes or plain names: `DE`, `FRA`, `Poland`, `United Kingdom`. A notice is kept when either the buyer or the place of performance is in the list.",
            "items": {
              "type": "string"
            }
          },
          "publishedSince": {
            "title": "Published since",
            "type": "string",
            "description": "Absolute `2026-01-31` or relative `24 hours`, `7 days`, `1 month`. This is the daily-run setting: point it at `24 hours` and every run returns only what appeared since yesterday."
          },
          "deadlineFrom": {
            "title": "Deadline from",
            "type": "string",
            "description": "Keep only notices closing on or after this point: `2026-11-01` or relative `7 days`. Useful to skip anything you could not realistically bid on."
          },
          "deadlineTo": {
            "title": "Deadline to",
            "type": "string",
            "description": "Keep only notices closing on or before this point: `2026-12-31` or relative `60 days`."
          },
          "activeOnly": {
            "title": "Open opportunities only",
            "type": "boolean",
            "description": "Drop awards, cancellations and anything whose deadline has already passed. Turn it off to collect award notices and contract history.",
            "default": true
          },
          "noticeTypes": {
            "title": "Notice types",
            "type": "array",
            "description": "`planning` = prior information / forecast, `tender` = live call for bids, `award` = contract awarded, `amendment` = correction or update. Empty = all of them.",
            "items": {
              "type": "string",
              "enum": [
                "planning",
                "tender",
                "award",
                "amendment",
                "other"
              ],
              "enumTitles": [
                "Planning / forecast",
                "Call for tenders",
                "Award",
                "Amendment / correction",
                "Other"
              ]
            }
          },
          "minValue": {
            "title": "Minimum contract value",
            "minimum": 0,
            "type": "integer",
            "description": "Drop notices below this amount. `0` = no minimum. Values are published in the buyer's own currency and are never converted, so set the currency below when you use this.",
            "default": 0
          },
          "valueCurrency": {
            "title": "Value currency",
            "type": "string",
            "description": "Only compare the minimum against notices published in this currency, e.g. `EUR`, `GBP`. Empty = compare against whatever currency the notice uses."
          },
          "maxResultsPerSource": {
            "title": "Max results per source",
            "minimum": 1,
            "type": "integer",
            "description": "Newest first per source. Five sources at 100 each is 500 rows.",
            "default": 100
          },
          "fetchDetails": {
            "title": "Fetch full notice text and attachments",
            "type": "boolean",
            "description": "One extra request per notice on TED, SAM.gov and grants.gov: the complete notice body instead of the summary, plus links to the tender documents. Charged separately. The two UK registers already publish the full text in the list, so nothing extra is fetched or charged for them.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}