// service level agreement
Pro and Scale plans only. Credits refund on breach.
https://api.astroway.info/v1/health ze statusem HTTP 200 w ciągu 1 000 ms. Planowane prace (ogłaszane co najmniej 48 godz. przed stroną statusu) nie są uwzględniane w obliczeniach. ## Celowe opóźnienia Mierzone są na api.astroway.info/v1/* z jednego regionu, tylko serwerowy czas obliczeń (bez uwzględnienia klienta i sieci). Pełny kwartalny raport jest publikowany na stronie statusu. ### Standardowe endpointy Chart, planets, synastry, transits, progressions, ACG, geodetic, solar-return i podobne. | Metryka | Cel | Faktycznie (wewnętrzne sampling, 2026-05-09) | | ------- | -------- | ------------------------------------------ | | p50 | < 100 ms | ~80 ms | | p95 | < 500 ms | ~280 ms | | p99 | < 1 s | ~640 ms | > Disclaimer: liczby faktycznie — wewnętrzne sampling z monitoringu api-calc, publiczny production-telemetry dashboard w roadmapie. Zwróć uwagę: p99 = najwyższe ekstremum, więc czas jest znacznie wyższy niż p50. ### Ciężkie endpointy Wielodniowe agregaty: transit-calendar, forecast-calendar, moon-aspects, aspect-timeline, group-synastry, eclipse-analysis. | Metryka | Cel | Faktycznie (2026-04-15) | | ------- | ------ | -------------------------- | | p95 | < 2 s | 1.9 s (moon-aspects, 30d) | | p99 | < 4 s | 1.9 s | ### Rektifikacja POST /v1/rectification (do 120 s) i POST /v1/rectification/trutine (do 15 s) ze swojej natury są długotrwałe i nie podlegają SLA opóźnień. Są one szanowane przez nagłówek Request-Timeout do 180 s. ## Ograniczenia częstotliwości Miękkie ograniczenie na klucz w rateLimitMiddleware, zwraca HTTP 429 z nagłówkiem Retry-After. | Plan | Zapytań / minutę | Miesięczny budżet kredytów | | ---------- | ----------------- | ------------------------ | | Free | 10 | 10 000 | | Indie | 30 | 50 000 | | Starter | 120 | 200 000 | | Pro | 400 | 800 000 | | Business | 1 000 | 3 500 000 | | Enterprise | custom | bez limitu | Publiczny sandbox (POST /v1/public/chart) jest ograniczony po IP — 30 zapytań / godzinę, bez klucza API. ## Identyfikacja zapytania Każda odpowiedź zawiera nagłówek X-Request-Id (UUID). Dodaj go, gdy zgłaszasz incydent — przechowujemy logi dostępu 30 dni i za pomocą jednego tylko request-id możemy całkowicie odtworzyć twoje wywołanie. Na HTTP 5xx ten sam identyfikator jest powtarzany w treści odpowiedzi: json { "ok": false, "error": { "code": "INTERNAL_ERROR", "message": "Internal server error", "request_id": "c07b5c55-7637-4add-bd2e-7c7c4deb365f" } } ## Reagowanie na incydenty | Poziom | Definicja | SLA odpowiedzi | | ------ | ----------------------------------------------- | --------------------- | | SEV-1 | Wszystkie zapytania padają / regionalny awaria | potwierdzenie w ciągu 15 min | | SEV-2 | Awaria pojedynczego endpointu lub >5 % błędów | potwierdzenie w ciągu 1 godz | | SEV-3 | Zdegradowana opóźnienie (p95 > 2× celu) | tego samego dnia roboczego | | SEV-4 | Kosmetyczne / problem jednego klienta | następnego dnia roboczego | Zgłoś incydent na support@astroway.info z request-id. Dla SEV-1 sprawdź również stronę statusu. ## Wersjonowanie i deprecation - Endpointy żyją pod /v1/ i pozostają zgodne wstecznie w ramach głównej wersji. - Zmiany łamiące są wydawane pod /v2/, a /v1/ nadal działa ≥ 12 miesięcy. - Dodawanie pól nie jest uważane za zmianę łamiącą; klienci powinni ignorować nieznane pola. - Deprecation jest ogłaszany w changelog i wysyłany do właścicieli kont e-mail minimum 90 dni wcześniej. ## Kanały wsparcia | Plan | Kanał | Odpowiedź | | ---------- | ------------------------------- | ---------------------- | | Free | GitHub issues, community forum | best effort | | Starter | support@astroway.info | ≤ 1 dzień roboczy | | Pro | e-mail + priorytetna kolejka | ≤ 4 godziny robocze | | Enterprise | dedykowany Slack / PagerDuty | na podstawie umowy |