{
  "openapi": "3.0.1",
  "info": {
    "title": "EU TED Tenders Scraper (Official API, Pay-Per-Event)",
    "description": "Scrapes and filters real-time public procurement notices from the European Union official TED API (Tenders Electronic Daily). Filter by CPV, country, keywords, publication date, and value. Fast JSON output with direct PDF links and MCP support.",
    "version": "1.0",
    "x-build-id": "IdpeP5R4h0OBpDQdm"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/devetty~eu-ted-tenders-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-devetty-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/devetty~eu-ted-tenders-scraper/runs": {
      "post": {
        "operationId": "runs-sync-devetty-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/devetty~eu-ted-tenders-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-devetty-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 / Search Terms",
            "type": "string",
            "description": "Keywords to search across notice titles and full tender text (e.g., 'software development', 'cloud', 'cybersecurity', 'medical devices').",
            "default": ""
          },
          "cpv": {
            "title": "CPV Division / Code Prefix",
            "type": "string",
            "description": "Common Procurement Vocabulary (CPV) division or code prefix. Examples: '72' for IT Services & Software, '45' for Construction, '71' for Architectural & Engineering services, '33' for Medical equipment, '79' for Business services.",
            "default": ""
          },
          "countries": {
            "title": "Country Codes (EU & EEA)",
            "type": "array",
            "description": "List of country codes for contracting body or place of performance. Supports 2-letter (e.g., 'DE', 'FR', 'ES', 'IT') or 3-letter ISO codes (e.g., 'DEU', 'FRA', 'ESP', 'ITA').",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "publication_date_from": {
            "title": "Publication Date From",
            "type": "string",
            "description": "Minimum publication date (YYYY-MM-DD, e.g. '2026-10-01' or 'today(-14)'). Defaults to the last 14 days if omitted.",
            "default": ""
          },
          "publication_date_to": {
            "title": "Publication Date To",
            "type": "string",
            "description": "Maximum publication date (YYYY-MM-DD, e.g. '2026-10-31').",
            "default": ""
          },
          "min_amount": {
            "title": "Minimum Budget / Total Value (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum estimated or total value in EUR. Enter 0 to include all values.",
            "default": 0
          },
          "max_amount": {
            "title": "Maximum Budget / Total Value (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum estimated value in EUR (useful for SME-sized contract discovery). Enter 0 for no upper limit.",
            "default": 0
          },
          "notice_types": {
            "title": "Notice Types",
            "type": "array",
            "description": "Types of notices to retrieve. 'cn-standard' = Contract notice (active call for bids), 'can-standard' = Contract award notice, 'pin-buyer' = Prior information.",
            "items": {
              "type": "string"
            },
            "default": [
              "cn-standard"
            ]
          },
          "only_future_deadlines": {
            "title": "Only Active Future Deadlines",
            "type": "boolean",
            "description": "Filter out tenders whose bid submission deadline has already elapsed.",
            "default": true
          },
          "language": {
            "title": "Preferred Language",
            "enum": [
              "en",
              "es",
              "de",
              "fr",
              "it"
            ],
            "type": "string",
            "description": "Preferred language for titles and official PDF/HTML notice links (e.g., 'en', 'es', 'de', 'fr', 'it').",
            "default": "en"
          },
          "maxItems": {
            "title": "Maximum Results (maxItems)",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Maximum number of matching EU tenders to output in the dataset.",
            "default": 50
          },
          "max_runtime_secs": {
            "title": "Maximum Run Time (seconds)",
            "minimum": 30,
            "type": "integer",
            "description": "Execution safety threshold. The scraper returns accumulated results gracefully before hitting platform timeouts.",
            "default": 300
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}