ShootProof

ShootProof is a SaaS platform for professional photographers that handles client galleries, proofing, digital download rules, watermarking, contracts, invoicing, and print/product e-commerce fulfilled through partner labs. The ShootProof Studio API is a RESTful, hypermedia (HAL-style links) API secured with three-legged OAuth 2.0, published with a downloadable OpenAPI 3.0 document (oas/studio.json) at developer.shootproof.com. It exposes a studio's Brands, Events (client galleries) and Albums, Photos, Contacts (clients), Contracts, Orders, Invoices, Price Sheets, and Email automation as linked resources under a single https://api.shootproof.com/studio base URL. API access is included free with a ShootProof account; a client ID is issued by ShootProof support on request. A separate legacy REST API also remains documented for older integrations.

6 APIs 0 Features
PhotographyClient GalleriesProofingDigital DownloadsPhoto Studio ManagementE-CommerceSaaS

APIs

ShootProof Studios API

Read and update a photographer's Studio and its Brands - list a studio's brands, get and partially update a brand, manage brand themes and homepage settings, list watermarks, an...

ShootProof Events & Galleries API

Create, list, update, and batch-manage Events (client galleries and shoots) and the Albums nested inside them - event categories and defaults, per-event/album digital download r...

ShootProof Photos API

List, retrieve, create, update, and delete the photos inside an event - generate a signed photo upload policy, redirect to a photo's original file, add or remove photos from an ...

ShootProof Clients API

Manage the contacts (clients) attached to a brand - create, list, search, update, and delete contacts, look up referral tags and relationships, send a contact an email, and read...

ShootProof Orders API

Create and manage print/product orders placed against a brand (beta, per ShootProof's own API tagging) - list and retrieve orders, add/update/remove order items tied to specific...

ShootProof Contracts API

Create and manage client contracts and reusable contract templates - full CRUD on contracts and templates, updating contract status and associated contacts, and emailing a contr...

Collections

Pricing Plans

Shootproof Plans Pricing

5 plans

PLANS

Rate Limits

Shootproof Rate Limits

4 limits

RATE LIMITS

FinOps

Resources

🔗
DomainSecurity
DomainSecurity
🔑
Authentication
Authentication
🔑
OAuthScopes
OAuthScopes
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps
📰
Blog
Blog

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: ShootProof Studio API
  version: '1.0'
request:
  auth:
    type: bearer
    token: '{{bearerToken}}'
items:
- info:
    name: Studios
    type: folder
  items:
  - info:
      name: List a studio's brands.
      type: http
    http:
      method: GET
      url: https://api.shootproof.com/studio/brand
    docs: Lists all of a studio's brands.
  - info:
      name: Get a brand.
      type: http
    http:
      method: GET
      url: https://api.shootproof.com/studio/brand/:brandId
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
    docs: Retrieves a brand by ID.
- info:
    name: Events & Galleries
    type: folder
  items:
  - info:
      name: List a brand's events.
      type: http
    http:
      method: GET
      url: https://api.shootproof.com/studio/brand/:brandId/event
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
    docs: Lists all events (client galleries/shoots) for a brand.
  - info:
      name: Create an event.
      type: http
    http:
      method: POST
      url: https://api.shootproof.com/studio/brand/:brandId/event
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
      body:
        type: json
        data: "{\n  \"name\": \"Smith Wedding\",\n  \"eventDate\": \"2026-09-12\"\n}"
    docs: Creates a new event.
  - info:
      name: List an event's albums.
      type: http
    http:
      method: GET
      url: https://api.shootproof.com/studio/brand/:brandId/event/:eventId/album
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
      - name: eventId
        value: ''
        type: path
        description: The ID of the event.
    docs: Lists all albums nested inside an event.
- info:
    name: Photos
    type: folder
  items:
  - info:
      name: List all event photos.
      type: http
    http:
      method: GET
      url: https://api.shootproof.com/studio/brand/:brandId/event/:eventId/photo
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
      - name: eventId
        value: ''
        type: path
        description: The ID of the event.
    docs: Lists all photos uploaded to an event.
  - info:
      name: Generate a photo upload policy.
      type: http
    http:
      method: POST
      url: https://api.shootproof.com/studio/brand/:brandId/event/:eventId/photo/upload-policy
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
      - name: eventId
        value: ''
        type: path
        description: The ID of the event.
    docs: Generates a signed upload policy for uploading photo bytes directly to storage.
  - info:
      name: Get a photo's original file.
      type: http
    http:
      method: GET
      url: https://api.shootproof.com/studio/brand/:brandId/event/:eventId/photo/:eventPhotoId/original
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
      - name: eventId
        value: ''
        type: path
        description: The ID of the event.
      - name: eventPhotoId
        value: ''
        type: path
        description: The ID of the event photo.
    docs: Redirects to a temporary signed URL for the photo's original image.
- info:
    name: Clients
    type: folder
  items:
  - info:
      name: List a brand's contacts.
      type: http
    http:
      method: GET
      url: https://api.shootproof.com/studio/brand/:brandId/contact
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
    docs: Lists all contacts (clients) for a brand.
  - info:
      name: Create a contact.
      type: http
    http:
      method: POST
      url: https://api.shootproof.com/studio/brand/:brandId/contact
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
      body:
        type: json
        data: "{\n  \"firstName\": \"Jane\",\n  \"lastName\": \"Doe\",\n  \"email\": \"jane@example.com\"\n}"
    docs: Creates a new contact.
- info:
    name: Orders
    type: folder
  items:
  - info:
      name: List orders for the current brand.
      type: http
    http:
      method: GET
      url: https://api.shootproof.com/studio/brand/:brandId/order
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
    docs: Lists all orders for a brand.
  - info:
      name: Get a single order.
      type: http
    http:
      method: GET
      url: https://api.shootproof.com/studio/brand/:brandId/order/:orderId
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
      - name: orderId
        value: ''
        type: path
        description: The ID of the order.
    docs: Returns a single order by ID.
- info:
    name: Contracts
    type: folder
  items:
  - info:
      name: List a brand's contracts.
      type: http
    http:
      method: GET
      url: https://api.shootproof.com/studio/brand/:brandId/contract
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
    docs: Lists all contracts for a brand.
  - info:
      name: Send a contract email.
      type: http
    http:
      method: POST
      url: https://api.shootproof.com/studio/brand/:brandId/contract/:contractId/email
      params:
      - name: brandId
        value: ''
        type: path
        description: The ID of the brand.
      - name: contractId
        value: ''
        type: path
        description: The ID of the contract.
      body:
        type: json
        data: "{\n  \"subject\": \"Please review and sign your contract\",\n  \"body\": \"Your contract is ready for signature.\"\
          \n}"
    docs: Sends the contract to its associated contacts by email for review and e-signature.
bundled: true