{
  "openapi": "3.0.1",
  "info": {
    "title": "EU Tenders (TED): Search & New-Tender Alerts",
    "description": "Search EU public tenders published on TED, the EU's official journal. Filter by keyword, CPV, country, value and open deadlines, or get only new tenders daily. Clean rows, official links.",
    "version": "0.1",
    "x-build-id": "P9v92ZYfq98xxaxne"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/stego-bot~ted-tenders/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-stego-bot-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/stego-bot~ted-tenders/runs": {
      "post": {
        "operationId": "runs-sync-stego-bot-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/stego-bot~ted-tenders/run-sync": {
      "post": {
        "operationId": "run-sync-stego-bot-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": "Words or phrases to search for in the full notice text (TED full-text search, which also covers the official English titles of notices in other languages). Leave empty to match everything.",
            "items": {
              "type": "string"
            }
          },
          "keywordMode": {
            "title": "Keyword matching",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "Match notices containing ANY of the keywords, or only notices containing ALL of them.",
            "default": "any"
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop notices whose text contains any of these words or phrases.",
            "items": {
              "type": "string"
            }
          },
          "noticeStages": {
            "title": "Notice stages",
            "type": "array",
            "description": "Which kinds of notices to return. Default: competition (open tenders). Add \"result\" to see who won.",
            "items": {
              "type": "string",
              "enum": [
                "competition",
                "planning",
                "result",
                "cont-modif",
                "dir-awa-pre",
                "consultation"
              ],
              "enumTitles": [
                "Tender (open calls for competition)",
                "Planning (prior information notices)",
                "Award (contract award notices)",
                "Contract modifications",
                "Direct award pre-announcements",
                "Preliminary market consultations"
              ]
            },
            "default": [
              "competition"
            ]
          },
          "cpvCodes": {
            "title": "CPV codes",
            "type": "array",
            "description": "CPV codes or prefixes. Trailing zeros mean the whole category: 72000000 (or 72) = all IT services, 45 = construction work, 33 = medical equipment. The check digit (72000000-5) is accepted. Matches main and additional CPV codes.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Buyer countries",
            "type": "array",
            "description": "Country of the buying organisation, as ISO codes: DE, FR, PL… (3-letter DEU, FRA, POL also work). Leave empty for all countries.",
            "items": {
              "type": "string"
            }
          },
          "nutsCodes": {
            "title": "Place of performance (NUTS)",
            "type": "array",
            "description": "NUTS region codes or prefixes for where the work is performed, e.g. DE1 (Baden-Württemberg), FR10 (Île-de-France), PL9.",
            "items": {
              "type": "string"
            }
          },
          "contractNature": {
            "title": "Contract type",
            "type": "array",
            "description": "Services, supplies and/or works. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "services",
                "supplies",
                "works"
              ],
              "enumTitles": [
                "Services",
                "Supplies",
                "Works"
              ]
            }
          },
          "postedWithinDays": {
            "title": "Published in the last N days",
            "minimum": 1,
            "maximum": 90,
            "type": "integer",
            "description": "Notices published in the last N days (1 = today only, in Brussels time). Ignored when \"Published from\" is set. TED publishes on working days only.",
            "default": 7
          },
          "postedFrom": {
            "title": "Published from",
            "type": "string",
            "description": "Exact start date (YYYY-MM-DD), at most 90 days ago."
          },
          "postedTo": {
            "title": "Published to",
            "type": "string",
            "description": "Exact end date (YYYY-MM-DD), inclusive."
          },
          "minValue": {
            "title": "Minimum value",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum estimated value (or awarded value for award notices), in the currency below. Values are as published, usually net of VAT."
          },
          "maxValue": {
            "title": "Maximum value",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum estimated or awarded value, in the currency below."
          },
          "valueCurrency": {
            "title": "Value currency",
            "type": "string",
            "description": "Currency of the value filter (3-letter code). Values are not converted: a notice in another currency (e.g. PLN, SEK) counts as \"unknown value\".",
            "default": "EUR"
          },
          "keepUnknownValue": {
            "title": "Keep notices with unknown value",
            "type": "boolean",
            "description": "When a value filter is set, keep notices with no published value or a value in another currency. Many notices publish no value.",
            "default": true
          },
          "onlyOpen": {
            "title": "Only open (deadline not passed)",
            "type": "boolean",
            "description": "Drop notices whose earliest tender deadline is before today. Notices without a deadline are kept.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new since last run (alerts)",
            "type": "boolean",
            "description": "Remember what was already returned and return only new notices. Use with a daily schedule. The first run saves a baseline and returns nothing (see below).",
            "default": false
          },
          "baselineOnFirstRun": {
            "title": "First run only saves a baseline",
            "type": "boolean",
            "description": "With alerts on, the first run (or the first run after you change filters) remembers the current notices from today and yesterday and returns nothing, so you are not charged for the backlog. Turn off to receive the backlog on the first run.",
            "default": true
          },
          "stateKey": {
            "title": "State key",
            "pattern": "^[A-Za-z0-9-]{0,100}$",
            "type": "string",
            "description": "Name for this alert (letters, digits and \"-\"), e.g. \"it-services-germany\". Use a different key per saved search. Leave empty to derive one from the filters."
          },
          "stateStoreName": {
            "title": "State store name",
            "type": "string",
            "description": "Named key-value store where alert state is kept (lowercase letters, digits, \"-\").",
            "default": "ted-tenders-state"
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of notices to return (1-10,000), newest first. With alerts on, matches over this limit are kept for the next run.",
            "default": 100
          },
          "descriptionMaxLength": {
            "title": "Description max length",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Truncate descriptions to this many characters (0 = omit descriptions).",
            "default": 1000
          },
          "includeContacts": {
            "title": "Include buyer contact emails (may be personal data)",
            "type": "boolean",
            "description": "Add the buyer contact email addresses published in the notice. Some identify individuals (personal data under the GDPR): only enable if you need them to respond to the procurement, and handle them lawfully. Off by default.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}