Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.shootbin.com/llms.txt

Use this file to discover all available pages before exploring further.

Projects are the top-level containers in Shootbin. Each project holds one or more albums, which in turn hold your photos. The projects API lets you enumerate every project your token has access to and create new ones without touching the Shootbin UI.
Creating a project requires the create (or post:create) token scope. Listing projects is available to all authenticated tokens regardless of scope.

List all projects

Returns all projects accessible to the authenticated user, including both owned projects and projects they are a member of.
GET /api/projects

Example request

curl -X GET https://your-shootbin-domain.com/api/projects \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

Example response

[
  {
    "id": 1,
    "name": "Spring Campaign 2025",
    "personal_team": false,
    "created_at": "2025-03-10T09:15:00.000000Z",
    "updated_at": "2025-03-10T09:15:00.000000Z"
  },
  {
    "id": 2,
    "name": "Brand Portraits — March",
    "personal_team": false,
    "created_at": "2025-03-18T14:22:00.000000Z",
    "updated_at": "2025-03-20T11:05:00.000000Z"
  }
]
The response is a flat JSON array. Projects are returned in the order resolved by the user’s team memberships.

Create a project

Creates a new project owned by the authenticated user.
POST /api/projects

Request body

name
string
required
The display name of the project. Maximum 255 characters.

Example request

curl -X POST https://your-shootbin-domain.com/api/projects \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"API Test Project"}'

Example response

201 Created
{
  "id": 3,
  "name": "API Test Project",
  "personal_team": false,
  "created_at": "2025-04-01T08:00:00.000000Z",
  "updated_at": "2025-04-01T08:00:00.000000Z"
}

Response fields

id
integer
The unique identifier of the newly created project. Use this value as the {project} path parameter in all subsequent album and photo API calls.
name
string
The name you supplied at creation time.
personal_team
boolean
Whether this is the user’s personal default team. Projects created through the API always return false.
created_at
string
ISO 8601 timestamp of when the project was created.
updated_at
string
ISO 8601 timestamp of the most recent update.

Errors

StatusReason
403Token does not have the create scope, or your plan limit on the number of projects has been reached
422Validation failed — name is missing or exceeds 255 characters
Project creation is subject to your plan’s project limit. If you have reached the maximum number of projects for your plan, the API returns 403 with a message indicating the limit has been exceeded. Upgrade your plan to create additional projects.