---
title: "Status Pages — API v1 i MCP | Dokumentacja Nodea"
description: "Reference modułu Status Pages: endpointy CRUD API v1 dla publicznych stron statusu, zakresy monitoring:*, ownership bez polityki (404 na cudzy zasób), narzędzia MCP i przykłady curl oraz JSON-RPC."
url: "https://nodea.pl/pl/dokumentacja-api/status-pages"
lang: "pl"
updated: "2026-07-16"
---

# Status Pages — API v1 i MCP | Dokumentacja Nodea

> Reference modułu Status Pages — publiczne strony statusu: endpointy CRUD API v1, zakresy monitoring:read/write/delete, ownership właścicielski (404 na cudzy zasób), narzędzia MCP i przykłady.

Moduł **Status Pages** obsługuje publiczne strony statusu: publiczny widok stanu wybranych monitorowanych stron WWW pod adresem /status/{slug}. API v1 zapewnia pełny CRUD nad definicjami stron statusu. Publiczny renderer (/status/{slug}) to osobna, nieuwierzytelniona trasa web i **nie** jest częścią tego API.

## Uwierzytelnianie, zakresy i flaga

Bearer token Passport. Zakresy: monitoring:read (index, show), monitoring:write (create, update), monitoring:delete (delete). Moduł bramkowany flagą features:websites (strony statusu jadą na tej samej fladze co strony WWW).

## Własność (ownership) — brak polityki

StatusPage nie ma klasy polityki. Dostęp jest wyłącznie właścicielski — każdy wiersz jest ograniczony do user\_id = użytkownik tokenu. Cudzy albo nieznany identyfikator **konsekwentnie zwraca 404** (nigdy nie potwierdza istnienia zasobu innego najemcy). Dodatkowo strony przypisane do strony statusu muszą być **własnością** użytkownika (pivot OWNER) — sam udział FOREIGN nie wystarcza, bo strona statusu eksponuje stronę WWW publicznie. Cudzy website\_id → 422 (API rzuca błąd zamiast cicho pomijać).

## API v1 — endpointy

MetodaŚcieżkaScopeOpisGET/api/v1/status-pagesmonitoring:readLista stron statusu użytkownika (z licznikiem stron WWW), paginowana. GET/api/v1/status-pages/{statusPage}monitoring:readSzczegóły z listą przypisanych stron WWW. POST/api/v1/status-pagesmonitoring:writeUtworzenie strony statusu. Zwraca 201. PUT/PATCH/api/v1/status-pages/{statusPage}monitoring:writeAktualizacja (częściowa) + sync stron WWW gdy podano selectedWebsiteIds. DELETE/api/v1/status-pages/{statusPage}monitoring:deleteTrwałe usunięcie. Zwraca 204.

### GET /status-pages — parametry zapytania

- per\_page (int 1–100, domyślnie 20), page.

### POST/PATCH — parametry ciała

- title (string, wymagany, max 120).
- slug (string, wymagany, max 80, regex ^\[a-z0-9-\]+$, unikalny; przy update wyjątek dla własnego slug).
- description (string, opcjonalny, max 1000).
- accent\_color (wymagany, regex ^#\[0-9A-Fa-f\]{6}$).
- logo\_url (url, opcjonalny, max 500).
- is\_public (boolean; przy częściowym PATCH pominięcie nie zmienia widoczności).
- selectedWebsiteIds\[\] — identyfikatory stron WWW **posiadanych** przez użytkownika (pivot OWNER); kolejność listy = kolejność wyświetlania (display\_order).

### Kształt odpowiedzi (StatusPageResource)

Pola: id, slug, title, description, accent\_color, logo\_url, is\_public, public\_url (zawsze rozwiązywalny — prywatna strona po prostu 404 dla gości), website\_ids\[\], websites\[\] ({id,name}, tylko gdy relacja załadowana), websites\_count, created\_at, updated\_at.

### Kody błędów

- 401 — brak/niepoprawny token; 403 — brak scope lub nieaktywna flaga; 404 — nieznany lub cudzy identyfikator; 422 — walidacja (nieunikalny slug, zły kolor, cudzy/nieposiadany website\_id).

## Przykłady — API

### Utworzenie strony statusu

curl -s -X POST https://app.nodea.io/api/v1/status-pages \\ -H "Authorization: Bearer $NODEA\_TOKEN" \\ -H "Content-Type: application/json" \\ -d '{ "title": "Status usług", "slug": "status-uslug", "accent\_color": "#50CD89", "is\_public": true, "selectedWebsiteIds": \["9b1f...uuid", "7c22...uuid"\] }'

### Publikacja istniejącej strony (PATCH)

curl -s -X PATCH https://app.nodea.io/api/v1/status-pages/{id} \\ -H "Authorization: Bearer $NODEA\_TOKEN" \\ -H "Content-Type: application/json" \\ -d '{ "title": "Status usług", "slug": "status-uslug", "accent\_color": "#50CD89", "is\_public": true }'

## MCP — narzędzia

Ten sam model auth/scope co API v1 i flaga features:websites. Rozwiązywanie po id jest właścicielskie (brak polityki); brakujący i cudzy id zwracają ten sam błąd. W przeciwieństwie do web (który cicho pomija cudze id), narzędzia MCP **odrzucają** każdy website\_id nienależący do użytkownika, więc sfałszowana lista nie wyeksponuje cudzej strony publicznie.

NarzędzieScopeTypOpisstatus-pages-listmonitoring:readread-onlyLista stron statusu (najnowsze pierwsze); page, per\_page (max 50). status-page-getmonitoring:readread-onlySzczegóły z uporządkowaną listą stron WWW. Param: id. status-page-createmonitoring:writezapistitle, slug, description, accent\_color (domyślnie #50CD89), logo\_url, is\_public (domyślnie false), website\_ids\[\] (tylko posiadane). status-page-updatemonitoring:writeidempotentneAktualizacja częściowa; website\_ids\[\] zastępuje całą listę (tylko posiadane). status-page-deletemonitoring:deletedestrukcyjneTrwałe usunięcie; wymaga confirm: true.

Wynik (status-page-\*): id, slug, title, description, accent\_color, logo\_url, is\_public, public\_url, websites\_count (gdy policzone), websites\[\] ({id,name,url,display\_order,visible}, gdy załadowane), created\_at, updated\_at.

### Przykład — MCP (JSON-RPC)

{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "status-page-create", "arguments": { "title": "Status usług", "slug": "status-uslug", "is\_public": true, "website\_ids": \["9b1f...uuid", "7c22...uuid"\] } } } { "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "status-page-delete", "arguments": { "id": "5d40...uuid", "confirm": true } } }

## Powiązane

- [Websites — API v1 i MCP | Dokumentacja Nodea](https://nodea.pl/pl/dokumentacja-api/websites)
- [Heartbeats — API v1 i MCP | Dokumentacja Nodea](https://nodea.pl/pl/dokumentacja-api/heartbeats)
- [Reports (SSL / WHOIS) — API v1 i MCP | Dokumentacja Nodea](https://nodea.pl/pl/dokumentacja-api/reports)

---

Wersje językowe: [en](https://nodea.io/en/api-docs/status-pages.md)  
Spis treści witryny: [llms.txt](https://nodea.pl/pl/llms.txt)
