{
  "openapi": "3.0.1",
  "info": {
    "title": "TED Europa Tenders Scraper",
    "description": "Scrape TED Europa tender notices and contract award notices: title in English, buyer, country, CPV codes, deadline, value, winner and 245 eForms fields. Daily tender alerts by country, CPV, keyword or expert query.",
    "version": "0.1",
    "x-build-id": "Up4ai9dGcQSamOe2I"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~ted-europa-tenders-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-ted-europa-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/parseforge~ted-europa-tenders-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-ted-europa-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/parseforge~ted-europa-tenders-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-ted-europa-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": {
          "publishedLastDays": {
            "title": "Published in the last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Rolling window for daily monitoring: 1 returns yesterday and today. Overrides the published-from and published-to dates below. Leave empty to use exact dates instead."
          },
          "maxItems": {
            "title": "Maximum notices",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Stop after this many notices. TED publishes roughly 3,000 a day and about 600,000 a year, so always pair a large number with filters. Free-plan runs return up to 10 as a preview."
          },
          "sortOrder": {
            "title": "Order",
            "enum": [
              "newest",
              "oldest"
            ],
            "type": "string",
            "description": "Newest first is the publication number descending, which is stable across pages. Sorting by publication date instead looks the same but reshuffles ties between requests and silently truncates deep runs, so it is not offered."
          },
          "onlyActive": {
            "title": "Only tenders still open",
            "type": "boolean",
            "description": "Keep only notices whose submission deadline has not passed — the ones you can still bid on. Turns roughly 510,000 Spanish notices into 26,000.",
            "default": false
          },
          "buyerCountries": {
            "title": "Buyer countries",
            "type": "array",
            "description": "Country of the contracting authority, ISO 3166 alpha-3. Multiple values are ORed. Leave empty for all of Europe.",
            "items": {
              "type": "string",
              "enum": [
                "AUT",
                "BEL",
                "BGR",
                "HRV",
                "CYP",
                "CZE",
                "DNK",
                "EST",
                "FIN",
                "FRA",
                "DEU",
                "GRC",
                "HUN",
                "IRL",
                "ITA",
                "LVA",
                "LTU",
                "LUX",
                "MLT",
                "NLD",
                "POL",
                "PRT",
                "ROU",
                "SVK",
                "SVN",
                "ESP",
                "SWE",
                "ISL",
                "LIE",
                "NOR",
                "CHE",
                "GBR",
                "UKR",
                "TUR",
                "SRB",
                "MKD",
                "BIH",
                "MNE",
                "ALB",
                "MDA",
                "GEO"
              ],
              "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",
                "Ukraine",
                "Turkey",
                "Serbia",
                "North Macedonia",
                "Bosnia and Herzegovina",
                "Montenegro",
                "Albania",
                "Moldova",
                "Georgia"
              ]
            }
          },
          "cpvCodes": {
            "title": "CPV codes",
            "type": "array",
            "description": "Common Procurement Vocabulary codes. Matching is hierarchical, so the division 72000000 also returns 72263000 and 72210000. Pick divisions here or type exact 8-digit codes in the expert query.",
            "items": {
              "type": "string",
              "enum": [
                "03000000",
                "09000000",
                "14000000",
                "15000000",
                "16000000",
                "18000000",
                "19000000",
                "22000000",
                "24000000",
                "30000000",
                "31000000",
                "32000000",
                "33000000",
                "34000000",
                "35000000",
                "37000000",
                "38000000",
                "39000000",
                "41000000",
                "42000000",
                "43000000",
                "44000000",
                "45000000",
                "48000000",
                "50000000",
                "51000000",
                "55000000",
                "60000000",
                "63000000",
                "64000000",
                "65000000",
                "66000000",
                "70000000",
                "71000000",
                "72000000",
                "73000000",
                "75000000",
                "76000000",
                "77000000",
                "79000000",
                "80000000",
                "85000000",
                "90000000",
                "92000000",
                "98000000"
              ],
              "enumTitles": [
                "03 Agriculture, farming, fishing, forestry",
                "09 Petroleum, fuel, electricity",
                "14 Mining, basic metals",
                "15 Food, beverages, tobacco",
                "16 Agricultural machinery",
                "18 Clothing, footwear, luggage",
                "19 Leather, textiles, plastics, rubber",
                "22 Printed matter",
                "24 Chemical products",
                "30 Office and computing machinery",
                "31 Electrical machinery and apparatus",
                "32 Radio, television, communication equipment",
                "33 Medical equipment, pharmaceuticals",
                "34 Transport equipment",
                "35 Security, firefighting, defence",
                "37 Musical instruments, sport goods, toys",
                "38 Laboratory, optical, precision equipment",
                "39 Furniture, furnishings, cleaning products",
                "41 Collected and purified water",
                "42 Industrial machinery",
                "43 Mining and construction machinery",
                "44 Construction structures and materials",
                "45 Construction work",
                "48 Software and information systems",
                "50 Repair and maintenance services",
                "51 Installation services",
                "55 Hotel, restaurant, retail services",
                "60 Transport services",
                "63 Supporting transport services, travel",
                "64 Postal and telecommunications services",
                "65 Public utilities",
                "66 Financial and insurance services",
                "70 Real estate services",
                "71 Architectural, engineering, inspection",
                "72 IT services, consulting, software dev",
                "73 Research and development services",
                "75 Administration, defence, social security",
                "76 Services related to oil and gas",
                "77 Agricultural, forestry, horticultural",
                "79 Business services, legal, marketing",
                "80 Education and training services",
                "85 Health and social work services",
                "90 Sewage, refuse, sanitation, environmental",
                "92 Recreational, cultural, sporting",
                "98 Other community and personal services"
              ]
            }
          },
          "keywords": {
            "title": "Keywords (full notice text)",
            "type": "string",
            "description": "Searches the whole notice body, not just the title. Quoted as a phrase, e.g. artificial intelligence."
          },
          "titleKeywords": {
            "title": "Keywords (title only)",
            "type": "string",
            "description": "Searches the notice title, including its machine translations, so an English word finds Polish and Greek notices too."
          },
          "formTypes": {
            "title": "Notice stage",
            "type": "array",
            "description": "The stage of the procurement. Competition is the live call for tenders, result is the award, planning is the prior information notice.",
            "items": {
              "type": "string",
              "enum": [
                "competition",
                "result",
                "planning",
                "cont-modif",
                "dir-awa-pre",
                "consultation",
                "completion"
              ],
              "enumTitles": [
                "Competition (call for tenders)",
                "Result (contract award)",
                "Planning (prior information)",
                "Contract modification",
                "Direct award pre-notice",
                "Preliminary market consultation",
                "Contract completion"
              ]
            }
          },
          "noticeTypes": {
            "title": "Notice type",
            "type": "array",
            "description": "The exact eForms notice subtype. Narrower than the stage above; leave empty unless you need one form.",
            "items": {
              "type": "string",
              "enum": [
                "cn-standard",
                "can-standard",
                "can-modif",
                "cn-social",
                "can-social",
                "pin-only",
                "pin-rtl",
                "pin-tran",
                "pin-buyer",
                "pin-cfc-standard",
                "cn-desg",
                "can-desg",
                "veat",
                "pmc",
                "qu-sy",
                "compl"
              ],
              "enumTitles": [
                "Contract notice (standard)",
                "Contract award notice (standard)",
                "Contract modification notice",
                "Contract notice (social and other services)",
                "Award notice (social and other services)",
                "Prior information notice",
                "Prior information (reduced time limits)",
                "Prior information (transport)",
                "Buyer profile notice",
                "Prior information as call for competition",
                "Design contest notice",
                "Design contest result",
                "Voluntary ex-ante transparency notice",
                "Preliminary market consultation",
                "Qualification system notice",
                "Contract completion notice"
              ]
            }
          },
          "contractNature": {
            "title": "Contract type",
            "type": "array",
            "description": "Works, supplies or services.",
            "items": {
              "type": "string",
              "enum": [
                "works",
                "supplies",
                "services"
              ],
              "enumTitles": [
                "Works",
                "Supplies",
                "Services"
              ]
            }
          },
          "procedureTypes": {
            "title": "Procedure",
            "type": "array",
            "description": "The award procedure the buyer is running.",
            "items": {
              "type": "string",
              "enum": [
                "open",
                "restricted",
                "neg-w-call",
                "neg-wo-call",
                "comp-dial",
                "comp-tend",
                "oth-single",
                "oth-mult"
              ],
              "enumTitles": [
                "Open",
                "Restricted",
                "Negotiated with prior call",
                "Negotiated without prior call",
                "Competitive dialogue",
                "Competitive tendering",
                "Other (single stage)",
                "Other (multiple stages)"
              ]
            }
          },
          "publishedAfter": {
            "title": "Published from",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "YYYY-MM-DD. TED's archive starts on 2016-08-26. Ignored when Published in the last N days is set."
          },
          "publishedBefore": {
            "title": "Published to",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "YYYY-MM-DD, inclusive."
          },
          "deadlineAfter": {
            "title": "Tender deadline from",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "YYYY-MM-DD. Keeps notices whose deadline for receipt of tenders falls on or after this date."
          },
          "deadlineBefore": {
            "title": "Tender deadline to",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "YYYY-MM-DD, inclusive."
          },
          "performanceCountries": {
            "title": "Place of performance",
            "type": "array",
            "description": "Where the contract is carried out, which is not always the buyer's country.",
            "items": {
              "type": "string",
              "enum": [
                "AUT",
                "BEL",
                "BGR",
                "HRV",
                "CYP",
                "CZE",
                "DNK",
                "EST",
                "FIN",
                "FRA",
                "DEU",
                "GRC",
                "HUN",
                "IRL",
                "ITA",
                "LVA",
                "LTU",
                "LUX",
                "MLT",
                "NLD",
                "POL",
                "PRT",
                "ROU",
                "SVK",
                "SVN",
                "ESP",
                "SWE",
                "ISL",
                "LIE",
                "NOR",
                "CHE",
                "GBR",
                "UKR",
                "TUR",
                "SRB",
                "MKD",
                "BIH",
                "MNE",
                "ALB",
                "MDA",
                "GEO"
              ],
              "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",
                "Ukraine",
                "Turkey",
                "Serbia",
                "North Macedonia",
                "Bosnia and Herzegovina",
                "Montenegro",
                "Albania",
                "Moldova",
                "Georgia"
              ]
            }
          },
          "buyerName": {
            "title": "Buyer name",
            "type": "string",
            "description": "Part of the contracting authority's name, e.g. ministry."
          },
          "winnerName": {
            "title": "Winner name",
            "type": "string",
            "description": "Part of an awarded supplier's name. Only matches contract award notices."
          },
          "minValue": {
            "title": "Minimum contract value",
            "minimum": 0,
            "type": "integer",
            "description": "Total value of the notice, in the currency TED recorded (usually EUR). Notices with no published value are excluded when this is set."
          },
          "maxValue": {
            "title": "Maximum contract value",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound on the total value."
          },
          "onlyLatestVersions": {
            "title": "Latest version only",
            "type": "boolean",
            "description": "Drop superseded versions when a notice has been corrected, keeping one row per notice.",
            "default": false
          },
          "expertQuery": {
            "title": "Expert query",
            "type": "string",
            "description": "TED expert search, passed through untouched and replacing every filter above. Supports =, ~, IN (...), ranges, AND/OR/NOT and today(-7), e.g. buyer-country=DEU AND classification-cpv=72000000 AND publication-date>=today(-7). Sorting is added for you unless you write your own SORT BY."
          },
          "language": {
            "title": "Output language",
            "enum": [
              "eng",
              "deu",
              "fra",
              "spa",
              "ita",
              "nld",
              "pol",
              "por",
              "ron",
              "ces",
              "ell",
              "swe",
              "dan",
              "fin",
              "hun",
              "bul",
              "hrv",
              "slk",
              "slv",
              "est",
              "lav",
              "lit",
              "gle",
              "mlt"
            ],
            "type": "string",
            "description": "Language for the notice title, which TED machine-translates into all 24 EU languages. Descriptions and buyer names exist only in the language the buyer filed in, so those fall back to the original and the row records which language it used."
          },
          "includeBuyerDetails": {
            "title": "Buyer details",
            "type": "boolean",
            "description": "Full contracting authority block: address, e-mail, phone, contact point, buyer profile URL, legal type and main activity. 21 extra fields.",
            "default": false
          },
          "includeLotDetails": {
            "title": "Lot details",
            "type": "boolean",
            "description": "Per-lot titles, descriptions, estimated values, durations, place of performance and award criteria with their weights. 35 extra fields.",
            "default": false
          },
          "includeAwardDetails": {
            "title": "Award and winner details",
            "type": "boolean",
            "description": "For contract award notices: winner name, identifier, address, company size, awarded value, contract number and date, tender ranks and how many bids were received. 35 extra fields.",
            "default": false
          },
          "includeConditions": {
            "title": "Participation conditions",
            "type": "boolean",
            "description": "Exclusion grounds, selection criteria source, framework agreement and dynamic purchasing system flags, e-submission and e-invoicing, guarantees, reserved and green procurement, EU funding. 36 extra fields.",
            "default": false
          },
          "includeDocuments": {
            "title": "Tender documents",
            "type": "boolean",
            "description": "Links to the procurement documents and the submission portal, document languages and restrictions, and the organisations that provide and receive them. 14 extra fields.",
            "default": false
          },
          "includeReviewBodies": {
            "title": "Review and appeal bodies",
            "type": "boolean",
            "description": "The body that hears appeals, its address and the deadline description, plus the review information point and mediator. 15 extra fields.",
            "default": false
          },
          "includeRelatedOrganisations": {
            "title": "Other organisations",
            "type": "boolean",
            "description": "Additional information point, tender evaluator and the eSender that filed the notice. 13 extra fields.",
            "default": false
          },
          "includeNoticeHistory": {
            "title": "Corrections and previous notices",
            "type": "boolean",
            "description": "Change description and reason, the section that changed, the previous notice in the procedure and the framework notice it belongs to. 12 extra fields.",
            "default": false
          },
          "includeLegacyFields": {
            "title": "Legacy TED codes",
            "type": "boolean",
            "description": "The pre-eForms two-letter codes (TD, PR, NC, PC, RC, AA…). These are the only shape older archive notices carry, so switch this on when scraping before 2024. 29 extra fields.",
            "default": false
          },
          "includeFullText": {
            "title": "Full notice text",
            "type": "boolean",
            "description": "The complete notice body as TED indexes it, in the original language. Roughly triples the bytes per notice and the run time.",
            "default": false
          },
          "includeTranslations": {
            "title": "Title in all 24 languages",
            "type": "boolean",
            "description": "Keeps every machine translation of the title as a language-keyed object instead of the one output language.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "The TED API is open and does not need a proxy; runs go direct by default. Turn one on only if your account is throttled.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}