{
  "openapi": "3.0.1",
  "info": {
    "title": "TED EU Tenders API: Notices, CPV, Buyers, Deadlines",
    "description": "EU public tenders from TED (official API): title in your language, buyer, country, CPV, deadline, estimated and awarded value in EUR, winners, PDF link. Filter by country, CPV, keyword, notice type, dates, value. onlyNew alerts. No API key, no login. MCP-ready. Pay per result. $1 per 1,000 notices",
    "version": "0.1",
    "x-build-id": "rdZUYUI9OmMeuc1J5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/actose~ted-eu-tenders/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-actose-ted-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/actose~ted-eu-tenders/runs": {
      "post": {
        "operationId": "runs-sync-actose-ted-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/actose~ted-eu-tenders/run-sync": {
      "post": {
        "operationId": "run-sync-actose-ted-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": {
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Buyer countries, as ISO codes (\"FR\", \"DE\", \"ESP\") or English names (\"Poland\"). Empty = all countries. Several countries are combined with OR.",
            "items": {
              "type": "string"
            }
          },
          "countryField": {
            "title": "Country applies to",
            "enum": [
              "buyer",
              "placeOfPerformance"
            ],
            "type": "string",
            "description": "Match the country of the buyer (default) or the place where the contract is performed.",
            "default": "buyer"
          },
          "cpvCodes": {
            "title": "CPV codes",
            "type": "array",
            "description": "Common Procurement Vocabulary codes (8 digits, e.g. \"72000000\" IT services). A parent code also returns its sub-codes. Several codes are combined with OR.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Full-text search in the notice (all languages of the notice). Several keywords are combined with OR unless 'Keywords match' is set to all.",
            "items": {
              "type": "string"
            }
          },
          "keywordsMatch": {
            "title": "Keywords match",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "Return notices containing any of the keywords, or all of them.",
            "default": "any"
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop notices containing any of these words.",
            "items": {
              "type": "string"
            }
          },
          "noticeTypes": {
            "title": "Notice types",
            "type": "array",
            "description": "competition (calls for tenders), result (contract awards), planning (prior information), change (corrigenda), dir-awa-pre (direct award pre-notification), cont-modif (contract modification), or an exact eForms subtype such as cn-standard, can-standard, pin-only. Empty = all types.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language of the fields",
            "enum": [
              "en",
              "fr",
              "de",
              "es",
              "it",
              "pl",
              "nl",
              "pt",
              "ro",
              "cs",
              "sk",
              "sv",
              "da",
              "fi",
              "el",
              "hu",
              "bg",
              "hr",
              "sl",
              "et",
              "lv",
              "lt",
              "mt",
              "ga",
              "original"
            ],
            "type": "string",
            "description": "Language of the title, buyer name and description (2-letter EU code). Titles exist in every EU language; other texts fall back to the notice's own language when no translation exists. 'original' = the language of the notice.",
            "default": "en"
          },
          "publishedWithinDays": {
            "title": "Published within the last N days",
            "minimum": 1,
            "type": "integer",
            "description": "Shortcut for 'Published from'. Ignored when 'Published from' is set."
          },
          "publishedFrom": {
            "title": "Published from",
            "type": "string",
            "description": "Earliest publication date: YYYY-MM-DD or relative (\"7 days\", \"2 weeks\")."
          },
          "publishedTo": {
            "title": "Published to",
            "type": "string",
            "description": "Latest publication date: YYYY-MM-DD or relative."
          },
          "deadlineFrom": {
            "title": "Tender deadline from",
            "type": "string",
            "description": "Only notices whose tender submission deadline is on or after this date (YYYY-MM-DD or \"+7 days\")."
          },
          "deadlineTo": {
            "title": "Tender deadline to",
            "type": "string",
            "description": "Only notices whose tender submission deadline is on or before this date (YYYY-MM-DD or \"+1 month\")."
          },
          "onlyOpen": {
            "title": "Only open calls (deadline not passed)",
            "type": "boolean",
            "description": "Keep only notices whose tender deadline is today or later.",
            "default": false
          },
          "minValueEur": {
            "title": "Minimum value (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum estimated (or awarded) value in euros. Non-euro amounts are converted with an approximate rate. Notices without any value are dropped unless 'Keep notices without value' is on."
          },
          "maxValueEur": {
            "title": "Maximum value (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum estimated (or awarded) value in euros."
          },
          "includeNoValue": {
            "title": "Keep notices without value",
            "type": "boolean",
            "description": "With a value filter, also keep notices that publish no value (more than half of TED notices).",
            "default": false
          },
          "maxResults": {
            "title": "Maximum notices",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of notices to return (newest first). Each notice is one paid event.",
            "default": 100
          },
          "onlyNew": {
            "title": "Only new notices since the last run",
            "type": "boolean",
            "description": "For scheduled runs: remembers the notices already delivered for these filters (in a named key-value store) and returns only new ones. Nothing is charged when there is nothing new.",
            "default": false
          },
          "scope": {
            "title": "Search scope",
            "enum": [
              "ALL",
              "ACTIVE",
              "LATEST"
            ],
            "type": "string",
            "description": "ALL = full archive, ACTIVE = notices still active on TED, LATEST = only the latest Official Journal issue.",
            "default": "ALL"
          },
          "expertQuery": {
            "title": "Expert query (advanced)",
            "type": "string",
            "description": "Optional extra TED expert-search clause added with AND, e.g. procedure-type IN (open) or buyer-city=Lyon. See the TED expert search help."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}