{
  "openapi": "3.0.1",
  "info": {
    "title": "Prozorro & TED Tenders Scraper - Ukraine & EU",
    "description": "Open public tenders from Ukraine (Prozorro) and all of the EU (TED) in one English dataset: CPV sector presets, values in EUR, documents, AI summaries and a monitoring mode that returns only new and changed tenders.",
    "version": "1.0",
    "x-build-id": "qyF9zQxOmrey7SbKh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tiger19935~prozorro-ted-tenders-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tiger19935-prozorro-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/tiger19935~prozorro-ted-tenders-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tiger19935-prozorro-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/tiger19935~prozorro-ted-tenders-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tiger19935-prozorro-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": {
          "sources": {
            "title": "Sources",
            "minItems": 1,
            "type": "array",
            "description": "TED = the official journal of EU public procurement (all EU/EEA countries plus EU-funded tenders worldwide, incl. Ukraine). Prozorro = Ukraine's national e-procurement system.",
            "items": {
              "type": "string",
              "enum": [
                "ted",
                "prozorro"
              ],
              "enumTitles": [
                "TED - Tenders Electronic Daily (EU)",
                "Prozorro (Ukraine)"
              ]
            },
            "default": [
              "ted",
              "prozorro"
            ]
          },
          "sectors": {
            "title": "Sectors",
            "type": "array",
            "description": "Ready-made CPV groups. Combined with 'CPV codes' below. Leave both empty to get all sectors.",
            "items": {
              "type": "string",
              "enum": [
                "reconstruction",
                "energy",
                "it",
                "medical",
                "transport",
                "water",
                "defence"
              ],
              "enumTitles": [
                "Reconstruction & construction (CPV 45, 71, 44)",
                "Energy (CPV 09, 31, 4531, 65)",
                "IT & software (CPV 72, 48, 302)",
                "Medical equipment & health (CPV 33, 85)",
                "Transport, roads & vehicles (CPV 34, 60, 4523)",
                "Water & waste (CPV 41, 4524, 6510, 90)",
                "Defence & security equipment (CPV 35)"
              ]
            },
            "default": []
          },
          "cpvPrefixes": {
            "title": "CPV codes",
            "type": "array",
            "description": "Your own CPV codes or prefixes (2-8 digits). \"45\" = all construction, \"4531\" = electrical installation, \"72000000\" = IT services. Sub-codes are included automatically.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "maxItems": 10,
            "type": "array",
            "description": "Optional full-text keywords (any of them matches), up to 10. Use the notice language for best results, e.g. \"solar\", \"Photovoltaik\", \"сонячн\", \"дах\".",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "buyerCountries": {
            "title": "Buyer countries",
            "type": "array",
            "description": "3-letter ISO codes of the buyer's country, e.g. UKR, POL, DEU, ROU. Leave empty for all. Prozorro is used only when UKR is included (or the list is empty).",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minValueEur": {
            "title": "Minimum estimated value (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip tenders below this value (converted to EUR with official National Bank of Ukraine rates). Tenders without a published value are skipped when this is set."
          },
          "publishedWithinDays": {
            "title": "Published within (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Only tenders published in the last N days.",
            "default": 7
          },
          "onlyOpen": {
            "title": "Only tenders open for bids",
            "type": "boolean",
            "description": "Keep only calls for competition whose submission deadline has not passed. Turn off to include closed and awarded procedures.",
            "default": true
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "all",
              "newSinceLastRun"
            ],
            "type": "string",
            "description": "'All matching' returns every matching tender. 'New since last run' returns only tenders that are new or changed (value, deadline, status or title) since the previous run with the same filters.",
            "default": "all"
          },
          "stateKey": {
            "title": "Monitor name (optional)",
            "pattern": "^[a-zA-Z0-9-]{1,40}$",
            "type": "string",
            "description": "Name for the monitoring memory, e.g. \"solar-poland\". Runs with the same name share it. Leave empty to derive it from the filters. Letters, digits and '-' only."
          },
          "digestWebhookUrl": {
            "title": "Digest webhook URL (Slack, Discord, Teams, Make, Zapier, n8n)",
            "type": "string",
            "description": "After each run, post a short digest of the found tenders here. Slack/Discord/Teams URLs get a native message; other URLs receive JSON with the items. Stored encrypted. Must start with https://."
          },
          "aiSummary": {
            "title": "English AI summary for non-English notices",
            "type": "boolean",
            "description": "Adds a 2-3 sentence English summary (and English title) to tenders that have no official English text, e.g. Prozorro tenders. Billed per summary unless you use your own OpenAI key.",
            "default": false
          },
          "openaiApiKey": {
            "title": "Your OpenAI API key (optional)",
            "type": "string",
            "description": "Use your own key - AI summaries are then not billed by this Actor. Works with OpenAI or any OpenAI-compatible provider (set the endpoint below). Leave empty to use the built-in AI."
          },
          "aiModel": {
            "title": "AI model",
            "type": "string",
            "description": "Model used with your own API key (default: gpt-4o-mini). The built-in AI always uses its own model."
          },
          "aiBaseUrl": {
            "title": "Your AI endpoint (optional)",
            "type": "string",
            "description": "OpenAI-compatible base URL for your own key, e.g. https://openrouter.ai/api/v1. Default: https://api.openai.com/v1."
          },
          "includeDocuments": {
            "title": "Include tender documents (Prozorro)",
            "type": "boolean",
            "description": "Add links to tender documentation files (up to 25 per tender).",
            "default": true
          },
          "maxItems": {
            "title": "Max tenders",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of tenders per run (newest first). You pay only for tenders you receive.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}