{"openapi":"3.1.0","info":{"title":"Blitzbuchen API","version":"2.0.0","description":"Free News/MCP: 60 requests/minute, 1000/day UTC. Separate free calculations: 30/minute, 300/day UTC. Paid network keys have contracted quotas. MCP batches count each operation."},"servers":[{"url":"https://blitzbuchen.de"}],"x-language":"de","x-mcp-tools":["latest_news","get_article","calculate_travel"],"paths":{"/api/calculate":{"get":{"summary":"Domain calculators and schemas","security":[],"responses":{"200":{"description":"Free calculator definitions"},"429":{"description":"Quota exhausted; observe Retry-After"}}},"post":{"summary":"Free calculation, available in preview: 30/minute, 300/UTC day","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","additionalProperties":false,"required":["calculator","inputs"],"properties":{"calculator":{"const":"travel"},"inputs":{"type":"object","properties":{"days":{"type":"integer","minimum":1,"maximum":366,"description":"Reisetage"},"nights":{"type":"integer","minimum":0,"maximum":366,"description":"Übernachtungen"},"travelers":{"type":"integer","minimum":1,"maximum":100,"description":"Reisende"},"nightlyPrice":{"type":"number","minimum":0,"maximum":100000,"description":"Unterkunft gesamt pro Nacht (€)"},"dailyPerPerson":{"type":"number","minimum":0,"maximum":100000,"description":"Tägliches Budget pro Person (€)"},"transportTotal":{"type":"number","minimum":0,"maximum":10000000,"description":"Transport gesamt (€)"},"extrasTotal":{"type":"number","minimum":0,"maximum":10000000,"description":"Weitere Ausgaben gesamt (€)"}},"required":["days","nights","travelers","nightlyPrice","dailyPerPerson","transportTotal","extrasTotal"],"additionalProperties":false}}}]}}}},"responses":{"200":{"description":"Inputs, assumptions, formula and numeric results"},"400":{"description":"Invalid input or JSON"},"413":{"description":"Body exceeds 20000 bytes"},"429":{"description":"Quota exhausted; observe Retry-After"},"503":{"description":"Quota storage temporarily unavailable"}}}},"/api/news":{"get":{"summary":"Published article summaries","parameters":[{"name":"portal","in":"query","schema":{"type":"string"}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"default":1}},{"name":"scope","in":"query","description":"network requires a paid key","schema":{"type":"string","enum":["site","network"],"default":"site"}}],"security":[{},{"apiKey":[]}],"responses":{"200":{"description":"Published source-linked JSON result"},"401":{"description":"Invalid or revoked key"},"429":{"description":"Quota exhausted; observe Retry-After"},"503":{"description":"Public service disabled"}}}},"/api/mcp":{"post":{"summary":"Stateless MCP JSON-RPC","security":[{},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"const":"2.0"},"id":{"type":["string","number"]},"method":{"type":"string"},"params":{"type":"object"}}},{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object"}}]}}}},"responses":{"200":{"description":"Published source-linked JSON result"},"401":{"description":"Invalid or revoked key"},"429":{"description":"Quota exhausted; observe Retry-After"},"503":{"description":"Public service disabled"}}}}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"Network API key; not an admin token"}}}}