{
  "openapi": "3.0.1",
  "info": {
    "title": "Greek Public Tenders Monitor & Alerts",
    "description": "Get alerted when new Greek public tenders, contracts or awards match your criteria. Watches Diavgeia and KIMDIS, reports only what is new since the last run, and can email you.",
    "version": "0.1",
    "x-build-id": "en8yfYkbDP1cGB23W"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jimkarageo~greek-tenders-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jimkarageo-greek-tenders-monitor",
        "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/jimkarageo~greek-tenders-monitor/runs": {
      "post": {
        "operationId": "runs-sync-jimkarageo-greek-tenders-monitor",
        "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/jimkarageo~greek-tenders-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-jimkarageo-greek-tenders-monitor",
        "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": {
          "alertName": {
            "title": "Alert name / Όνομα ειδοποίησης",
            "type": "string",
            "description": "Names this alert and keeps its memory separate from your other alerts. Keep it the same between runs, or the alert forgets what it already reported. Use a different name to run a second, independent alert. | Ονομάζει την ειδοποίηση και κρατά τη μνήμη της ξεχωριστή. Κράτα το ίδιο μεταξύ εκτελέσεων, αλλιώς ξεχνά τι έχει ήδη στείλει.",
            "default": "Greek tenders alert"
          },
          "sources": {
            "title": "Sources / Πηγές",
            "uniqueItems": true,
            "type": "array",
            "description": "Which registries to watch. | Ποια μητρώα να παρακολουθεί.",
            "items": {
              "type": "string",
              "enum": [
                "kimdis",
                "diavgeia"
              ],
              "enumTitles": [
                "ΚΗΜΔΗΣ — public procurement registry",
                "Διαύγεια — government transparency portal"
              ]
            },
            "default": [
              "kimdis",
              "diavgeia"
            ]
          },
          "keywords": {
            "title": "Keywords / Λέξεις-κλειδιά",
            "uniqueItems": true,
            "type": "array",
            "description": "Words to match in the title or subject. Each entry is searched separately. IMPORTANT for Διαύγεια: it matches the exact word form with no stemming, so use the form that appears in Greek documents. | Λέξεις για αναζήτηση. ΠΡΟΣΟΧΗ στη Διαύγεια: ταιριάζει ακριβώς τη μορφή της λέξης, χωρίς λημματοποίηση.",
            "items": {
              "type": "string"
            }
          },
          "organization": {
            "title": "Contracting authority / Αναθέτουσα αρχή",
            "type": "string",
            "description": "Watch one public body only: its name, id, or 9-digit VAT number. Both registries use the same identifiers, so one name covers both. Leave empty to watch all of Greek government. | Παρακολούθηση ενός φορέα: όνομα, κωδικός ή ΑΦΜ. Κενό = όλο το δημόσιο."
          },
          "contractorVat": {
            "title": "Contractor VAT number / ΑΦΜ αναδόχου",
            "type": "string",
            "description": "Watch what one company wins. ΚΗΜΔΗΣ only — the Διαύγεια API cannot filter by contractor VAT. | Παρακολούθηση μιας εταιρείας. Μόνο ΚΗΜΔΗΣ."
          },
          "cpvCodes": {
            "title": "CPV codes / Κωδικοί CPV",
            "uniqueItems": true,
            "type": "array",
            "description": "Watch one procurement category, e.g. 30200000-1. ΚΗΜΔΗΣ only. | Παρακολούθηση κατηγορίας. Μόνο ΚΗΜΔΗΣ.",
            "items": {
              "type": "string"
            }
          },
          "minAmount": {
            "title": "Minimum amount (EUR) / Ελάχιστο ποσό (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Ignore anything smaller. For Διαύγεια, records with no amount in their metadata are skipped when this is set. | Αγνοεί μικρότερα ποσά."
          },
          "lookbackDays": {
            "title": "Look-back window (days) / Παράθυρο αναζήτησης (ημέρες)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "How far back each run searches. Keep it comfortably longer than the gap between runs, because public bodies publish with a delay — 7 days for a daily schedule is a safe default. Records already reported are never repeated. | Πόσο πίσω ψάχνει κάθε εκτέλεση. Κράτα το άνετα μεγαλύτερο από το διάστημα μεταξύ εκτελέσεων.",
            "default": 7
          },
          "emailTo": {
            "title": "Email to / Αποστολή email σε",
            "type": "string",
            "description": "Email address to notify when new records are found. Comma-separate several. Leave empty to get results in the dataset only. Quiet runs send nothing. | Διεύθυνση email για ειδοποίηση. Κενό = μόνο στο dataset."
          },
          "mockEmail": {
            "title": "Test mode: do not actually send / Δοκιμή χωρίς αποστολή",
            "type": "boolean",
            "description": "Build the email and log it without sending, so you can test the alert safely. | Φτιάχνει το email χωρίς να το στείλει, για ασφαλή δοκιμή.",
            "default": false
          },
          "kimdisRecordTypes": {
            "title": "ΚΗΜΔΗΣ record types / Τύποι εγγραφών ΚΗΜΔΗΣ",
            "uniqueItems": true,
            "type": "array",
            "description": "Which ΚΗΜΔΗΣ acts to watch. Default: contracts and tender notices. | Ποιες πράξεις ΚΗΜΔΗΣ. Προεπιλογή: συμβάσεις και προκηρύξεις.",
            "items": {
              "type": "string",
              "enum": [
                "contracts",
                "notices",
                "auctions",
                "payments",
                "requests"
              ],
              "enumTitles": [
                "Contracts (Συμβάσεις)",
                "Tender notices (Προκηρύξεις)",
                "Awards (Αναθέσεις)",
                "Payment orders (Εντολές πληρωμής)",
                "Requests (Αιτήματα)"
              ]
            },
            "default": [
              "contracts",
              "notices"
            ]
          },
          "diavgeiaDecisionTypes": {
            "title": "Διαύγεια decision types / Τύποι πράξεων Διαύγειας",
            "uniqueItems": true,
            "type": "array",
            "description": "Which Διαύγεια decisions to watch. Default: awards, tender notices and contract awards. | Ποιες πράξεις Διαύγειας. Προεπιλογή: αναθέσεις, διακηρύξεις, κατακυρώσεις.",
            "items": {
              "type": "string",
              "enum": [
                "awards",
                "tenders",
                "contract_awards",
                "contracts",
                "payments",
                "expense_approvals",
                "commitments",
                "grants"
              ],
              "enumTitles": [
                "Awards (Δ.1 Αναθέσεις)",
                "Tender notices (Δ.2.1 Διακηρύξεις)",
                "Contract awards (Δ.2.2 Κατακυρώσεις)",
                "Contracts (Γ.3.4 Συμβάσεις)",
                "Payments (Β.2.2 Πληρωμές)",
                "Expense approvals (Β.2.1 Εγκρίσεις δαπανών)",
                "Commitments (Β.1.3 Αναλήψεις υποχρέωσης)",
                "Grants (Β.4 Επιχορηγήσεις)"
              ]
            },
            "default": [
              "awards",
              "tenders",
              "contract_awards"
            ]
          },
          "maxResults": {
            "title": "Maximum new records per run / Μέγιστες νέες εγγραφές ανά εκτέλεση",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Safety cap so one very broad alert cannot report thousands at once. | Όριο ασφαλείας ανά εκτέλεση.",
            "default": 200
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}