{"openapi":"3.1.0","info":{"title":"NumerSkan Public Aggregate API","version":"1.0.0","description":"Publiczne API NumerSkan udostępniające wyłącznie zagregowane, nieidentyfikujące statystyki społeczności. API nie udostępnia publicznego endpointu do masowego sprawdzania pojedynczych numerów."},"servers":[{"url":"https://numerskan.com"}],"paths":{"/api/public/community-summary.csv":{"get":{"operationId":"downloadCommunitySummaryCsv","summary":"Pobierz zagregowane statystyki w CSV","description":"Eksport CSV zawierający wyłącznie dane zbiorcze. Nie zawiera numerów telefonu ani danych osób zgłaszających.","responses":{"200":{"description":"Plik CSV z danymi zbiorczymi.","content":{"text/csv":{"schema":{"type":"string"}}}},"503":{"description":"Dane są chwilowo niedostępne."}}}},"/api/public/community-summary":{"get":{"operationId":"getCommunitySummary","summary":"Pobierz zagregowane statystyki społeczności","description":"Zwraca wyłącznie zbiorcze dane zatwierdzonych zgłoszeń z ostatnich 30 dni oraz dane całkowite. Nie zwraca numerów telefonu, IP, pseudonimów ani treści zgłoszeń.","responses":{"200":{"description":"Zagregowane dane społeczności.","content":{"application/json":{"schema":{"type":"object","required":["service","scope","language","generatedAt","periodDays","periodStart","periodEnd","data","interpretation"],"properties":{"service":{"type":"string","const":"NumerSkan"},"scope":{"type":"string","const":"aggregate-community-data"},"language":{"type":"string","const":"pl-PL"},"editorialUpdatedAt":{"type":"string","description":"Centralna data aktualizacji materiałów redakcyjnych."},"generatedAt":{"type":"string","format":"date-time","description":"Moment wygenerowania bieżącego agregatu."},"periodDays":{"type":"integer","const":30},"periodStart":{"type":"string","format":"date-time","description":"Początek ruchomego okresu raportowego."},"periodEnd":{"type":"string","format":"date-time","description":"Koniec ruchomego okresu raportowego."},"data":{"type":"object","properties":{"approvedTotal":{"type":"integer","minimum":0},"approved30d":{"type":"integer","minimum":0},"moneyOrCode30d":{"type":"integer","minimum":0},"categories30d":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"label":{"type":"string"},"count":{"type":"integer","minimum":0},"sharePercent":{"type":"integer","minimum":0,"maximum":100}}}}}},"interpretation":{"type":"array","items":{"type":"string"}},"methodology":{"type":"string"},"report":{"type":"string"}}}}}},"503":{"description":"Dane są chwilowo niedostępne."}}},"options":{"summary":"CORS preflight","responses":{"204":{"description":"Brak treści."}}}}}}