{
  "openapi": "3.0.1",
  "info": {
    "title": "Government Tenders & Procurement Tracker (EU, UK, Ukraine)",
    "description": "Track public tenders across Europe — one tender per row with buyer, deadline, contract value, category codes and awarded supplier. Covers EU (all member states), UK Contracts Finder and Ukraine, in one common format. Public data, no account needed.",
    "version": "0.1",
    "x-build-id": "auaPB2RqIRq8aGlG9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/xtracto~gov-tenders-ocds/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-xtracto-gov-tenders-ocds",
        "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/xtracto~gov-tenders-ocds/runs": {
      "post": {
        "operationId": "runs-sync-xtracto-gov-tenders-ocds",
        "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/xtracto~gov-tenders-ocds/run-sync": {
      "post": {
        "operationId": "run-sync-xtracto-gov-tenders-ocds",
        "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": [
          "source"
        ],
        "properties": {
          "source": {
            "title": "Source",
            "enum": [
              "ted",
              "ukContractsFinder",
              "prozorro",
              "all"
            ],
            "type": "string",
            "description": "Which public procurement register to pull from. 'All sources' runs every register in one go and returns them in the same record shape.",
            "default": "ted"
          },
          "publishedFrom": {
            "title": "Published from (YYYY-MM-DD)",
            "type": "string",
            "description": "Earliest publication date to include. Leave empty to use the last 7 days. Applies to the EU and UK registers; the Ukraine register always returns the most recent tenders first.",
            "default": ""
          },
          "publishedTo": {
            "title": "Published to (YYYY-MM-DD)",
            "type": "string",
            "description": "Latest publication date to include. Leave empty to use today. Applies to the EU and UK registers.",
            "default": ""
          },
          "cpvCodes": {
            "title": "EU — category codes (CPV)",
            "type": "string",
            "description": "EU only. One or more Common Procurement Vocabulary codes, comma-separated, e.g. '72000000' (IT services) or '45000000,71000000' (construction, architecture). Leave empty for every category.",
            "default": ""
          },
          "buyerCountries": {
            "title": "EU — buyer countries (3-letter codes)",
            "type": "string",
            "description": "EU only. One or more 3-letter country codes of the buying organisation, comma-separated, e.g. 'DEU' or 'DEU,FRA,ITA'. Leave empty for every country.",
            "default": ""
          },
          "keyword": {
            "title": "EU — keyword",
            "type": "string",
            "description": "EU only. Free-text search across the whole notice, e.g. 'cyber security'. Leave empty to skip keyword filtering.",
            "default": ""
          },
          "contractNature": {
            "title": "EU — contract type",
            "enum": [
              "",
              "works",
              "supplies",
              "services"
            ],
            "type": "string",
            "description": "EU only. Restrict to works, supplies or services contracts. 'Any' returns all three.",
            "default": ""
          },
          "tedQuery": {
            "title": "EU — advanced query (overrides the EU filters above)",
            "type": "string",
            "description": "EU only, optional. Write your own expert query and every EU filter above is ignored, e.g. 'classification-cpv=45000000 AND buyer-country=DEU AND publication-date>=today(-7)'. Leave empty to use the simple filters.",
            "default": ""
          },
          "ukStage": {
            "title": "UK — notice stage",
            "enum": [
              "",
              "planning",
              "tender",
              "award",
              "implementation"
            ],
            "type": "string",
            "description": "UK only. Restrict to one stage of the contracting process. 'Any' returns all stages.",
            "default": ""
          },
          "language": {
            "title": "Preferred language for EU titles and names",
            "enum": [
              "eng",
              "fra",
              "deu",
              "spa",
              "ita",
              "nld",
              "pol",
              "por",
              "swe",
              "ron"
            ],
            "type": "string",
            "description": "EU notices carry titles and buyer names in up to 24 languages. Pick the one you want in the title and buyer columns; if a notice has no version in that language the actor falls back to English, then to whatever is available.",
            "default": "eng"
          },
          "maxItems": {
            "title": "Max tenders per source",
            "minimum": 0,
            "type": "integer",
            "description": "How many tenders to return from each selected source (0 = every match, which can be tens of thousands — use a narrow date window if you do that).",
            "default": 200
          },
          "maxConcurrency": {
            "title": "Parallel requests (Ukraine source)",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "How many Ukrainian tender detail pages to collect at the same time. Higher is faster; lower is gentler on the register.",
            "default": 6
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Optional. These are open government registers, so no proxy is needed — leave it off unless your network requires one.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}