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.

The users API lets you manage the members of your Shootbin team programmatically. You can list all users in your current team, create new login accounts, fetch or update individual user profiles, and remove users. This is particularly useful for agencies that need to provision additional logins as part of an onboarding flow.
User management endpoints are protected by your API token and the standard Shootbin authorization policies. Agency accounts can create up to 5 additional logins.

List all users

Returns all users belonging to the current team.
GET /api/user

Example request

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

Example response

[
  {
    "id": 1,
    "name": "Jane Doe",
    "email": "jane@example.com",
    "proofing_watermark_text": "Jane Studio",
    "created_at": "2025-01-15T09:00:00.000000Z",
    "updated_at": "2025-03-20T14:30:00.000000Z"
  },
  {
    "id": 2,
    "name": "John Doe",
    "email": "john@example.com",
    "proofing_watermark_text": null,
    "created_at": "2025-02-10T11:00:00.000000Z",
    "updated_at": "2025-02-10T11:00:00.000000Z"
  }
]

Create a user

Creates a new user account and adds them to the current team.
POST /api/user

Request body

name
string
required
The full name of the new user.
email
string
required
The email address for the new account. Must be unique across the platform.
password
string
required
The initial password for the account.
password_confirmation
string
required
Must match the password field exactly.
terms
string
required
Must be the string "true" to indicate acceptance of the terms of service.

Example request

curl -X POST https://your-shootbin-domain.com/api/user \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "name":"John Doe",
    "email":"john@example.com",
    "password":"secure_password_123",
    "password_confirmation":"secure_password_123",
    "terms":"true"
  }'

Example response

201 Created
{
  "id": 3,
  "name": "John Doe",
  "email": "john@example.com",
  "proofing_watermark_text": null,
  "created_at": "2025-04-01T10:00:00.000000Z",
  "updated_at": "2025-04-01T10:00:00.000000Z"
}

Errors

StatusReason
403Insufficient authorization to create users (not the account owner, or Agency login limit reached)
422Validation failed — check errors for field-level messages such as email already taken or password mismatch
Agency accounts are limited to 5 additional logins. Attempting to create a user beyond that limit returns 403. Review the existing users in your team before creating new ones.

Get a specific user

Returns the profile of a single user by their ID.
GET /api/user/{user}

Path parameters

user
integer
required
The ID of the user to retrieve.

Example request

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

Example response

{
  "id": 2,
  "name": "John Doe",
  "email": "john@example.com",
  "proofing_watermark_text": null,
  "created_at": "2025-02-10T11:00:00.000000Z",
  "updated_at": "2025-02-10T11:00:00.000000Z"
}

Response fields

id
integer
The user’s unique ID.
name
string
The user’s full name.
email
string
The user’s email address.
proofing_watermark_text
string | null
The custom text overlaid on proofing web variants generated for this user’s projects. null if watermarking is not configured.

Update a user

Updates profile information for an existing user.
PATCH /api/user/{user}

Path parameters

user
integer
required
The ID of the user to update.

Request body

All fields are optional. Include only the fields you want to change.
name
string
The user’s updated full name.
email
string
The user’s updated email address. Must be unique across the platform.
proofing_watermark_text
string
Custom watermark text to overlay on proofing images for this user’s projects. Pass an empty string to clear it.

Example request

curl -X PATCH https://your-shootbin-domain.com/api/user/USER_ID \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "name":"Jane Doe",
    "email":"jane@example.com",
    "proofing_watermark_text":"Jane Proofing Image"
  }'

Example response

{
  "id": 1,
  "name": "Jane Doe",
  "email": "jane@example.com",
  "proofing_watermark_text": "Jane Proofing Image",
  "created_at": "2025-01-15T09:00:00.000000Z",
  "updated_at": "2025-04-03T09:15:00.000000Z"
}
Updating proofing_watermark_text takes effect immediately for newly uploaded photos and revisions. Existing web variants are not retroactively re-watermarked.

Delete a user

Permanently deletes a user account.
DELETE /api/user/{user}

Path parameters

user
integer
required
The ID of the user to delete.

Example request

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

Response

204 No Content — empty body on success.

Errors

StatusReason
403Insufficient authorization to delete this user
404User not found
User deletion is permanent and cannot be undone. All data associated with the user account will be removed according to Shootbin’s deletion policies.