{"openapi":"3.1.0","info":{"title":"Kodamera.se","version":"1.0.0","summary":"Maskinläsbara ytor på kodamera.se.","description":"Kodamera är en webb- och digitaliseringsbyrå i Göteborg. Den här webbplatsen är en innehållsplats, inte en produkt: det finns inget skriv-API, inga API-nycklar och ingen autentisering.\n\nDet som finns är innehållet i maskinläsbar form. Varje sida kan hämtas som Markdown med `Accept: text/markdown`, hela innehållsöversikten finns i `/llms.txt`, alla adresser i sitemapsen och de senaste artiklarna i RSS-flödet.\n\nVill du komma i kontakt med oss är e-post rätt väg — adressen står på /kontakt.","contact":{"name":"Kodamera AB","url":"https://www.kodamera.se/kontakt"},"license":{"name":"Innehållet tillhör Kodamera AB","url":"https://www.kodamera.se/anvandarvillkor"}},"servers":[{"url":"https://www.kodamera.se","description":"Produktion"}],"tags":[{"name":"Innehåll","description":"Sidor och artiklar som text."},{"name":"Index","description":"Översikter över vad som finns."}],"paths":{"/":{"get":{"operationId":"getHomePage","summary":"Startsidan.","description":"Skicka `Accept: text/markdown` för att få sidans innehåll som Markdown i stället för HTML. Svaret har `Content-Type: text/markdown; charset=utf-8` och `Vary: Accept`. Utan den headern serveras sidan som vanligt HTML.","tags":["Innehåll"],"responses":{"200":{"description":"Sidans innehåll.","headers":{"Vary":{"description":"Alltid `Accept` — svaret beror på Accept-headern.","schema":{"type":"string"}}},"content":{"text/markdown":{"schema":{"type":"string"},"example":"# Kodamera\n\n> Vi hjälper företag växa...\n\nKälla: https://www.kodamera.se/\n"},"text/html":{"schema":{"type":"string"}}}},"404":{"description":"Sidan finns inte. Svaret är Markdown om Markdown efterfrågades, annars HTML.","content":{"text/markdown":{"schema":{"type":"string"}},"text/html":{"schema":{"type":"string"}}}},"406":{"description":"Accept-headern utesluter både text/html och text/markdown.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/{path}":{"get":{"operationId":"getPage","summary":"En sida, artikel, kundcase eller tjänst.","description":"Skicka `Accept: text/markdown` för att få sidans innehåll som Markdown i stället för HTML. Svaret har `Content-Type: text/markdown; charset=utf-8` och `Vary: Accept`. Utan den headern serveras sidan som vanligt HTML.\n\nSökvägarna är de som står i /sitemap.xml och /llms.txt. Undantag: de paginerade arkivsidorna (/artiklar/sida/2 och framåt) serveras bara som HTML — hela artikellistan finns i /llms.txt.","tags":["Innehåll"],"parameters":[{"name":"path","in":"path","required":true,"description":"Sidans sökväg utan inledande snedstreck, till exempel `artiklar/min-artikel` eller `tjanster/headless`.","schema":{"type":"string"},"example":"tjanster/headless"}],"responses":{"200":{"description":"Sidans innehåll.","headers":{"Vary":{"description":"Alltid `Accept` — svaret beror på Accept-headern.","schema":{"type":"string"}}},"content":{"text/markdown":{"schema":{"type":"string"},"example":"# Kodamera\n\n> Vi hjälper företag växa...\n\nKälla: https://www.kodamera.se/\n"},"text/html":{"schema":{"type":"string"}}}},"404":{"description":"Sidan finns inte. Svaret är Markdown om Markdown efterfrågades, annars HTML.","content":{"text/markdown":{"schema":{"type":"string"}},"text/html":{"schema":{"type":"string"}}}},"406":{"description":"Accept-headern utesluter både text/html och text/markdown.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/llms.txt":{"get":{"operationId":"getLlmsTxt","summary":"Hela innehållsöversikten som text, enligt llmstxt.org.","description":"Affärsområden, tjänster, kundcase, artiklar och kontaktuppgifter med en mening om varje. Börja här om du vill veta vad företaget gör.","tags":["Index"],"responses":{"200":{"description":"Innehållsöversikten.","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"operationId":"getSitemapIndex","summary":"Sitemapindex som pekar på de fyra delsitemapsen.","tags":["Index"],"responses":{"200":{"description":"Sitemapindex.","content":{"application/xml":{"schema":{"type":"string"}}}}}}},"/sitemaps/{category}.xml":{"get":{"operationId":"getSitemapCategory","summary":"Alla adresser i en innehållskategori.","tags":["Index"],"parameters":[{"name":"category","in":"path","required":true,"description":"Vilken delsitemap som avses.","schema":{"type":"string","enum":["sidor","tjanster","kundcase","artiklar"]}}],"responses":{"200":{"description":"Adresserna i kategorin.","content":{"application/xml":{"schema":{"type":"string"}}}},"404":{"description":"Okänd kategori.","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/feed.xml":{"get":{"operationId":"getArticleFeed","summary":"De 50 senaste artiklarna som RSS.","tags":["Index"],"responses":{"200":{"description":"RSS 2.0.","content":{"application/rss+xml":{"schema":{"type":"string"}}}}}}},"/openapi.json":{"get":{"operationId":"getOpenApiDocument","summary":"Det här dokumentet.","tags":["Index"],"responses":{"200":{"description":"OpenAPI-beskrivningen.","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","documentation"],"properties":{"code":{"type":"string","description":"Maskinläsbar felkod.","enum":["not_found","method_not_allowed","invalid_request","invalid_body","unauthorized","not_acceptable"]},"message":{"type":"string","description":"Vad som gick fel, på svenska."},"hint":{"type":"string","description":"Vad anroparen kan göra i stället."},"documentation":{"type":"string","format":"uri","description":"Länk till utvecklarsidan."}}}}}}}}