{
  "openapi": "3.0.1",
  "info": {
    "title": "EU TED Tenders & Public Procurement Scraper",
    "description": "Extract EU public procurement notices from TED (Tenders Electronic Daily). Get notice title, buyer name and country, winning supplier, contract value, CPV codes, deadline and place across 27 EU states plus EEA and UK. Export to JSON, CSV or Excel.",
    "version": "0.1",
    "x-build-id": "OImotms9p24jQv9Ys"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapers_lat~eu-ted-tenders-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapers_lat-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/scrapers_lat~eu-ted-tenders-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapers_lat-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/scrapers_lat~eu-ted-tenders-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapers_lat-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": {
          "maxTenders": {
            "title": "Max Tenders",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of procurement notices (tenders) to collect across all matching filters. Optional."
          },
          "publicationDateFrom": {
            "title": "Published From (YYYY-MM-DD)",
            "type": "string",
            "description": "Only include notices published on or after this date, format YYYY-MM-DD, for example '2026-06-01'. If left empty, the scraper defaults to the last 7 days."
          },
          "publicationDateTo": {
            "title": "Published To (YYYY-MM-DD)",
            "type": "string",
            "description": "Only include notices published on or before this date, format YYYY-MM-DD, for example '2026-06-27'. If left empty, the scraper uses today."
          },
          "buyerCountry": {
            "title": "Buyer Country",
            "type": "array",
            "description": "Filter by the country of the contracting authority (buyer). Select one or more EU, EEA or partner countries. Leave empty for all countries.",
            "items": {
              "type": "string",
              "enum": [
                "AUT",
                "BEL",
                "BGR",
                "HRV",
                "CYP",
                "CZE",
                "DNK",
                "EST",
                "FIN",
                "FRA",
                "DEU",
                "GRC",
                "HUN",
                "IRL",
                "ITA",
                "LVA",
                "LTU",
                "LUX",
                "MLT",
                "NLD",
                "POL",
                "PRT",
                "ROU",
                "SVK",
                "SVN",
                "ESP",
                "SWE",
                "NOR",
                "ISL",
                "LIE",
                "CHE",
                "GBR"
              ],
              "enumTitles": [
                "Austria",
                "Belgium",
                "Bulgaria",
                "Croatia",
                "Cyprus",
                "Czechia",
                "Denmark",
                "Estonia",
                "Finland",
                "France",
                "Germany",
                "Greece",
                "Hungary",
                "Ireland",
                "Italy",
                "Latvia",
                "Lithuania",
                "Luxembourg",
                "Malta",
                "Netherlands",
                "Poland",
                "Portugal",
                "Romania",
                "Slovakia",
                "Slovenia",
                "Spain",
                "Sweden",
                "Norway",
                "Iceland",
                "Liechtenstein",
                "Switzerland",
                "United Kingdom"
              ]
            }
          },
          "cpvCodes": {
            "title": "CPV Codes",
            "type": "string",
            "description": "Filter by Common Procurement Vocabulary (CPV) codes, comma-separated, for example '45000000, 72000000'. 45000000 is construction work, 72000000 is IT services, 33000000 is medical equipment, 79000000 is business services."
          },
          "noticeType": {
            "title": "Notice Type",
            "type": "array",
            "description": "Filter by the type of notice. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "cn-standard",
                "cn-social",
                "cn-desg",
                "can-standard",
                "can-modif",
                "pin-only",
                "pin-buyer",
                "pin-cfc-standard",
                "veat",
                "qu-sy"
              ],
              "enumTitles": [
                "Contract notice",
                "Contract notice (social/special)",
                "Design contest notice",
                "Contract award notice",
                "Award modification notice",
                "Prior information notice",
                "Buyer profile notice",
                "Call for competition (PIN)",
                "Voluntary ex-ante transparency notice",
                "Qualification system notice"
              ]
            }
          },
          "procedureType": {
            "title": "Procedure Type",
            "type": "array",
            "description": "Filter by the procurement procedure type. Leave empty for all procedures.",
            "items": {
              "type": "string",
              "enum": [
                "open",
                "restricted",
                "comp-dial",
                "comp-tend",
                "innovation",
                "neg-w-call",
                "neg-wo-call",
                "oth-single",
                "oth-mult"
              ],
              "enumTitles": [
                "Open procedure",
                "Restricted procedure",
                "Competitive dialogue",
                "Competitive tendering",
                "Innovation partnership",
                "Negotiated with prior call",
                "Negotiated without prior call",
                "Other (single stage)",
                "Other (multiple stage)"
              ]
            }
          },
          "freeText": {
            "title": "Free-text Search",
            "type": "string",
            "description": "Full-text keyword search across the notice content (title, description, buyer, supplier), for example 'solar panels' or 'hospital catering'. Optional."
          },
          "expertQuery": {
            "title": "Raw TED Expert Query",
            "type": "string",
            "description": "Advanced: provide a full TED expert search query and it overrides all the filters above, for example 'buyer-country IN (DEU) AND classification-cpv IN (45000000) AND publication-date>=20260101'. Leave empty to use the filters above."
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}