{"openapi":"3.1.0","info":{"title":"NAVMEDA Content API","version":"1.0.0","description":"NAVMEDA GmbH does not offer a public product API. This specification documents the machine-readable content surface of navmeda.com: Markdown representations of every public page via Accept-header content negotiation, a site index (llms.txt), and the XML sitemap. For technical integrations around Asset Cockpit or Multi-Marketplace, see the contact endpoint.","contact":{"name":"NAVMEDA GmbH","url":"https:\/\/navmeda.com\/contact","email":"kontakt@navmeda.com"}},"servers":[{"url":"https:\/\/navmeda.com","description":"Production (German, default locale)"},{"url":"https:\/\/navmeda.com\/en","description":"Production (English)"}],"paths":{"\/{path}":{"get":{"summary":"Any public page, negotiated between HTML and Markdown","description":"Every public page (see the \"page\" enum) is served as HTML by default. When the Accept header prefers text\/markdown over text\/html, the same URL returns a clean Markdown representation instead \u2014 no separate path required. See https:\/\/acceptmarkdown.com for the negotiation contract.","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","enum":["","about","services","services\/custom-software","services\/dedicated-engineering","services\/build-operate-transfer","services\/business-operations","consulting","consulting\/business-modeling","consulting\/product-engineering","consulting\/strategic-marketing","consulting\/agile-transformation","consulting\/it-advisory","solutions","solutions\/marketplace","solutions\/asset-cockpit","business-builder","business-builder\/beyond-banking","business-builder\/real-estate","business-builder\/energy-ecosystem","contact","developers"]}},{"name":"Accept","in":"header","required":false,"schema":{"type":"string","default":"text\/html"},"description":"text\/html (default) or text\/markdown."}],"responses":{"200":{"description":"Page content","content":{"text\/html":{"schema":{"type":"string"}},"text\/markdown":{"schema":{"type":"string"}}}},"404":{"description":"Page does not exist. A text\/markdown request receives a Markdown 404 body linking to the sitemap and llms.txt."},"406":{"description":"Page exists but has no Markdown representation, and the request did not accept text\/html as a fallback."}}}},"\/{path}.md":{"get":{"summary":"Markdown mirror of a public page at an explicit .md URL","description":"Equivalent to requesting \/{path} with Accept: text\/markdown, but addressable without setting a header.","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","enum":["","about","services","services\/custom-software","services\/dedicated-engineering","services\/build-operate-transfer","services\/business-operations","consulting","consulting\/business-modeling","consulting\/product-engineering","consulting\/strategic-marketing","consulting\/agile-transformation","consulting\/it-advisory","solutions","solutions\/marketplace","solutions\/asset-cockpit","business-builder","business-builder\/beyond-banking","business-builder\/real-estate","business-builder\/energy-ecosystem","contact","developers"]}}],"responses":{"200":{"description":"Markdown page content","content":{"text\/markdown":{"schema":{"type":"string"}}}},"404":{"description":"No Markdown mirror for this path."}}}},"\/llms.txt":{"get":{"summary":"Site index for AI agents and crawlers (German)","description":"Machine-readable index of every public page with short descriptions, plus a \"when to use NAVMEDA\" section for agents deciding whether this site is relevant to a query.","responses":{"200":{"description":"Site index","content":{"text\/plain":{"schema":{"type":"string"}}}}}}},"\/en\/llms.txt":{"get":{"summary":"Site index for AI agents and crawlers (English)","responses":{"200":{"description":"Site index","content":{"text\/plain":{"schema":{"type":"string"}}}}}}},"\/llms-full.txt":{"get":{"summary":"Full content of every page, concatenated, in one request (German)","responses":{"200":{"description":"Full site content","content":{"text\/markdown":{"schema":{"type":"string"}}}}}}},"\/en\/llms-full.txt":{"get":{"summary":"Full content of every page, concatenated, in one request (English)","responses":{"200":{"description":"Full site content","content":{"text\/markdown":{"schema":{"type":"string"}}}}}}},"\/sitemap.xml":{"get":{"summary":"XML sitemap with hreflang alternates for every public page","responses":{"200":{"description":"Sitemap","content":{"application\/xml":{"schema":{"type":"string"}}}}}}},"\/contact":{"post":{"summary":"Contact form submission","description":"Session and CSRF-protected HTML form submission, not a stateless JSON API. Included for completeness \u2014 not intended for direct agent\/programmatic use.","requestBody":{"required":true,"content":{"application\/x-www-form-urlencoded":{"schema":{"type":"object","required":["name","email","subject","privacy"],"properties":{"name":{"type":"string","maxLength":255},"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":"string","maxLength":50},"subject":{"type":"string","maxLength":255},"message":{"type":"string","maxLength":5000},"privacy":{"type":"boolean"}}}}}},"responses":{"302":{"description":"Redirect back with a success or validation-error flash message."}}}}}}