Skip to main content

Library API

All library API routes except the public catalog require a valid Supabase access token in the Authorization: Bearer <token> header.

Authentication

Librarians sign in through the shared staff login page. The login POSTs credentials to /api/auth/login, which sets sb-access-token and sb-refresh-token cookies and returns a redirect URL. The cookies are then sent automatically with subsequent requests.

Routes

POST /api/auth/login

Signs in a staff member or librarian. Request body
Response
Sets sb-access-token and sb-refresh-token cookies.

GET /api/library/catalog/<domain>

Public catalog for a school. Does not require authentication. Response

GET /api/library/accounts?schoolId=<uuid>

List librarian accounts for a school. Requires admin or staff token.

POST /api/library/invite

Create a new librarian account. Requires admin token. Request body

PATCH /api/library/accounts/manage

Suspend or unsuspend a librarian account. Requires admin token. Request body

POST /api/library/books

Add a book to the catalog. Requires librarian token. Request body

POST /api/library/copies

Generate copy codes for a book. Requires librarian token. Request body

GET /api/library/loans

List active loans for the librarian’s school.

POST /api/library/loans

Create a loan. Requires librarian token. Request body

PATCH /api/library/loans

Renew or return a loan. Requires librarian token. Request body

GET /api/library/settings

Read settings for the librarian’s school.

PUT /api/library/settings

Update settings. Requires librarian token. Request body

GET /api/library/student/loans

Returns the currently authenticated student’s loans.