{
  "openapi": "3.0.1",
  "info": {
    "title": "EU Tenders Scraper - TED Public Procurement Notices",
    "description": "Get EU public tenders, contract awards and prior information notices from TED (Tenders Electronic Daily) via the official API. Filter by country, CPV, NUTS region, keyword, buyer and EUR value. Winners, deadlines, monitor mode for new-only alerts. No API key.",
    "version": "1.0",
    "x-build-id": "W9fz0LnwoFQUDkJEt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scoutdesk~eu-ted-tenders-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scoutdesk-eu-ted-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/scoutdesk~eu-ted-tenders-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scoutdesk-eu-ted-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/scoutdesk~eu-ted-tenders-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scoutdesk-eu-ted-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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Words or phrases to look for (any of them by default). TED notices are in the buyer's own language, so add local-language terms too (e.g. 'software', 'Software', 'logiciel', 'oprogramowanie') or use CPV codes, which work across all languages. Leave empty for all notices.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywordMatch": {
            "title": "Keyword match",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "Return notices containing any of the keywords, or only those containing all of them.",
            "default": "any"
          },
          "keywordScope": {
            "title": "Search keywords in",
            "enum": [
              "titleAndDescription",
              "title",
              "fullText"
            ],
            "type": "string",
            "description": "Title + description matches the notice title, lot titles and procedure description. Title only matches TED's notice title, which also contains the English CPV description (e.g. 'Germany – Software package and information systems – ...'). Entire notice text also matches boilerplate sections such as legal clauses, so expect noise.",
            "default": "titleAndDescription"
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop notices whose title or description contains any of these words.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "cpvCodes": {
            "title": "CPV codes",
            "type": "array",
            "description": "Common Procurement Vocabulary codes or prefixes. '72' = all IT services, '48' = software packages, '45' = construction, '33' = medical equipment. Full codes like 72000000 or 72000000-5 also work.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "cpvMatch": {
            "title": "CPV applies to",
            "enum": [
              "any",
              "main"
            ],
            "type": "string",
            "description": "Match CPV codes anywhere in the notice (including secondary codes), or only the procedure's main CPV code.",
            "default": "any"
          },
          "noticeStages": {
            "title": "Notice types",
            "type": "array",
            "description": "Which kinds of notice to return.",
            "items": {
              "type": "string",
              "enum": [
                "tender",
                "planning",
                "award",
                "modification"
              ],
              "enumTitles": [
                "Open tenders / calls for competition",
                "Planning (prior information & market consultation)",
                "Contract awards (winners and values)",
                "Contract modifications"
              ]
            },
            "default": [
              "tender"
            ]
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Countries by name (Germany), ISO-2 (DE) or ISO-3 (DEU) code. EU, EEA and other TED countries. Leave empty for all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "countryMatch": {
            "title": "Country applies to",
            "enum": [
              "buyer",
              "performance"
            ],
            "type": "string",
            "description": "Match the buyer's country, or the country where the contract is performed.",
            "default": "buyer"
          },
          "nutsCodes": {
            "title": "NUTS regions",
            "type": "array",
            "description": "Place-of-performance NUTS codes or prefixes, e.g. 'DE3' (Berlin), 'FR1' (Ile-de-France), 'NL32', 'ES51'.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "buyerNameContains": {
            "title": "Buyer name contains",
            "type": "array",
            "description": "Only notices from buyers whose name contains any of these words (e.g. 'Stadt', 'hospital', 'Universit').",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "daysBack": {
            "title": "Days back",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "How many days of publications to search, counting back from today. TED publishes on weekdays. Ignored when 'Published from' is set.",
            "default": 7
          },
          "publishedFrom": {
            "title": "Published from",
            "type": "string",
            "description": "Optional start date (YYYY-MM-DD). Overrides 'Days back'."
          },
          "publishedTo": {
            "title": "Published to",
            "type": "string",
            "description": "Optional end date (YYYY-MM-DD). Defaults to today."
          },
          "onlyOpen": {
            "title": "Only open tenders",
            "type": "boolean",
            "description": "Drop calls for competition whose submission deadline has already passed.",
            "default": true
          },
          "minValueEur": {
            "title": "Minimum value (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Only notices with an estimated or awarded value at or above this amount. Other currencies are converted with the ECB euro reference rates. Notices without a published value are excluded when set."
          },
          "maxValueEur": {
            "title": "Maximum value (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Only notices with a value at or below this amount (EUR, converted as above)."
          },
          "smeSuitableOnly": {
            "title": "Only SME-suitable",
            "type": "boolean",
            "description": "Only notices where the buyer marked at least one lot as suitable for SMEs.",
            "default": false
          },
          "collapseRepublished": {
            "title": "One row per procedure",
            "type": "boolean",
            "description": "Buyers often republish the same procedure (corrections, re-launches). Keep only the newest notice per procedure and stage. Turn off to get every notice.",
            "default": true
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum number of notices to save (newest first). You are charged per saved notice.",
            "default": 200
          },
          "onlyNewSinceLastRun": {
            "title": "Monitor mode: only new notices",
            "type": "boolean",
            "description": "Remember notices returned in previous runs (per 'Monitor key') and return only ones you have not seen. Schedule the Actor daily for a new-tender alert feed.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key",
            "type": "string",
            "description": "Name of this saved search for monitor mode. Use a different key for each search you schedule.",
            "default": "default"
          },
          "includeBuyerContacts": {
            "title": "Include buyer contact email",
            "type": "boolean",
            "description": "Add the buyer's published contact email. It can name a person; you are responsible for GDPR-compliant use.",
            "default": false
          },
          "expertQuery": {
            "title": "TED expert query (advanced)",
            "type": "string",
            "description": "Optional extra condition in TED's expert search syntax, combined with AND, e.g. procedure-type=open or total-value>=1000000. See the TED help pages."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}