{
  "openapi": "3.0.1",
  "info": {
    "title": "German Funding Radar – Förderprogramme & EU Calls + Fit Check",
    "description": "German funding programmes (Förderdatenbank, Bund & Länder) and open EU calls in one list – checked against your company profile: no exclusion criteria found / unclear / no, with reasons. Weekly watch: only new programmes.",
    "version": "0.1",
    "x-build-id": "iIzlqg4k1fcjeN8AA"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/previsa~german-funding-radar/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-previsa-german-funding-radar",
        "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/previsa~german-funding-radar/runs": {
      "post": {
        "operationId": "runs-sync-previsa-german-funding-radar",
        "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/previsa~german-funding-radar/run-sync": {
      "post": {
        "operationId": "run-sync-previsa-german-funding-radar",
        "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",
            "type": "array",
            "description": "\"de\" = German funding programmes (Förderdatenbank: federal government + 16 federal states), \"eu\" = open and forthcoming EU calls (EU Funding & Tenders Portal). Empty = both.",
            "items": {
              "type": "string"
            }
          },
          "companySize": {
            "title": "Your company size",
            "enum": [
              "micro",
              "small",
              "medium",
              "large"
            ],
            "type": "string",
            "description": "Optional. Used for the eligibility check (EU SME definition). Programmes that exclude your size are marked 'no'."
          },
          "state": {
            "title": "Your federal state (Bundesland)",
            "enum": [
              "BW",
              "BY",
              "BE",
              "BB",
              "HB",
              "HH",
              "HE",
              "MV",
              "NI",
              "NW",
              "RP",
              "SL",
              "SN",
              "ST",
              "SH",
              "TH"
            ],
            "type": "string",
            "description": "Optional. German programmes of OTHER states are left out before anything is charged; nationwide programmes always stay."
          },
          "sectorKeywords": {
            "title": "Your sector / topics",
            "type": "array",
            "description": "What your company does, e.g. 'Digitalisierung', 'Software', 'KI', 'Handwerk'. Matched against title, keywords and funding area. Best matches come first; no match = open question.",
            "items": {
              "type": "string"
            }
          },
          "fundingTypes": {
            "title": "Funding types",
            "type": "array",
            "description": "Optional. Any of: Zuschuss (grant), Darlehen (loan), Bürgschaft (guarantee), Beteiligung (equity), Garantie, Sonstige. English words work too. Empty = all types. EU calls are grants (Zuschuss).",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Must-have keywords (German programmes)",
            "type": "array",
            "description": "Optional. Keep a German programme only if one of these words appears in it (German works best). Not applied to EU calls — use 'EU search words' for those.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Programmes containing one of these words are left out before anything is charged (both sources).",
            "items": {
              "type": "string"
            }
          },
          "euKeywords": {
            "title": "EU search words (English!)",
            "type": "array",
            "description": "Up to 5 ENGLISH search words for the EU portal, e.g. 'artificial intelligence', 'digital', 'cybersecurity'. German words return nothing there. Empty = all open EU calls.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many programmes to return (1–500), best matches first. You pay per returned programme.",
            "default": 50
          },
          "checkEligibility": {
            "title": "Check eligibility against your profile",
            "type": "boolean",
            "description": "Adds fitVerdict (fits = no exclusion criteria found / unclear / no), fitReasons and openQuestions per programme: company size, eligible applicants, federal state, funding type, sector, deadline, status. A quick first filter, not funding advice.",
            "default": true
          },
          "includeNotFitting": {
            "title": "Also return programmes marked 'no'",
            "type": "boolean",
            "description": "Only with eligibility check. Off = programmes that clearly do not fit are dropped before anything is charged.",
            "default": false
          },
          "watchId": {
            "title": "Watch name (only NEW programmes)",
            "type": "string",
            "description": "Optional. Give your watch a name (e.g. 'it-bavaria'). The first run is the inventory (best results up to Max results; all other matching programmes are remembered as seen, free of charge). Later runs with the same name return only programmes that newly appear — perfect for a weekly schedule. Stored in your own Apify account. Programmes beyond Max results in the first run are never delivered later by this watch, even if you raise Max results or change your profile — use a new name for that."
          },
          "companyDescription": {
            "title": "Company description (for AI summary)",
            "type": "string",
            "description": "Optional, 1–3 sentences about your company. Only used for the AI summary."
          },
          "anthropicApiKey": {
            "title": "Your Anthropic API key (optional AI summary)",
            "type": "string",
            "description": "Bring your own key: adds a 3-sentence summary per programme. For German programmes it only uses the title and OUR assessment (the Förderdatenbank texts are licensed CC BY-ND and are never summarised). Your key is used only for your run and never stored by us."
          },
          "summaryLanguage": {
            "title": "Summary language",
            "enum": [
              "de",
              "en"
            ],
            "type": "string",
            "description": "Language of the AI summary.",
            "default": "de"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}