Pixieset Clients API

Client and lead CRM records.

OpenAPI Specification

pixieset-clients-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Pixieset Studio & Gallery API (Modeled, Unofficial) Clients API
  description: Pixieset does not publish a public or partner developer API - there is no self-serve API key or OAuth signup, no official API reference, and no developer program. The endpoints below model the internal, session-cookie -authenticated web APIs that power Pixieset's own Studio Manager (studio.pixieset.com) and Client Gallery (galleries.pixieset.com) web apps, as documented by an independent third party (https://trozz.github.io/pixieset-api-docs/, "unofficial documentation created through reverse engineering and API analysis... not affiliated with or endorsed by Pixieset"). Paths, parameters, and response shapes are sourced from that community project (111+ endpoints catalogued there); only a representative subset is modeled here across Clients, Sessions, Invoices, Contracts, and Gallery Collections. Nothing here is independently verified against Pixieset's current implementation - treat this as a best-effort, sourced model rather than an authoritative reference, it may change or disappear without notice, and using it against Pixieset's production systems outside of your own account should be checked against Pixieset's Terms of Service.
  version: 1.0-modeled
  contact:
    name: Pixieset
    url: https://pixieset.com
servers:
- url: https://studio.pixieset.com/api/v1
  description: Studio API (business management) - modeled, unofficial
- url: https://galleries.pixieset.com/api/v1
  description: Gallery API (client delivery & sales) - modeled, unofficial
security:
- sessionCookie: []
tags:
- name: Clients
  description: Client and lead CRM records.
paths:
  /clients/:
    get:
      operationId: listClients
      tags:
      - Clients
      summary: List clients and leads
      description: Returns a paginated list of client/lead/other contact records. Modeled from the Studio API Clients & CRM reference.
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          default: 1
      - name: per_page
        in: query
        schema:
          type: integer
          default: 25
      - name: types
        in: query
        description: 'Comma-separated: client, lead, other'
        schema:
          type: string
      responses:
        '200':
          description: Paginated list of clients.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientListResponse'
  /clients/search:
    get:
      operationId: searchClients
      tags:
      - Clients
      summary: Search clients and leads
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
      - name: types
        in: query
        schema:
          type: string
          enum:
          - all
          - client
          - lead
      - name: page
        in: query
        schema:
          type: integer
      - name: pageSize
        in: query
        schema:
          type: integer
          maximum: 100
      responses:
        '200':
          description: Matching clients.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientListResponse'
  /clients/{client_id}:
    get:
      operationId: getClient
      tags:
      - Clients
      summary: Get client details
      parameters:
      - name: client_id
        in: path
        required: true
        schema:
          type: string
          example: cl_ABC123DEF456GHI789JKL012MNO345
      responses:
        '200':
          description: Client detail.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Client'
    put:
      operationId: updateClient
      tags:
      - Clients
      summary: Update a client
      parameters:
      - name: client_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Client'
      responses:
        '200':
          description: Updated client.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Client'
components:
  schemas:
    Client:
      type: object
      properties:
        id:
          type: string
          example: cl_ABC123DEF456GHI789JKL012MNO345
        email:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        phone:
          type: string
        company:
          type: string
          nullable: true
        status_name:
          type: string
          example: Active
        type:
          type: string
          enum:
          - client
          - lead
          - other
        created_at:
          type: string
          format: date-time
    ClientListResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Client'
        meta:
          type: object
          properties:
            current_page:
              type: integer
            per_page:
              type: integer
            total:
              type: integer
  securitySchemes:
    sessionCookie:
      type: apiKey
      in: cookie
      name: session_cookie
      description: Session cookie issued by the Pixieset web login flow (studio.pixieset.com/login or galleries.pixieset.com/login). This is the internal web-app session mechanism, not a published API-key or OAuth developer credential - Pixieset does not offer either for third-party use. Write operations additionally require an X-CSRF-Token header per the reverse-engineered documentation.
externalDocs:
  description: Unofficial Pixieset API documentation (trozz/pixieset-api-docs)
  url: https://trozz.github.io/pixieset-api-docs/