Submit a Community Photo¶
POST /api/v1/libraries/{slug}/photo
Submit a community photo for an approved library. The photo starts in pending status and must be approved by a moderator before it appears publicly. Each user can submit up to 3 photos per library.
Auth required: Yes (Bearer token)
Content type: multipart/form-data
Path parameters¶
| Parameter | Type | Description |
|---|---|---|
slug |
string | URL slug of the library to add a photo to |
Fields¶
| Field | Type | Required | Description |
|---|---|---|---|
photo |
file | Yes | Photo of the library (JPEG/PNG/WEBP, max 8 MB) |
caption |
string | No | Optional caption for the photo (max 200 chars) |
Examples¶
import requests
resp = requests.post(
"https://bookcorners.org/api/v1/libraries/berlin-friedrichstr-12-corner-books/photo",
headers={"Authorization": f"Bearer {access_token}"},
data={"caption": "Summer view from the park side"},
files={"photo": open("community-photo.jpg", "rb")},
)
print(resp.json())
Submit without a caption¶
Response (201 Created)¶
{
"id": 15,
"caption": "Summer view from the park side",
"status": "pending",
"created_at": "2025-06-15T14:30:00Z"
}
Note
The photo will have pending status. It won't appear on the library detail page until approved by a moderator. Each user can submit up to 3 photos per library (rejected photos do not count towards this limit).
Errors¶
| Status | Cause |
|---|---|
400 |
Invalid photo format, or per-user limit of 3 photos reached for this library |
404 |
Library not found or not in approved status |
413 |
Photo exceeds 8 MB size limit |
422 |
Request validation error |
429 |
Rate limit exceeded (see Rate Limiting) |