{
  "openapi": "3.0.1",
  "info": {
    "title": "EU TED Tenders Scraper (Tenders Electronic Daily)",
    "description": "Get EU public tenders and contract awards from TED, the official EU procurement journal, as clean JSON or CSV. Filter by country, CPV code, keyword, value and deadline. Alerts mode outputs only new notices.",
    "version": "1.0",
    "x-build-id": "NbfGPSFhqV61SPCBr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tenderwire~eu-ted-tenders/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tenderwire-eu-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/tenderwire~eu-ted-tenders/runs": {
      "post": {
        "operationId": "runs-sync-tenderwire-eu-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/tenderwire~eu-ted-tenders/run-sync": {
      "post": {
        "operationId": "run-sync-tenderwire-eu-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": {
          "noticeTypes": {
            "title": "Notice types",
            "type": "array",
            "description": "competition = open tenders you can bid on. result = contract awards (who won, for how much). planning = prior information notices. change = corrections to earlier notices.",
            "items": {
              "type": "string",
              "enum": [
                "competition",
                "result",
                "planning",
                "change"
              ],
              "enumTitles": [
                "Competition (open tenders)",
                "Result (contract awards)",
                "Planning (prior information)",
                "Change (corrections)"
              ]
            },
            "default": [
              "competition"
            ]
          },
          "countries": {
            "title": "Buyer countries",
            "type": "array",
            "description": "Country codes of the buying organisation, 2 or 3 letters (DE or DEU, FR, PL, NL, ES, IT...). Leave empty for all countries.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords (any)",
            "type": "array",
            "description": "Full-text search across the notice in every language. Notices matching at least one keyword are kept. Use quotes-free phrases like data centre.",
            "items": {
              "type": "string"
            }
          },
          "cpvPrefixes": {
            "title": "CPV codes or prefixes",
            "type": "array",
            "description": "Keep notices with a CPV code starting with these digits. Example: 72 = IT services, 48 = software packages, 45 = construction work, 33 = medical equipment.",
            "items": {
              "type": "string"
            }
          },
          "daysBack": {
            "title": "Days back",
            "minimum": 1,
            "maximum": 730,
            "type": "integer",
            "description": "How many days of publications to fetch, counting back from today. TED publishes about 2,500 to 3,500 notices per working day. Ignored when 'Date from' is set.",
            "default": 3
          },
          "dateFrom": {
            "title": "Date from",
            "type": "string",
            "description": "Optional start publication date (YYYY-MM-DD). Overrides 'Days back'."
          },
          "dateTo": {
            "title": "Date to",
            "type": "string",
            "description": "Optional end publication date (YYYY-MM-DD). Defaults to today."
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop notices whose title, description or buyer contains any of these words.",
            "items": {
              "type": "string"
            }
          },
          "minValue": {
            "title": "Minimum estimated value",
            "minimum": 0,
            "type": "integer",
            "description": "In the notice's own currency (mostly EUR). Notices without an estimated value are dropped when set."
          },
          "maxValue": {
            "title": "Maximum estimated value",
            "minimum": 0,
            "type": "integer",
            "description": "In the notice's own currency (mostly EUR)."
          },
          "onlyOpen": {
            "title": "Only open (deadline not passed)",
            "type": "boolean",
            "description": "Keep only notices whose tender deadline is today or later.",
            "default": false
          },
          "language": {
            "title": "Preferred language",
            "type": "string",
            "description": "Three-letter code for titles and descriptions when the notice has them in several languages (eng, deu, fra, spa, ita, pol, nld...). English headlines are used when the buyer's own title is not in this language.",
            "default": "eng"
          },
          "rawQuery": {
            "title": "Advanced TED expert query",
            "type": "string",
            "description": "Optional extra condition in TED's expert search syntax, combined with AND. Example: procedure-type IN (open) AND contract-nature-main-proc IN (services)"
          },
          "onlyNewSinceLastRun": {
            "title": "Only new since last run (alerts mode)",
            "type": "boolean",
            "description": "Remember delivered notices and output only new ones on the next run. Ideal for a daily schedule feeding email, Slack, Sheets or a CRM.",
            "default": false
          },
          "stateKey": {
            "title": "Alerts state name",
            "type": "string",
            "description": "Use a different name for each saved search that runs in alerts mode.",
            "default": "default"
          },
          "maxItems": {
            "title": "Max notices",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many notices. You only pay for notices delivered.",
            "default": 1000
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: TED's search API is open. Only turn on if you see repeated rate limit errors.",
            "default": {
              "useApifyProxy": false
            }
          },
          "selfCheck": {
            "title": "Self-check mode (maintenance)",
            "type": "boolean",
            "description": "For the maintainer. Fetches a small sample, checks TED's format has not changed and writes a SELF_CHECK report. Outputs no notices.",
            "default": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}