{
  "openapi": "3.0.1",
  "info": {
    "title": "EU & UK Public Tenders: TED and Find a Tender",
    "description": "Search EU (TED) and UK (Find a Tender, Contracts Finder) public tenders in one schema: CPV, NUTS, value, deadline, lots and awards. New-only daily alerts. No contact names, emails or phones.",
    "version": "1.0",
    "x-build-id": "R7qfKrfkqTaTrd1h1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/openfeeds~eu-uk-public-tenders/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-openfeeds-eu-uk-public-tenders",
        "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/openfeeds~eu-uk-public-tenders/runs": {
      "post": {
        "operationId": "runs-sync-openfeeds-eu-uk-public-tenders",
        "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/openfeeds~eu-uk-public-tenders/run-sync": {
      "post": {
        "operationId": "run-sync-openfeeds-eu-uk-public-tenders",
        "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": {
          "sources": {
            "title": "Sources",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "Which official portals to search. <b>TED</b> = EU and EEA (Tenders Electronic Daily). <b>Find a Tender</b> = UK above-threshold notices and all Procurement Act 2023 notices. <b>Contracts Finder</b> = England's lower-value opportunities.",
            "items": {
              "type": "string",
              "enum": [
                "ted",
                "fts",
                "cf"
              ],
              "enumTitles": [
                "TED (EU/EEA)",
                "Find a Tender (UK)",
                "Contracts Finder (UK)"
              ]
            },
            "default": [
              "ted",
              "fts",
              "cf"
            ]
          },
          "noticeTypes": {
            "title": "Notice types",
            "minItems": 1,
            "uniqueItems": true,
            "type": "array",
            "description": "<i>Open tenders</i> = calls for competition you can bid on. <i>Planned procurements</i> = prior-information, pipeline and market-engagement notices. <i>Contract awards</i> = who won, for how much.",
            "items": {
              "type": "string",
              "enum": [
                "tender",
                "planning",
                "award"
              ],
              "enumTitles": [
                "Open tenders (calls for competition)",
                "Planned procurements (prior information / pipeline)",
                "Contract awards (winners and values)"
              ]
            },
            "default": [
              "tender"
            ]
          },
          "keywords": {
            "title": "Keywords",
            "maxItems": 20,
            "type": "array",
            "description": "Return notices that mention <b>any</b> of these words or phrases. TED searches the full notice text in all languages; Find a Tender and Contracts Finder search title, description and lot titles. Leave empty for all.",
            "items": {
              "type": "string",
              "pattern": "^[^\"]{2,100}$"
            },
            "default": []
          },
          "cpvCodes": {
            "title": "CPV codes (prefixes)",
            "maxItems": 50,
            "type": "array",
            "description": "Common Procurement Vocabulary codes or prefixes, e.g. <code>72</code> (IT services), <code>48</code> (software), <code>45</code> (construction work), <code>7226</code>. Full codes like <code>72000000</code> or <code>72000000-5</code> also work; trailing zeros mean \"everything below\".",
            "items": {
              "type": "string",
              "pattern": "^\\d{2,8}(-\\d)?$"
            },
            "default": []
          },
          "countries": {
            "title": "Buyer countries",
            "uniqueItems": true,
            "type": "array",
            "description": "Country of the contracting authority. Leave empty for all. Choosing only non-UK countries skips the UK sources (Find a Tender, Contracts Finder).",
            "items": {
              "type": "string",
              "enum": [
                "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",
                "IS",
                "LI",
                "NO",
                "CH",
                "GB"
              ],
              "enumTitles": [
                "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",
                "Iceland",
                "Liechtenstein",
                "Norway",
                "Switzerland",
                "United Kingdom"
              ]
            },
            "default": []
          },
          "nutsCodes": {
            "title": "NUTS regions (prefixes)",
            "maxItems": 50,
            "type": "array",
            "description": "Place of performance, e.g. <code>DE1</code> (Baden-Württemberg), <code>FR10</code> (Île-de-France), <code>UKI</code> (London). Contracts Finder has no NUTS codes and is skipped when this is set.",
            "items": {
              "type": "string",
              "pattern": "^[A-Za-z]{2}[A-Za-z0-9]{0,3}$"
            },
            "default": []
          },
          "publishedWithinDays": {
            "title": "Published within (days)",
            "minimum": 1,
            "maximum": 366,
            "type": "integer",
            "description": "Only notices published in the last N days (today counts as day 0). Ignored when \"Published from\" is set.",
            "default": 7
          },
          "publishedFrom": {
            "title": "Published from (optional)",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Fixed start date (YYYY-MM-DD). Overrides \"Published within\". The window can be at most 366 days.",
            "default": ""
          },
          "publishedTo": {
            "title": "Published to (optional)",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Fixed end date (YYYY-MM-DD, inclusive). Defaults to today; a future date counts as today.",
            "default": ""
          },
          "openOnly": {
            "title": "Only open tenders",
            "type": "boolean",
            "description": "Keep only tenders whose submission deadline (for tenders or requests to participate) has not passed yet. Ignored for planned procurements and contract awards.",
            "default": true
          },
          "includeUpdates": {
            "title": "Include changes and corrections",
            "type": "boolean",
            "description": "Also return changed versions of notices, such as deadline extensions (TED notice version > 1, UK tender updates and amendments).",
            "default": false
          },
          "onlyNew": {
            "title": "Only new since last run",
            "type": "boolean",
            "description": "Return only notices that an earlier run with the same filters has not returned yet. Perfect for a daily schedule. Seen notice IDs are kept in a key-value store named eu-uk-public-tenders-state in your account.",
            "default": false
          },
          "stateName": {
            "title": "Alert name (optional)",
            "pattern": "^[a-zA-Z0-9-]{0,40}$",
            "type": "string",
            "description": "Keeps a separate \"already seen\" memory per alert profile, e.g. <code>it-dach</code>. Leave empty to derive it from the filters. Letters, digits and hyphens only.",
            "default": ""
          },
          "language": {
            "title": "Preferred language",
            "enum": [
              "en",
              "de",
              "fr",
              "es",
              "it",
              "nl",
              "pl",
              "pt",
              "sv",
              "da",
              "fi",
              "cs",
              "sk",
              "sl",
              "hu",
              "ro",
              "bg",
              "el",
              "hr",
              "et",
              "lv",
              "lt",
              "mt",
              "ga"
            ],
            "type": "string",
            "description": "For TED notices published in several languages, and for TED's translated headline. Also sets the language of the TED notice and PDF links.",
            "default": "en"
          },
          "includeLots": {
            "title": "Include lots",
            "type": "boolean",
            "description": "Add a <code>lots</code> array (title, value, deadline, region and duration per lot).",
            "default": true
          },
          "maxItems": {
            "title": "Max notices",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Upper limit across all sources. You pay per tender notice returned.",
            "default": 1000
          },
          "tedExpertQuery": {
            "title": "TED expert query (advanced)",
            "maxLength": 1000,
            "type": "string",
            "description": "Extra TED search condition, appended with AND. Example: <code>procedure-type=open AND buyer-legal-type=la</code>. See the expert search help on ted.europa.eu. Do not add SORT BY; results are always newest first.",
            "default": ""
          },
          "strictSources": {
            "title": "Strict sources (monitoring)",
            "type": "boolean",
            "description": "Internal monitoring switch: fail the run if any selected source returns an error or 0 notices.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}