{
  "openapi": "3.0.1",
  "info": {
    "title": "Govt Tender Monitoring",
    "description": "Discover, filter, and monitor European government tenders using the official EU TED API. Search procurement opportunities by keywords, countries, CPV codes, and deadlines. Includes IT tender relevance scoring, change detection, and structured JSON/CSV exports.",
    "version": "0.0",
    "x-build-id": "j2o2CRMCthCLdsySn"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/musa_vertex_studio~Govt-Tender-Monitoring/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-musa_vertex_studio-Govt-Tender-Monitoring",
        "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/musa_vertex_studio~Govt-Tender-Monitoring/runs": {
      "post": {
        "operationId": "runs-sync-musa_vertex_studio-Govt-Tender-Monitoring",
        "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/musa_vertex_studio~Govt-Tender-Monitoring/run-sync": {
      "post": {
        "operationId": "run-sync-musa_vertex_studio-Govt-Tender-Monitoring",
        "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": [
          "maxItems"
        ],
        "properties": {
          "keywords": {
            "title": "Search Keywords",
            "type": "array",
            "description": "Arbitrary search keywords to match in tender titles and descriptions across any sector (e.g. 'software', 'cloud', 'hospital equipment', 'solar panels', 'road construction', 'consulting'). Leave empty to match all notices.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywordMatchMode": {
            "title": "Keyword Match Mode",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "Matching logic when multiple keywords are specified: 'any' (OR - matches notices containing at least one keyword) or 'all' (AND - matches notices containing all specified keywords).",
            "default": "any"
          },
          "keywordSearchScope": {
            "title": "Keyword Search Scope",
            "enum": [
              "title_and_description",
              "title",
              "full_text"
            ],
            "type": "string",
            "description": "Fields in the TED notice to query for keywords: 'title_and_description' (searches notice titles and descriptions), 'title' (searches notice titles only), or 'full_text' (searches full notice text).",
            "default": "title_and_description"
          },
          "strictRelevanceFilter": {
            "title": "Strict Relevance Filter",
            "type": "boolean",
            "description": "When enabled, drops any notice whose title, description, or CPV codes do not directly match user-specified keywords or CPV criteria, eliminating spurious full-text matches.",
            "default": false
          },
          "countries": {
            "title": "Target Countries",
            "type": "array",
            "description": "Select one or more countries to search. Displayed with readable names and submitted as ISO alpha-3 codes. Leave empty to search 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",
                "ISL",
                "LIE",
                "NOR",
                "CHE",
                "GBR",
                "UKR"
              ],
              "enumTitles": [
                "Austria (AUT)",
                "Belgium (BEL)",
                "Bulgaria (BGR)",
                "Croatia (HRV)",
                "Cyprus (CYP)",
                "Czechia (CZE)",
                "Denmark (DNK)",
                "Estonia (EST)",
                "Finland (FIN)",
                "France (FRA)",
                "Germany (DEU)",
                "Greece (GRC)",
                "Hungary (HUN)",
                "Ireland (IRL)",
                "Italy (ITA)",
                "Latvia (LVA)",
                "Lithuania (LTU)",
                "Luxembourg (LUX)",
                "Malta (MLT)",
                "Netherlands (NLD)",
                "Poland (POL)",
                "Portugal (PRT)",
                "Romania (ROU)",
                "Slovakia (SVK)",
                "Slovenia (SVN)",
                "Spain (ESP)",
                "Sweden (SWE)",
                "Iceland (ISL)",
                "Liechtenstein (LIE)",
                "Norway (NOR)",
                "Switzerland (CHE)",
                "United Kingdom (GBR)",
                "Ukraine (UKR)"
              ]
            },
            "default": []
          },
          "cpvCodes": {
            "title": "CPV Codes",
            "type": "array",
            "description": "Common Procurement Vocabulary codes to filter by sector (e.g. 72000000 for IT, 45000000 for Construction, 85000000 for Healthcare, 80000000 for Education, 71000000 for Engineering). Leave empty to search all sectors.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchScope": {
            "title": "TED Search Scope",
            "enum": [
              "active",
              "recent",
              "all"
            ],
            "type": "string",
            "description": "TED database search scope: 'active' (currently open tenders), 'recent' (recently published notices), or 'all' (full historical archive).",
            "default": "active"
          },
          "sortOrder": {
            "title": "Sort Order",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Publication date sort direction: 'desc' (newest first, recommended) or 'asc' (oldest first).",
            "default": "desc"
          },
          "scoringProfile": {
            "title": "Relevance Scoring Profile",
            "enum": [
              "general",
              "it",
              "none"
            ],
            "type": "string",
            "description": "Relevance evaluation profile. 'general' assesses qualification neutrally across any procurement sector without IT bias. 'it' applies IT-specific CPV rules. 'none' gives full qualification score to all notices.",
            "default": "general"
          },
          "publicationDateFrom": {
            "title": "Published From Date",
            "type": "string",
            "description": "Earliest notice publication date in YYYY-MM-DD format (e.g., 2024-01-01)."
          },
          "publicationDateTo": {
            "title": "Published To Date",
            "type": "string",
            "description": "Latest notice publication date in YYYY-MM-DD format (e.g., 2026-12-31)."
          },
          "onlyOpen": {
            "title": "Only Open Notices",
            "type": "boolean",
            "description": "If enabled, only notices with future submission deadlines are returned.",
            "default": true
          },
          "includeUnknownDeadlines": {
            "title": "Include Unknown Deadlines When onlyOpen=True",
            "type": "boolean",
            "description": "When onlyOpen is true, specifies whether notices lacking a known submission deadline should be retained (true) or excluded (false).",
            "default": false
          },
          "maxItems": {
            "title": "Maximum Results",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum number of tender records to return (1 to 1000).",
            "default": 50
          },
          "maxNoticesScanned": {
            "title": "Maximum Notices Scanned",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of raw notices to scan across pages when filtering for eligible or new tenders (1 to 5000). Prevents excessive API usage when few notices match criteria.",
            "default": 250
          },
          "language": {
            "title": "Preferred Language",
            "type": "string",
            "description": "Preferred ISO language code for titles and descriptions (e.g., 'en', 'de', 'fr', 'es'). Default is 'en'.",
            "default": "en"
          },
          "companyServices": {
            "title": "Company Capabilities / Services",
            "type": "array",
            "description": "List of services or capabilities provided by your company (e.g., 'civil engineering', 'medical supplies', 'cloud architecture'). Used to calculate match relevance.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "preferredCountries": {
            "title": "Preferred Countries",
            "type": "array",
            "description": "Countries where your company actively bids or prefers to deliver services. Displayed with readable names.",
            "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",
                "ISL",
                "LIE",
                "NOR",
                "CHE",
                "GBR",
                "UKR"
              ],
              "enumTitles": [
                "Austria (AUT)",
                "Belgium (BEL)",
                "Bulgaria (BGR)",
                "Croatia (HRV)",
                "Cyprus (CYP)",
                "Czechia (CZE)",
                "Denmark (DNK)",
                "Estonia (EST)",
                "Finland (FIN)",
                "France (FRA)",
                "Germany (DEU)",
                "Greece (GRC)",
                "Hungary (HUN)",
                "Ireland (IRL)",
                "Italy (ITA)",
                "Latvia (LVA)",
                "Lithuania (LTU)",
                "Luxembourg (LUX)",
                "Malta (MLT)",
                "Netherlands (NLD)",
                "Poland (POL)",
                "Portugal (PRT)",
                "Romania (ROU)",
                "Slovakia (SVK)",
                "Slovenia (SVN)",
                "Spain (ESP)",
                "Sweden (SWE)",
                "Iceland (ISL)",
                "Liechtenstein (LIE)",
                "Norway (NOR)",
                "Switzerland (CHE)",
                "United Kingdom (GBR)",
                "Ukraine (UKR)"
              ]
            },
            "default": []
          },
          "minimumContractValue": {
            "title": "Minimum Contract Value",
            "type": "number",
            "description": "Minimum contract value in notice currency (e.g. 50000). Notices with lower specified value will be penalized or filtered."
          },
          "maximumContractValue": {
            "title": "Maximum Contract Value",
            "type": "number",
            "description": "Maximum contract value in notice currency (e.g. 5000000). Notices exceeding this will be penalized or filtered."
          },
          "minimumDaysRemaining": {
            "title": "Minimum Days Remaining",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum days remaining before the submission deadline. Tenders with fewer days are flagged or filtered.",
            "default": 7
          },
          "minimumRelevanceScore": {
            "title": "Minimum Relevance Score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Filter out notices whose calculated relevance score is below this threshold (0 to 100).",
            "default": 0
          },
          "monitoringEnabled": {
            "title": "Enable Persistent Monitoring",
            "type": "boolean",
            "description": "Track notices across scheduled runs using Apify key-value store to identify NEW, UPDATED, and UNCHANGED tenders.",
            "default": false
          },
          "onlyNew": {
            "title": "Deliver Only New Notices",
            "type": "boolean",
            "description": "When monitoring is enabled, exclude previously delivered unchanged notices.",
            "default": false
          },
          "includeUpdated": {
            "title": "Include Updated Notices",
            "type": "boolean",
            "description": "When monitoring is enabled, include notices that changed since the last run (e.g. amended deadlines, revised values).",
            "default": true
          },
          "stateName": {
            "title": "Monitoring State Identifier",
            "type": "string",
            "description": "Optional custom name for the persistent state store. Useful for running multiple independent search profiles."
          },
          "debug": {
            "title": "Debug Mode",
            "type": "boolean",
            "description": "Enable verbose logging for debugging and diagnostics.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}