{"openapi":"3.0.3","info":{"title":"LageLuchs API","version":"1.0.0","description":"LuchsScore, Standortklasse, Trend und Dimensions-Scores je Region."},"servers":[{"url":"https://lageluchs.de"}],"paths":{"/api/v1/regions":{"get":{"summary":"Alle Regionen auflisten","parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["gemeinde","landkreis","bundesland"]},"description":"Nach Verwaltungsebene filtern"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1},"description":"Seitennummer (1-basiert)"},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","default":100,"maximum":500},"description":"Ergebnisse pro Seite (max. 500)"}],"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"Regionsliste","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionList"}}}},"401":{"description":"Kein oder ungueltiger API-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein aktives Developer-Abo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit ueberschritten","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/regions/search":{"get":{"summary":"Regionen nach Name suchen","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2},"description":"Suchbegriff (Name, PLZ oder Teil des Namens)"}],"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"Suchergebnisse (max. 10)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RegionListItem"}}}}}}},"400":{"description":"q zu kurz","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Kein oder ungueltiger API-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein aktives Developer-Abo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit ueberschritten","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/regions/{agsOrSlug}":{"get":{"summary":"Region abrufen","parameters":[{"name":"agsOrSlug","in":"path","required":true,"schema":{"type":"string"},"description":"AGS (amtlicher Gemeindeschluessel) oder Slug der Region"}],"security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"Region gefunden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Region"}}}},"401":{"description":"Kein oder ungueltiger API-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein aktives Premium-Abo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Region nicht gefunden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit ueberschritten","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/regions.csv":{"get":{"summary":"Alle Regionen als CSV","description":"Vollstaendige Regionsliste (ags, name, type, slug) als CSV-Datei zum Download. Kein Paging — geeignet fuer lokales Caching.","security":[{"bearerAuth":[]},{"apiKeyHeader":[]}],"responses":{"200":{"description":"CSV-Datei","content":{"text/csv":{"schema":{"type":"string","format":"binary"}}}},"401":{"description":"Kein oder ungueltiger API-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Kein aktives Developer-Abo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate-Limit ueberschritten","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"},"apiKeyHeader":{"type":"apiKey","in":"header","name":"x-api-key"}},"schemas":{"RegionListItem":{"type":"object","properties":{"ags":{"type":"string","description":"Amtlicher Gemeindeschluessel"},"name":{"type":"string"},"type":{"type":"string","enum":["gemeinde","landkreis","bundesland"]},"slug":{"type":"string"}}},"RegionList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RegionListItem"}},"meta":{"type":"object","properties":{"total":{"type":"integer"},"page":{"type":"integer"},"per_page":{"type":"integer"},"pages":{"type":"integer"}}}}},"Region":{"type":"object","properties":{"ags":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"slug":{"type":"string"},"luchs_score":{"type":"number"},"trend":{"type":"string"},"standortklasse":{"type":"string","enum":["A","B","C","D"]},"dimension_scores":{"type":"object","additionalProperties":{"type":"number"}},"data_vintage":{"type":"string"},"trust_level":{"type":"string"}}},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}