Skip to content

Changelog

v1.8.0

  • Favourites: authenticated users can mark (POST /libraries/{slug}/favourite) and unmark (DELETE /libraries/{slug}/favourite) approved libraries as favourites.
  • Favourites list endpoint (GET /api/v1/libraries/favourites) returns the user's favourited libraries with pagination, ordered by when they were favourited.
  • Library detail, list, and latest endpoints now include an is_favourited field indicating whether the authenticated user has favourited the library.

v1.7.0

  • Change email endpoint (PATCH /auth/me/email) allows authenticated users to update their email address with uniqueness validation.
  • Change password endpoint (PUT /auth/me/password) allows authenticated users to change their password with current password verification and Django password policy validation.
  • Delete account endpoint (DELETE /auth/me) allows authenticated users to permanently delete their account with password confirmation.

v1.6.0

  • Library submissions are now enriched with AI-generated name and description when the user leaves those fields blank. The description is also used as image alt text for improved accessibility.

v1.5.0

  • Social login endpoint (POST /auth/social) exchanges native Apple or Google identity tokens for JWT token pairs. Supports automatic account creation, email-based account linking, and Apple first sign-in name capture.

v1.4.0

  • Country list endpoint (GET /api/v1/libraries/countries/) returns all countries with approved libraries and counts, ordered by count descending

v1.3.0

  • Community photo endpoint (POST /api/v1/libraries/{slug}/photo) is now documented
  • Fixed q search parameter description: searches name and description (not address)
  • Fixed image format documentation: JPEG/PNG/WEBP accepted (not just JPEG/PNG)
  • Fixed GET /api/v1/statistics/ path in docs (was missing /api/v1/ prefix)
  • Added POST /libraries/{slug}/photo and GET /statistics/ to rate-limiting documentation

v1.2.0

  • Login endpoint (POST /auth/login) now accepts email address in the username field, matching the web login flow. Email lookup is case-insensitive and the identifier is trimmed before authentication.

v1.1.0

  • Public statistics endpoint (GET /api/v1/statistics/) with totals, top countries, and cumulative growth series
  • Community photo submissions count towards the "libraries with photos" statistic

v1.0.0

Initial release

  • JWT authentication (register, login, refresh, me)
  • Library listing with text search, city/country/postal code filtering, and proximity search
  • Library detail by slug with owner visibility for pending submissions
  • Library submission with photo upload and moderation workflow
  • Issue reporting with reason categories and optional photo
  • Paginated responses with navigation metadata
  • Rate limiting for read, write, and auth endpoints
  • Consistent error response format across all endpoints