{
  "openapi": "3.0.1",
  "info": {
    "title": "TED EU Tender Crawler",
    "description": "Search Europe's official TED database for public procurement opportunities. Find relevant tenders across all EU countries with smart filtering, industry templates, and intelligent scoring to match your business needs. Updated with new 3-character ISO codes.",
    "version": "1.3",
    "x-build-id": "yRc1hxolSIFBNTGbW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/stagsz~ted-tender-crawler/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-stagsz-ted-tender-crawler",
        "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/stagsz~ted-tender-crawler/runs": {
      "post": {
        "operationId": "runs-sync-stagsz-ted-tender-crawler",
        "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/stagsz~ted-tender-crawler/run-sync": {
      "post": {
        "operationId": "run-sync-stagsz-ted-tender-crawler",
        "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",
        "required": [
          "searchKeywords",
          "countries",
          "yearFrom",
          "yearTo"
        ],
        "properties": {
          "searchKeywords": {
            "title": "Search Keywords",
            "type": "array",
            "description": "Keywords to search for in tender titles and descriptions",
            "items": {
              "type": "string"
            },
            "default": [
              "software",
              "consulting",
              "IT services"
            ]
          },
          "cpvCodes": {
            "title": "CPV Codes (Any Category)",
            "type": "array",
            "description": "🎯 Enter ANY CPV codes to search: 71300000 (Engineering), 72000000 (IT), 45000000 (Construction), 33000000 (Medical), 80000000 (Education), etc. Leave empty to search by keywords only.",
            "items": {
              "type": "string",
              "pattern": "^[0-9]{8}$"
            },
            "default": []
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "ISO 3-character country codes to search in (e.g., DEU, FRA, ITA, ESP)",
            "items": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            },
            "default": [
              "DEU",
              "FRA",
              "ITA",
              "ESP",
              "NLD"
            ]
          },
          "yearFrom": {
            "title": "Year From",
            "minimum": 2020,
            "maximum": 2030,
            "type": "integer",
            "description": "Start year for publication date filter",
            "default": 2024
          },
          "yearTo": {
            "title": "Year To",
            "minimum": 2020,
            "maximum": 2030,
            "type": "integer",
            "description": "End year for publication date filter",
            "default": 2024
          },
          "activeOnly": {
            "title": "Active Tenders Only",
            "type": "boolean",
            "description": "Only return tenders that are still open for submission",
            "default": false
          },
          "minValue": {
            "title": "Minimum Contract Value (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum estimated contract value in EUR (optional)",
            "default": 0
          },
          "maxResults": {
            "title": "Maximum Results",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of tenders to return",
            "default": 100
          },
          "industryTemplate": {
            "title": "🏭 Industry Template (Quick Start)",
            "enum": [
              "custom",
              "it-software",
              "construction",
              "healthcare",
              "consulting",
              "engineering",
              "environmental",
              "education",
              "transportation",
              "energy"
            ],
            "type": "string",
            "description": "Choose a pre-configured template or 'custom' to use your own CPV codes and keywords. Templates include popular CPV codes for each industry.",
            "default": "custom"
          },
          "outputFormat": {
            "title": "Output Format",
            "enum": [
              "json",
              "csv",
              "excel"
            ],
            "type": "string",
            "description": "Format for the output data",
            "default": "json"
          },
          "includeDocuments": {
            "title": "Include Document Links",
            "type": "boolean",
            "description": "Include links to tender documents when available",
            "default": true
          },
          "scoringCriteria": {
            "title": "Scoring Criteria",
            "type": "object",
            "description": "Custom scoring weights for relevance calculation",
            "properties": {
              "keywordMatch": {
                "title": "Keyword Match Weight",
                "type": "integer",
                "description": "Weight percentage for keyword matching in relevance scoring (0-100)",
                "minimum": 0,
                "maximum": 100
              },
              "cpvMatch": {
                "title": "CPV Code Match Weight",
                "type": "integer",
                "description": "Weight percentage for CPV code matching in relevance scoring (0-100)",
                "minimum": 0,
                "maximum": 100
              },
              "countryMatch": {
                "title": "Country Preference Weight",
                "type": "integer",
                "description": "Weight percentage for country preference in relevance scoring (0-100)",
                "minimum": 0,
                "maximum": 100
              },
              "valueMatch": {
                "title": "Contract Value Weight",
                "type": "integer",
                "description": "Weight percentage for contract value matching in relevance scoring (0-100)",
                "minimum": 0,
                "maximum": 100
              }
            },
            "default": {
              "keywordMatch": 40,
              "cpvMatch": 30,
              "countryMatch": 20,
              "valueMatch": 10
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}