Bazy i rekordy

Listowanie baz, odczyt pól, tworzenie, pobieranie, aktualizacja i usuwanie rekordów.

Na tej stronie

Najczęstsza praca z API to odczyt i zapis rekordów. Schemat jest zawsze ten sam: znajdź bazę, pobierz jej pola, a potem twórz, czytaj i zmieniaj rekordy, używając identyfikatorów pól.

Lista baz w workspace

GET/workspace/:workspaceId/databases

Zwraca bazy, do których masz dostęp, w polu data.databases. Identyfikator workspace znajdziesz w odpowiedzi GET /me/workspaces.

Jedną bazę pobierzesz przez GET /database/:databaseId, a nową utworzysz przez POST /workspace/:workspaceId/database z polem title i opcjonalnym description.

Pola bazy

GET/database/:databaseId/properties

To najważniejsze zapytanie przed jakimkolwiek zapisem. Każde pole w data.properties ma między innymi:

PoleZnaczenie
idIdentyfikator, którego używasz jako klucza w cellValues
titleNazwa widoczna w aplikacji
typeTyp pola, na przykład text, status, people, date
canBeModifiedDirectlyCzy wartość da się ustawić przez cellValues
exampleCellValueGotowy przykład wartości dla tego konkretnego pola
exampleCellValueDescriptionOpis zasad dla tej wartości, na przykład czy data przyjmuje zakres

Utworzenie rekordu

POST/database/:databaseId/item
curl -X POST "https://api.staging.hypris.com/v1/database/$DATABASE_ID/item" \
  -u "$KEY_ID:$SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "cellValues": {
      "'$NAME_PROPERTY_ID'": "Kawiarnia Ziarno",
      "'$STATUS_PROPERTY_ID'": "'$NEW_STATUS_OPTION_ID'"
    }
  }'

Odpowiedź zawiera utworzony rekord. Każda wartość w cellValues ma postać {value, valueType}:

200 OK
{
  "success": true,
  "data": {
    "databaseItem": {
      "id": "6703f1c2a9e4b10012d5e001",
      "name": "Kawiarnia Ziarno",
      "cellValues": {
        "65a1f0c2b3d4e5f601234567": {"value": "Kawiarnia Ziarno", "valueType": "text"}
      },
      "state": "published",
      "createdAt": "2026-10-02T08:00:00.000Z"
    }
  }
}

Pomiń state, żeby rekord był od razu widoczny. Inne stany tworzą rekord ukryty we wszystkich widokach.

Lista rekordów

POST/database/:databaseId/items

Lista używa metody POST, bo filtr może być duży i przesyłasz go w treści. Parametry stronicowania i sortowania są w adresie:

ParametrGdzieZnaczenie
offset, limitadresStronicowanie
sortadresIdentyfikator pola do sortowania
sortDirectionadres1 rosnąco, -1 malejąco
searchadresWyszukiwanie tekstowe
filtertreśćDrzewo filtrów
databasePropertyIdstreśćZwróć tylko wybrane pola
cURL
curl -X POST "https://api.staging.hypris.com/v1/database/$DATABASE_ID/items?limit=50&offset=0" \
  -u "$KEY_ID:$SECRET" \
  -H "Content-Type: application/json" \
  -d '{}'

Rekordy są w data.databaseItems. Jak zbudować filtr, opisuje przewodnik Filtrowanie i sortowanie.

Odczyt jednego rekordu

GET/item/:databaseItemId

Aktualizacja wartości

PATCH/item/:databaseItemId/cell-values
Treść zapytania
{
  "cellValues": {
    "65a1f0c2b3d4e5f601234567": "Kawiarnia Ziarno i Spółka"
  }
}

Wysyłasz tylko pola, które się zmieniają. Zapis kończy się w tle, więc odpowiedź zawiera jobId. Jeśli chcesz mieć pewność, że wartość została zapisana, sprawdź zadanie przez GET /job/:jobId.

Usunięcie rekordu

DELETE/item/:databaseItemId

Wiele rekordów naraz

Do pracy na wielu rekordach służą endpointy zbiorcze:

MetodaŚcieżkaCo robi
POST/database/:databaseId/items/createTworzy wiele rekordów, w tle (zwraca jobId)
PATCH/database/:databaseId/items/cell-valuesUstawia te same wartości w wielu rekordach
PATCH/database/:databaseId/items/cell-values-per-itemUstawia różne wartości w każdym rekordzie
DELETE/database/:databaseId/itemsUsuwa wiele rekordów

Pola i widoki

Pola dodasz przez POST /database/:databaseId/property z polem type (na przykład text, status, date) i opcjonalnym title. Widoki obsługują endpointy /database/:databaseId/views i /view/:databaseViewId.