{
  "openapi": "3.0.1",
  "info": {
    "title": "EU Public Tenders Scraper (TED API)",
    "description": "Search and export EU public procurement notices from TED (Tenders Electronic Daily) by keyword, CPV code, country, notice type, date, value and buyer. Official TED API, no browser, fast and cheap.",
    "version": "0.1",
    "x-build-id": "q3svzdtYbasjEs4NJ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/rod_analytics~ted-tenders/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-rod_analytics-ted-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/rod_analytics~ted-tenders/runs": {
      "post": {
        "operationId": "runs-sync-rod_analytics-ted-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/rod_analytics~ted-tenders/run-sync": {
      "post": {
        "operationId": "run-sync-rod_analytics-ted-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": "Full-text search in notices. Any keyword may match (OR). Phrases are matched exactly, e.g. \"cloud services\". Notices are indexed in their original language, so add local-language terms for better recall. Avoid short acronyms such as SOC: they also match codes inside notices and return unrelated tenders.",
            "items": {
              "type": "string"
            }
          },
          "cpvCodes": {
            "title": "CPV codes",
            "type": "array",
            "description": "Common Procurement Vocabulary codes (8 digits). Parent codes include all child codes, e.g. 72000000 covers all IT services. The check digit (72000000-5) is optional.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Buyer countries",
            "type": "array",
            "description": "Country of the contracting authority. ISO 3166 alpha-2 codes. Alpha-3 codes (LTU) also work via API. Joint procurements match when any buyer is in these countries, so the first buyer (buyerCountry) can be elsewhere; see buyerCountries.",
            "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",
                "AL",
                "BA",
                "ME",
                "MK",
                "RS",
                "XK",
                "TR",
                "UA",
                "MD",
                "GE"
              ],
              "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",
                "Albania",
                "Bosnia and Herzegovina",
                "Montenegro",
                "North Macedonia",
                "Serbia",
                "Kosovo",
                "Türkiye",
                "Ukraine",
                "Moldova",
                "Georgia"
              ]
            }
          },
          "noticeTypes": {
            "title": "Notice types",
            "type": "array",
            "description": "Leave empty for all notice types.",
            "items": {
              "type": "string",
              "enum": [
                "contract-notice",
                "contract-award",
                "prior-information",
                "direct-award",
                "contract-modification",
                "corrigendum"
              ],
              "enumTitles": [
                "Contract notice (open tender)",
                "Contract award notice",
                "Prior information notice",
                "Direct award / VEAT notice",
                "Contract modification",
                "Corrigendum"
              ]
            }
          },
          "publishedWithinDays": {
            "title": "Published in the last N days",
            "minimum": 0,
            "type": "integer",
            "description": "Relative date filter. Also applied to the expert query. Ignored when 'Published from' is set. Use 0 to search all dates.",
            "default": 30
          },
          "publicationDateFrom": {
            "title": "Published from",
            "type": "string",
            "description": "Publication date from (YYYY-MM-DD). Overrides 'last N days'."
          },
          "publicationDateTo": {
            "title": "Published to",
            "type": "string",
            "description": "Publication date to (YYYY-MM-DD), inclusive."
          },
          "minValue": {
            "title": "Minimum value",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum total value (estimated or awarded) in the notice currency. Values are not converted between currencies."
          },
          "maxValue": {
            "title": "Maximum value",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum total value in the notice currency."
          },
          "buyerName": {
            "title": "Buyer name contains",
            "type": "string",
            "description": "Contracting authority name, matched as a phrase. Buyer names are usually in the local language, e.g. \"Vilniaus\"."
          },
          "languages": {
            "title": "Notice languages",
            "type": "array",
            "description": "Only notices whose original (official) language is one of these.",
            "items": {
              "type": "string",
              "enum": [
                "bg",
                "cs",
                "da",
                "de",
                "el",
                "en",
                "es",
                "et",
                "fi",
                "fr",
                "ga",
                "hr",
                "hu",
                "it",
                "lt",
                "lv",
                "mt",
                "nl",
                "pl",
                "pt",
                "ro",
                "sk",
                "sl",
                "sv"
              ],
              "enumTitles": [
                "Bulgarian",
                "Czech",
                "Danish",
                "German",
                "Greek",
                "English",
                "Spanish",
                "Estonian",
                "Finnish",
                "French",
                "Irish",
                "Croatian",
                "Hungarian",
                "Italian",
                "Lithuanian",
                "Latvian",
                "Maltese",
                "Dutch",
                "Polish",
                "Portuguese",
                "Romanian",
                "Slovak",
                "Slovenian",
                "Swedish"
              ]
            }
          },
          "maxItems": {
            "title": "Max notices",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of notices to save. You are charged per saved notice.",
            "default": 100
          },
          "scope": {
            "title": "Search scope",
            "enum": [
              "ALL",
              "ACTIVE",
              "LATEST"
            ],
            "type": "string",
            "description": "ALL = every notice since 1993. ACTIVE = only active notices (open procedures). LATEST = only the latest daily OJ S edition.",
            "default": "ALL"
          },
          "onlyLatestVersions": {
            "title": "Only latest notice versions",
            "type": "boolean",
            "description": "Skip older versions of notices that were changed later.",
            "default": false
          },
          "expertQuery": {
            "title": "Expert query (advanced)",
            "type": "string",
            "description": "Raw TED expert search query, e.g. place-of-performance IN (LTU) AND FT ~ \"cyber\". It is combined with the filters above using AND. You may end it with SORT BY <field> ASC|DESC. Build and test queries at https://ted.europa.eu/en/search/expert-search"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}