{
  "openapi": "3.0.1",
  "info": {
    "title": "TED EU Tenders – Daily Tender Alerts & Search",
    "description": "Search open EU tenders from TED (Tenders Electronic Daily) and get only new tenders every day. Filter by keyword, country, plain-English category or CPV code, deadline and value. One clean row per tender: buyer, value, deadline, bid links. No API key, no personal data.",
    "version": "0.2",
    "x-build-id": "BkLtsFPZ2XG5TvR1e"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tidelinedata~eu-tenders/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tidelinedata-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/tidelinedata~eu-tenders/runs": {
      "post": {
        "operationId": "runs-sync-tidelinedata-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/tidelinedata~eu-tenders/run-sync": {
      "post": {
        "operationId": "run-sync-tidelinedata-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": "Words or phrases to look for in the tender. A tender matches if it contains any of them. Tip: tenders are written in the buyer's language, so also add local-language words (for example \"Reinigung\" for cleaning in Germany).",
            "items": {
              "type": "string"
            }
          },
          "categories": {
            "title": "Categories",
            "type": "array",
            "description": "Plain-English categories. Each one covers a group of EU CPV codes. Leave empty for all categories.",
            "items": {
              "type": "string",
              "enum": [
                "it-software",
                "telecom",
                "construction",
                "architecture-engineering",
                "consulting-business",
                "research",
                "medical",
                "health-social",
                "education-training",
                "transport-vehicles",
                "transport-services",
                "energy-utilities",
                "environment-cleaning",
                "repair-maintenance",
                "food-catering",
                "office-furniture",
                "security-defence",
                "financial-insurance",
                "industrial-machinery",
                "electrical"
              ],
              "enumTitles": [
                "IT, software and IT services",
                "Telecom equipment and services",
                "Construction works",
                "Architecture, engineering and surveying",
                "Business, legal, marketing and consulting services",
                "Research and development",
                "Medical equipment, pharmaceuticals and lab supplies",
                "Health and social services",
                "Education and training",
                "Vehicles and transport equipment",
                "Transport and logistics services",
                "Energy, fuels and utilities",
                "Cleaning, waste and environmental services",
                "Repair and maintenance services",
                "Food, drinks and catering",
                "Office equipment, supplies and furniture",
                "Security, safety and defence equipment",
                "Financial and insurance services",
                "Industrial machinery and tools",
                "Electrical equipment and lighting"
              ]
            }
          },
          "cpvCodes": {
            "title": "CPV codes (advanced)",
            "type": "array",
            "description": "Exact EU CPV codes, for example 72000000. A broad code includes all its sub-codes. Combined with Categories (a tender matches either).",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Buyer countries",
            "type": "array",
            "description": "Countries of the public buyer, as 2- or 3-letter codes (DE or DEU, FR or FRA). Leave empty for all countries.",
            "items": {
              "type": "string"
            }
          },
          "contractTypes": {
            "title": "Contract types",
            "type": "array",
            "description": "Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "services",
                "supplies",
                "works"
              ],
              "enumTitles": [
                "Services",
                "Supplies (goods)",
                "Works (construction)"
              ]
            }
          },
          "publishedWithinDays": {
            "title": "Published within (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Only tenders published in the last N days (1–365). For a daily alert, 2 is enough together with \"Only new tenders\".",
            "default": 7
          },
          "minDaysToDeadline": {
            "title": "Minimum days left to bid",
            "minimum": 0,
            "type": "integer",
            "description": "Skip tenders whose deadline is sooner than this. 0 keeps everything still open.",
            "default": 0
          },
          "excludeNoDeadline": {
            "title": "Skip tenders without a stated deadline",
            "type": "boolean",
            "description": "About 1 in 10 notices don't state a tender deadline in a structured way.",
            "default": false
          },
          "minValueEur": {
            "title": "Minimum value (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Only tenders with an estimated value of at least this amount. Other currencies are converted at approximate rates."
          },
          "maxValueEur": {
            "title": "Maximum value (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Only tenders with an estimated value of at most this amount."
          },
          "excludeNoValue": {
            "title": "Skip tenders without a stated value",
            "type": "boolean",
            "description": "Only applies when a value filter is set. About half of notices don't publish a value; turn this off to keep them.",
            "default": true
          },
          "includePriorInformation": {
            "title": "Include prior information notices",
            "type": "boolean",
            "description": "Also include early notices that invite interest before the full tender.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new tenders (for daily alerts)",
            "type": "boolean",
            "description": "Return only tenders this monitor hasn't returned before. Use it with a daily schedule to get just today's new tenders.",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional. Give each saved search its own name so their \"already seen\" lists stay separate. If empty, one is made from your filters."
          },
          "failIfEmpty": {
            "title": "Fail the run if nothing is found",
            "type": "boolean",
            "description": "Useful for monitoring: the run is marked as failed (and Apify can email you) when no tenders are found.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum tenders",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Stop after this many tenders (each one is billed).",
            "default": 200
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}