{
  "openapi": "3.0.1",
  "info": {
    "title": "TED Tenders Scraper: EU Public Procurement Alerts to Excel",
    "description": "TED tenders scraper for EU public procurement: pick countries and a sector, get new tenders with deadline, buyer and value as Excel. Daily alerts.",
    "version": "0.1",
    "x-build-id": "yZ59NH3thLnL1SNNX"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/alpine-data~ted-tender-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-alpine-data-ted-tender-monitor",
        "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/alpine-data~ted-tender-monitor/runs": {
      "post": {
        "operationId": "runs-sync-alpine-data-ted-tender-monitor",
        "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/alpine-data~ted-tender-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-alpine-data-ted-tender-monitor",
        "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": {
          "countries": {
            "title": "1. Which countries? (buyer's country)",
            "type": "array",
            "description": "Pick one or more countries where the public buyer is located. Example: Austria + Germany. Choose 'All countries' for the whole EU/EEA. If you leave the field empty, Austria + Germany is searched (the run log says so). You can also type names or codes such as Österreich, AT or AUT.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "ALL",
                "AUT",
                "DEU",
                "CHE",
                "ITA",
                "FRA",
                "BEL",
                "NLD",
                "LUX",
                "LIE",
                "POL",
                "CZE",
                "SVK",
                "SVN",
                "HUN",
                "HRV",
                "ESP",
                "PRT",
                "IRL",
                "DNK",
                "SWE",
                "FIN",
                "NOR",
                "ISL",
                "EST",
                "LVA",
                "LTU",
                "ROU",
                "BGR",
                "GRC",
                "CYP",
                "MLT"
              ],
              "enumTitles": [
                "All countries (whole EU/EEA)",
                "Austria (AUT)",
                "Germany (DEU)",
                "Switzerland (CHE)",
                "Italy (ITA)",
                "France (FRA)",
                "Belgium (BEL)",
                "Netherlands (NLD)",
                "Luxembourg (LUX)",
                "Liechtenstein (LIE)",
                "Poland (POL)",
                "Czechia (CZE)",
                "Slovakia (SVK)",
                "Slovenia (SVN)",
                "Hungary (HUN)",
                "Croatia (HRV)",
                "Spain (ESP)",
                "Portugal (PRT)",
                "Ireland (IRL)",
                "Denmark (DNK)",
                "Sweden (SWE)",
                "Finland (FIN)",
                "Norway (NOR)",
                "Iceland (ISL)",
                "Estonia (EST)",
                "Latvia (LVA)",
                "Lithuania (LTU)",
                "Romania (ROU)",
                "Bulgaria (BGR)",
                "Greece (GRC)",
                "Cyprus (CYP)",
                "Malta (MLT)"
              ]
            },
            "default": [
              "AUT",
              "DEU"
            ]
          },
          "cpvCodes": {
            "title": "2. Which sector? (optional)",
            "type": "array",
            "description": "Pick the kind of work or product (EU 'CPV' categories). A main category includes all its sub-categories, e.g. '72 IT services' also finds software development and hosting. Leave empty for all sectors. You can also type a CPV code such as 90910000 or a word such as Reinigung.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "03000000",
                "09000000",
                "09310000",
                "09330000",
                "14000000",
                "15000000",
                "16000000",
                "18000000",
                "19000000",
                "22000000",
                "24000000",
                "30000000",
                "31000000",
                "32000000",
                "33000000",
                "33600000",
                "34000000",
                "34100000",
                "35000000",
                "37000000",
                "38000000",
                "39000000",
                "41000000",
                "42000000",
                "43000000",
                "44000000",
                "45000000",
                "45200000",
                "45300000",
                "48000000",
                "48800000",
                "50000000",
                "51000000",
                "55000000",
                "55500000",
                "60000000",
                "63000000",
                "64000000",
                "65000000",
                "66000000",
                "70000000",
                "71000000",
                "71300000",
                "72000000",
                "72200000",
                "72500000",
                "73000000",
                "75000000",
                "76000000",
                "77000000",
                "79000000",
                "79340000",
                "79400000",
                "80000000",
                "80500000",
                "85000000",
                "85100000",
                "90000000",
                "90500000",
                "90910000",
                "92000000",
                "98000000"
              ],
              "enumTitles": [
                "03 – Agriculture, farming, fishing and forestry products",
                "09 – Fuel, electricity and energy",
                "09 09310000 – Electricity",
                "09 09330000 – Solar energy",
                "14 – Mining and basic metals",
                "15 – Food, beverages and tobacco",
                "16 – Agricultural machinery",
                "18 – Clothing, footwear and luggage",
                "19 – Leather, textiles, plastic and rubber",
                "22 – Printed matter and related products",
                "24 – Chemical products",
                "30 – Office and computer equipment (not furniture/software)",
                "31 – Electrical equipment and lighting",
                "32 – Radio, TV and telecom equipment",
                "33 – Medical equipment, pharmaceuticals and personal care",
                "33 33600000 – Pharmaceutical products",
                "34 – Vehicles and transport equipment",
                "34 34100000 – Motor vehicles",
                "35 – Security, fire-fighting, police and defence equipment",
                "37 – Musical instruments, sport goods, toys and art",
                "38 – Laboratory, optical and precision equipment",
                "39 – Furniture, furnishings, appliances and cleaning products",
                "41 – Water (collected and purified)",
                "42 – Industrial machinery",
                "43 – Mining and construction machinery",
                "44 – Construction materials and structures",
                "45 – Construction work",
                "45 45200000 – Building and civil engineering works",
                "45 45300000 – Building installation works (electrical, plumbing, HVAC)",
                "48 – Software packages and information systems",
                "48 48800000 – Information systems and servers",
                "50 – Repair and maintenance services",
                "51 – Installation services (not software)",
                "55 – Hotel, restaurant and catering services",
                "55 55500000 – Canteen and catering services",
                "60 – Transport services",
                "63 – Transport support services and travel agencies",
                "64 – Postal and telecommunications services",
                "65 – Public utilities",
                "66 – Financial and insurance services",
                "70 – Real estate services",
                "71 – Architecture, engineering and inspection services",
                "71 71300000 – Engineering services",
                "72 – IT services: consulting, software development, support",
                "72 72200000 – Software programming and consultancy",
                "72 72500000 – IT-related services (operation, hosting)",
                "73 – Research and development services",
                "75 – Administration, defence and social security services",
                "76 – Oil and gas industry services",
                "77 – Agricultural, forestry and horticultural services",
                "79 – Business services: legal, marketing, consulting, recruitment",
                "79 79340000 – Advertising and marketing services",
                "79 79400000 – Business and management consultancy",
                "80 – Education and training services",
                "80 80500000 – Training services",
                "85 – Health and social work services",
                "85 85100000 – Health services",
                "90 – Sewage, waste, cleaning and environmental services",
                "90 90500000 – Waste and refuse services",
                "90 90910000 – Cleaning services",
                "92 – Recreational, cultural and sporting services",
                "98 – Other community, social and personal services"
              ]
            }
          },
          "keywords": {
            "title": "3. Keywords (optional)",
            "type": "array",
            "description": "Finds notices that mention ANY of these words anywhere in the text, in any language. Example: Software, Cloud, Reinigung. One word or phrase per line (commas also work).",
            "items": {
              "type": "string"
            }
          },
          "daysBack": {
            "title": "Published in the last … days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "How far back to look. Example: 7 = notices published in the last week. For a daily alert use 1 or 2 together with 'Only new notices'.",
            "default": 7
          },
          "maxResults": {
            "title": "Max notices (cost limit)",
            "minimum": 1,
            "maximum": 15000,
            "type": "integer",
            "description": "The run stops after this many notices, so you never pay more than you expect. Example: 200 notices cost at most $0.60 ($0.003 each).",
            "default": 200
          },
          "onlyNew": {
            "title": "Only new notices since my last run",
            "type": "boolean",
            "description": "Remembers which notices you already got (in a storage in your own Apify account) and skips them next time. Skipped notices are free. Example: schedule daily at 07:00 = a free-of-subscription tender alert.",
            "default": false
          },
          "stateKey": {
            "title": "Alert name (only if you run several alerts)",
            "type": "string",
            "description": "Optional. Give each saved search its own name so their 'already seen' lists stay separate. Example: vienna-it. Leave empty if you only have one alert."
          },
          "noticeTypes": {
            "title": "Notice types",
            "type": "array",
            "description": "Which kinds of notices to return. Example: 'Open calls for tender' = tenders you can still bid on; 'Contract award notices' = who won and for how much.",
            "items": {
              "type": "string",
              "enum": [
                "contract_notices",
                "prior_information",
                "contract_awards"
              ],
              "enumTitles": [
                "Open calls for tender (you can bid)",
                "Prior information notices (planned tenders)",
                "Contract award notices (who won)"
              ]
            },
            "default": [
              "contract_notices"
            ]
          },
          "onlyOpen": {
            "title": "Only tenders that are still open",
            "type": "boolean",
            "description": "Skips notices whose deadline has already passed. Notices without a deadline are kept. Skipped notices are free. Example: switch on if you only want tenders you can still bid on.",
            "default": false
          },
          "minEstimatedValue": {
            "title": "Minimum estimated contract value",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Keeps only notices whose published estimated value is at least this amount (in the notice currency, usually EUR). Example: 100000. Notices without a published value are skipped (and free)."
          },
          "publishedFrom": {
            "title": "Published from (exact date)",
            "type": "string",
            "description": "Optional. Use an exact start date instead of 'last … days'. Example: 2026-10-01 (01.10.2026 also works)."
          },
          "preferredLanguages": {
            "title": "Language for titles and links",
            "type": "array",
            "description": "Which language to use for the title, buyer name and the notice link when TED has several. Example: German, then English. An English title is always included as well.",
            "items": {
              "type": "string",
              "enumSuggestedValues": [
                "deu",
                "eng",
                "fra",
                "ita",
                "spa",
                "nld",
                "pol",
                "ces",
                "slk",
                "slv",
                "hun",
                "hrv",
                "ron",
                "bul",
                "ell",
                "por",
                "dan",
                "swe",
                "fin",
                "est",
                "lav",
                "lit",
                "mlt",
                "gle"
              ],
              "enumTitles": [
                "German",
                "English",
                "French",
                "Italian",
                "Spanish",
                "Dutch",
                "Polish",
                "Czech",
                "Slovak",
                "Slovenian",
                "Hungarian",
                "Croatian",
                "Romanian",
                "Bulgarian",
                "Greek",
                "Portuguese",
                "Danish",
                "Swedish",
                "Finnish",
                "Estonian",
                "Latvian",
                "Lithuanian",
                "Maltese",
                "Irish"
              ]
            },
            "default": [
              "deu",
              "eng"
            ]
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}