Skip to content

API — Planety

Planety to przestrzenie społecznościowe, w których dzieci mogą współpracować. Dziecko może dołączyć do otwartych planet lub opuścić te, w których już uczestniczy.

Wszystkie endpointy wymagają Authorization: Bearer <token>.

GET /app/planets/open

Lista otwartych planet (visibility: "open"), do których dziecko może dołączyć. Paginacja kursorowa.

Uwaga: Ten endpoint nigdy nie zwraca planet zamkniętych (visibility: "closed"). Planety zamknięte są dostępne wyłącznie przez GET /app/planets/mine dla użytkowników jawnie dodanych do assigned_users.

Query params:

ParamTypDomyślnieOpis
cursorstringKursor paginacji
limitint20Liczba wyników (1–100)

Response 200:

json
{
  "data": [
    {
      "id": "planet_explorers",
      "name": "Planeta Odkrywców",
      "description": "Wspólnie poznajemy świat!",
      "icon_url": "https://cdn.lumos-islands.pl/planets/explorers.png",
      "members_count": 24,
      "max_members": 30,
      "category": "science",
      "created_at": "2026-01-15T10:00:00Z"
    },
    {
      "id": "planet_artists",
      "name": "Planeta Artystów",
      "description": "Tu tworzymy i rysujemy!",
      "icon_url": "https://cdn.lumos-islands.pl/planets/artists.png",
      "members_count": 12,
      "max_members": 30,
      "category": "art",
      "created_at": "2026-02-01T08:30:00Z"
    }
  ],
  "next_cursor": "eyJpZCI6InBsYW5ldF9hcnRpc3RzIn0",
  "has_more": true
}

GET /app/planets/mine

Lista planet, do których dziecko należy. Paginacja kursorowa.

Obejmuje zarówno planety otwarte (do których dziecko dołączyło), jak i planety zamknięte — ale tylko te, w których dziecko znajduje się w tablicy assigned_users. Planety zamknięte, do których dziecko nie jest przypisane, nie pojawiają się w wynikach.

Query params:

ParamTypDomyślnieOpis
cursorstringKursor paginacji
limitint20Liczba wyników (1–100)

Response 200:

json
{
  "data": [
    {
      "id": "planet_explorers",
      "name": "Planeta Odkrywców",
      "description": "Wspólnie poznajemy świat!",
      "icon_url": "https://cdn.lumos-islands.pl/planets/explorers.png",
      "members_count": 24,
      "max_members": 30,
      "category": "science",
      "joined_at": "2026-02-10T14:22:00Z",
      "my_xp_in_planet": 320
    }
  ],
  "next_cursor": null,
  "has_more": false
}

POST /app/planets/:id/join

Dołącz do planety.

Request: pusty body

Response 200:

json
{
  "data": {
    "planet_id": "planet_explorers",
    "joined_at": "2026-03-08T09:15:00Z",
    "members_count": 25
  }
}

Błędy:

HTTPcodeKiedy
409ALREADY_MEMBERDziecko już należy do tej planety
409PLANET_FULLPlaneta osiągnęła limit członków

POST /app/planets/:id/leave

Opuść planetę.

Request: pusty body

Response 200:

json
{
  "data": {
    "planet_id": "planet_explorers",
    "left_at": "2026-03-08T09:30:00Z",
    "members_count": 24
  }
}

Błędy:

HTTPcodeKiedy
404NOT_MEMBERDziecko nie należy do tej planety

Lumos Islands v2 - Dokumentacja Projektowa