{
  "openapi": "3.0.1",
  "info": {
    "title": "TED EU Public Tenders Scraper - Procurement Notices API",
    "description": "Scrape EU public tenders from TED (Tenders Electronic Daily), the official EU procurement journal. Search government contracts, calls for tenders, RFPs and contract award notices by CPV code, country, buyer or keyword, newest first. Official CPV labels in 24 languages. JSON, CSV, Excel. No API key.",
    "version": "0.2",
    "x-build-id": "OzPTnP3adwvAekSOY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nexus-scrapers~ted-eu-tenders/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nexus-scrapers-ted-eu-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/nexus-scrapers~ted-eu-tenders/runs": {
      "post": {
        "operationId": "runs-sync-nexus-scrapers-ted-eu-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/nexus-scrapers~ted-eu-tenders/run-sync": {
      "post": {
        "operationId": "run-sync-nexus-scrapers-ted-eu-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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Free-text search in the notice text (title, description, buyer, ...). Several keywords are combined with OR; a keyword with spaces is matched as a phrase. Leave empty to search everything.",
            "items": {
              "type": "string"
            }
          },
          "buyerCountries": {
            "title": "Buyer countries",
            "type": "array",
            "description": "Only notices from buyers (contracting authorities) located in these countries. Leave empty for all countries.",
            "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",
                "UA",
                "TR",
                "AL",
                "BA",
                "MK",
                "ME",
                "RS",
                "MD",
                "GE",
                "XK"
              ],
              "enumTitles": [
                "Austria (AT)",
                "Belgium (BE)",
                "Bulgaria (BG)",
                "Croatia (HR)",
                "Cyprus (CY)",
                "Czechia (CZ)",
                "Denmark (DK)",
                "Estonia (EE)",
                "Finland (FI)",
                "France (FR)",
                "Germany (DE)",
                "Greece (GR)",
                "Hungary (HU)",
                "Ireland (IE)",
                "Italy (IT)",
                "Latvia (LV)",
                "Lithuania (LT)",
                "Luxembourg (LU)",
                "Malta (MT)",
                "Netherlands (NL)",
                "Poland (PL)",
                "Portugal (PT)",
                "Romania (RO)",
                "Slovakia (SK)",
                "Slovenia (SI)",
                "Spain (ES)",
                "Sweden (SE)",
                "Iceland (IS)",
                "Liechtenstein (LI)",
                "Norway (NO)",
                "Switzerland (CH)",
                "United Kingdom (GB)",
                "Ukraine (UA)",
                "Turkey (TR)",
                "Albania (AL)",
                "Bosnia and Herzegovina (BA)",
                "North Macedonia (MK)",
                "Montenegro (ME)",
                "Serbia (RS)",
                "Moldova (MD)",
                "Georgia (GE)",
                "Kosovo (XK)"
              ]
            }
          },
          "cpvCodes": {
            "title": "CPV codes",
            "type": "array",
            "description": "Common Procurement Vocabulary codes, with prefix matching: '72' or '72000000' matches every code starting with 72 (IT services), '7221' matches 7221xxxx. Check digits such as '-4' are ignored. A notice matches if any of its CPV codes matches.",
            "items": {
              "type": "string"
            }
          },
          "noticeTypes": {
            "title": "Notice types",
            "type": "array",
            "description": "Which kinds of notices to return. Leave empty for all types. Use 'Contract notices' for open tenders you can bid on and 'Contract award notices' to see who won.",
            "items": {
              "type": "string",
              "enum": [
                "contract-notice",
                "prior-information",
                "contract-award",
                "contract-modification",
                "voluntary-ex-ante",
                "other"
              ],
              "enumTitles": [
                "Contract notices (open calls for tender)",
                "Prior information notices",
                "Contract award notices (results, winners)",
                "Contract modification notices",
                "Voluntary ex-ante transparency notices",
                "Other (qualification systems, subcontracting, corrigenda)"
              ]
            },
            "default": [
              "contract-notice"
            ]
          },
          "daysBack": {
            "title": "Published in the last N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only notices published in the last N days. Ignored if 'Published from' or 'Published to' is set. Use 0 for no date limit (results are always newest first).",
            "default": 7
          },
          "publicationDateFrom": {
            "title": "Published from",
            "type": "string",
            "description": "Earliest publication date, format YYYY-MM-DD. Overrides 'last N days'."
          },
          "publicationDateTo": {
            "title": "Published to",
            "type": "string",
            "description": "Latest publication date (inclusive), format YYYY-MM-DD."
          },
          "deadlineAfter": {
            "title": "Submission deadline on or after",
            "type": "string",
            "description": "Only notices whose deadline for receipt of tenders is on or after this date (YYYY-MM-DD). Set it to today to get tenders that are still open for bids."
          },
          "minValue": {
            "title": "Minimum value",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum estimated value (awarded value for award notices), in the notice's own currency (mostly EUR). No currency conversion is applied."
          },
          "maxValue": {
            "title": "Maximum value",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum estimated value (awarded value for award notices), in the notice's own currency."
          },
          "buyerName": {
            "title": "Buyer name contains",
            "type": "string",
            "description": "Word(s) that must appear in the buyer (contracting authority) name, e.g. 'ministry' or 'comune di milano'. Matched as words, not as part of a word."
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 15000,
            "type": "integer",
            "description": "Maximum number of notices to return, newest first. You are charged per result, so keep this low while testing.",
            "default": 20
          },
          "preferredLanguage": {
            "title": "Preferred language",
            "enum": [
              "en",
              "original",
              "bg",
              "cs",
              "da",
              "de",
              "el",
              "es",
              "et",
              "fi",
              "fr",
              "ga",
              "hr",
              "hu",
              "it",
              "lt",
              "lv",
              "mt",
              "nl",
              "pl",
              "pt",
              "ro",
              "sk",
              "sl",
              "sv"
            ],
            "type": "string",
            "description": "Language used for titles, descriptions and buyer names when a notice has several. Falls back to English, then to any available language. Notice texts are written by buyers in their own language and are not machine-translated.",
            "default": "en"
          },
          "cpvLabelLanguage": {
            "title": "CPV label language",
            "enum": [
              "en",
              "bg",
              "cs",
              "da",
              "de",
              "el",
              "es",
              "et",
              "fi",
              "fr",
              "ga",
              "hr",
              "hu",
              "it",
              "lt",
              "lv",
              "mt",
              "nl",
              "pl",
              "pt",
              "ro",
              "sk",
              "sl",
              "sv"
            ],
            "type": "string",
            "description": "Language of the official CPV (Common Procurement Vocabulary) labels in cpvCodes[].label. All 24 EU languages are available; falls back to English.",
            "default": "en"
          },
          "expertQuery": {
            "title": "Advanced: TED expert query",
            "type": "string",
            "description": "Advanced. A raw TED expert-search query (see the TED Developer Docs). If set, it REPLACES all the filters above (Maximum results and Preferred language still apply)."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}