{
  "openapi": "3.0.1",
  "info": {
    "title": "EU & UK Public Tenders Scraper: TED, Find a Tender",
    "description": "Get public procurement tenders and contract awards from TED (all EU countries), UK Find a Tender and Contracts Finder in one clean format. Filter by keyword, CPV code, country, value and deadline, and get only new notices on a schedule. No personal contact data.",
    "version": "1.0",
    "x-build-id": "JCtkcq8Av2OkFNIsR"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/mrtrelock~public-tenders-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-mrtrelock-public-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/mrtrelock~public-tenders-scraper/runs": {
      "post": {
        "operationId": "runs-sync-mrtrelock-public-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/mrtrelock~public-tenders-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-mrtrelock-public-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": {
          "sources": {
            "title": "Sources",
            "type": "array",
            "description": "Where to look. TED covers public tenders from all 27 EU countries plus Norway, Iceland, Switzerland and others (contracts above the EU thresholds). Find a Tender covers UK tenders, mostly larger contracts. Contracts Finder covers smaller UK public contracts, mainly in England.",
            "items": {
              "type": "string",
              "enum": [
                "ted",
                "findATender",
                "contractsFinder"
              ],
              "enumTitles": [
                "TED (European Union)",
                "Find a Tender (UK)",
                "Contracts Finder (UK)"
              ]
            },
            "default": [
              "ted",
              "findATender",
              "contractsFinder"
            ]
          },
          "noticeTypes": {
            "title": "Notice types",
            "type": "array",
            "description": "Open = calls for tender you can still bid on. Award = contract award results, with the winning company and value. Planning = early notices about future tenders. Other = changes, cancellations and contract modifications.",
            "items": {
              "type": "string",
              "enum": [
                "open",
                "award",
                "planning",
                "other"
              ],
              "enumTitles": [
                "Open tenders",
                "Contract awards",
                "Planning (future tenders)",
                "Other (changes, cancellations)"
              ]
            },
            "default": [
              "open"
            ]
          },
          "keywords": {
            "title": "Keywords (match any)",
            "type": "array",
            "description": "Keep notices that mention at least one of these words or phrases, e.g. software, cleaning, cyber security. TED notices are written in the buyer's own language, so for EU-wide searches CPV codes (below) work better than English keywords. Leave empty for all notices.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop notices whose title or description contains any of these words.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "cpvCodes": {
            "title": "CPV codes (categories)",
            "type": "array",
            "description": "EU procurement category codes. A broad code includes every code under it, e.g. 72000000 = all IT services, 45000000 = all construction work, 79000000 = business services, 33000000 = medical equipment. Look codes up at https://simap.ted.europa.eu/cpv",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Buyer countries",
            "type": "array",
            "description": "2-letter codes or English names, e.g. DE, FR, NL, UK. Leave empty for all countries. The UK sources only run when this is empty or includes UK.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "publishedWithinDays": {
            "title": "Published within the last N days",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "1 to 365. Find a Tender only allows about 12 requests a minute, so long ranges that include awards can take several minutes.",
            "default": 7
          },
          "hideExpired": {
            "title": "Hide open tenders whose deadline has passed",
            "type": "boolean",
            "description": "Keeps only tenders you can still bid on. Notices without a deadline are kept.",
            "default": true
          },
          "minValue": {
            "title": "Minimum value",
            "minimum": 0,
            "type": "integer",
            "description": "In the notice's own currency (EUR, GBP, PLN...). Uses the estimated value, or the awarded value for awards. 0 means no minimum.",
            "default": 0
          },
          "maxValue": {
            "title": "Maximum value",
            "minimum": 0,
            "type": "integer",
            "description": "0 means no maximum.",
            "default": 0
          },
          "includeNoValue": {
            "title": "Keep notices that don't state a value",
            "type": "boolean",
            "description": "Many buyers don't publish a value. This only matters when you set a minimum or maximum value.",
            "default": true
          },
          "onlyNew": {
            "title": "Only new notices since my last run",
            "type": "boolean",
            "description": "Put the tool on a schedule to get a daily or weekly tender alert. Notices saved by an earlier run with the same sources, notice types, keywords, CPV codes and countries are skipped, and you don't pay for them again.",
            "default": false
          },
          "language": {
            "title": "Preferred language for TED notices",
            "type": "string",
            "description": "2-letter code, e.g. en, de, fr. TED's headline (country, category and title) uses this language. The title and description stay in the language the buyer wrote them in.",
            "default": "en"
          },
          "includeDescription": {
            "title": "Include descriptions",
            "type": "boolean",
            "description": "Adds the short description of what is being bought.",
            "default": true
          },
          "maxResultsPerSource": {
            "title": "Max notices per source",
            "minimum": 1,
            "type": "integer",
            "description": "Newest notices first. You only pay for notices saved.",
            "default": 1000
          },
          "maxResults": {
            "title": "Max notices in total",
            "minimum": 0,
            "type": "integer",
            "description": "0 means no limit.",
            "default": 0
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}