Endpointy
Lista Twoich aplikacji
Aplikacje, które widzi twój klucz, od najnowszych, z wyszukiwaniem i stronami.
https://www.setherion.com/api/v1/projectsPlan: Każdy plan
Zwraca aplikacje z twojego panelu: twoje własne, te z przestrzeni roboczych, do których należysz, i te udostępnione tobie, od ostatnio zmienionych. Usunięte aplikacje nie są uwzględnione. Wystarczy dowolna rola, także viewer.
Aplikacje przychodzą po 100. total mówi, ile pasuje, a dopóki następują kolejne, truncated ma wartość true, a nextOffset mówi, od czego zaczyna się następna strona. Żeby znaleźć jedną aplikację bez czytania wszystkich, szukaj za pomocą q.
Wyświetlanie listy jest bezpłatne i nie zużywa kredytów.
Żądanie
curl https://www.setherion.com/api/v1/projects \
-H "Authorization: Bearer $SETHERION_API_KEY"Żeby szukać, dodaj q. Dopasowuje słowa w dowolnym miejscu nazwy lub opisu aplikacji, bez względu na wielkość liter:
curl "https://www.setherion.com/api/v1/projects?q=coffee" \
-H "Authorization: Bearer $SETHERION_API_KEY"Żeby dostać następną stronę, dodaj offset z wartością nextOffset z poprzedniej odpowiedzi:
curl "https://www.setherion.com/api/v1/projects?offset=100" \
-H "Authorization: Bearer $SETHERION_API_KEY"| Parametr | Znaczenie |
|---|---|
q | Opcjonalny. Tekst do znalezienia w nazwie lub opisie aplikacji. Spacje wokół niego są pomijane. Do 100 znaków. Znak % lub _ w nim jest traktowany dosłownie, więc szukanie 50% nie dopasowuje każdej aplikacji. |
offset | Opcjonalny. Od czego zaczyna się strona, licząc od 0: nextOffset z poprzedniej odpowiedzi. Liczba całkowita do sześciu cyfr. |
Kolejność wynika z ostatniej zmiany, a remisy rozstrzyga id aplikacji, więc dwie aplikacje zmienione w tej samej chwili nigdy nie zamieniają się miejscami między jedną stroną a następną. Aplikacja zmieniona między dwoma żądaniami stron przesuwa się na początek listy, więc czytaj strony za jednym razem.
Odpowiedź
Pierwsza strona konta z ponad 100 aplikacjami:
{
"ok": true,
"total": 142,
"truncated": true,
"offset": 0,
"nextOffset": 100,
"projects": [
{
"id": "7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14",
"name": "Coffee shop",
"description": "Website for a coffee shop in Leeds",
"url": "https://coffee-shop.setherion.app",
"updatedAt": "2026-09-19T10:42:07.000Z"
},
{
"id": "0e9d3b6a-41c2-4d7f-b8a5-6f1c2a9d4e30",
"name": "Booking tool",
"description": null,
"url": null,
"updatedAt": "2026-09-18T16:03:51.000Z"
}
]
}(Tablica projects zawiera do 100 wpisów. Pokazano dwa.)
| Pole | Typ | Znaczenie |
|---|---|---|
total | liczba | Ile aplikacji pasuje, łącznie z tymi, których nie ma na tej stronie. |
truncated | boolean | true, gdy po tej stronie następują kolejne aplikacje. |
offset | liczba | Od czego zaczyna się ta strona. |
nextOffset | liczba lub null | Od czego zaczyna się następna strona, albo null na ostatniej. |
id | ciąg znaków | Id aplikacji. Użyj go, żeby edytować lub opublikować aplikację. |
name | ciąg znaków | Nazwa aplikacji, taka jak w twoim panelu. |
description | ciąg znaków lub null | Opis aplikacji, jeśli go ma. |
url | ciąg znaków lub null | Gdzie aplikacja jest w sieci, albo null, jeśli nie jest opublikowana. |
updatedAt | ciąg znaków | Kiedy aplikacja ostatnio się zmieniła, w formacie ISO 8601. |
Strona za końcem listy nie jest błędem: odpowiada ok: true i pustą listą projects.
Odczyt każdej strony
const base = 'https://www.setherion.com/api/v1/projects'
const headers = { Authorization: `Bearer ${process.env.SETHERION_API_KEY}` }
let offset = 0
const all = []
while (offset !== null) {
const page = await fetch(`${base}?offset=${offset}`, { headers }).then(r => r.json())
if (!page.ok) throw new Error(page.error)
all.push(...page.projects)
offset = page.nextOffset
}Błędy
| Status | Kiedy |
|---|---|
400 | q ma więcej niż 100 znaków albo offset nie jest liczbą całkowitą. |
401 | Klucza brakuje, jest błędny lub został unieważniony. |
500 | Nie udało się odczytać listy. Spróbuj ponownie. |
Dokładne zdania
| Status | error |
|---|---|
400 | q is at most 100 characters. |
400 | offset is a whole number, 0 or more. |
500 | Could not list your apps. |
Czy ta strona była pomocna?
