> ## Documentation Index
> Fetch the complete documentation index at: https://developer.buildpass.global/llms.txt
> Use this file to discover all available pages before exploring further.

# List photos

> List photos for a builder. The source defaults to GALLERY and can be repeated to include photos shown in other BuildPass UI areas. Returns signed image URLs. Results are paginated with a default and maximum limit of 25.

Requires `read:photos`. Returns active gallery photo attachments for the builder, including a short-lived signed `imageUrl`. Optional filters: `projectId=proj_<id>` and `folderId=<folderId>`.


## OpenAPI

````yaml GET /builders/{builderId}/photos
openapi: 3.0.0
info:
  title: BuildPass API
  description: >-
    Approved integrators can connect to the BuildPass API on behalf of builders
    to build connections between a wide range of construction platforms.
  version: 1.0.0
servers:
  - url: https://api.buildpass.global
    description: Production server
security:
  - OAuth2: []
paths:
  /builders/{builderId}/photos:
    get:
      tags:
        - Photos
      summary: List photos
      description: >-
        List photos for a builder. The source defaults to GALLERY and can be
        repeated to include photos shown in other BuildPass UI areas. Returns
        signed image URLs. Results are paginated with a default and maximum
        limit of 25.
      parameters:
        - name: builderId
          in: path
          required: true
          schema:
            type: string
        - name: projectId
          in: query
          required: false
          schema:
            type: string
        - name: folderId
          in: query
          required: false
          schema:
            type: string
        - name: source
          description: >-
            BuildPass UI photo source. Repeat the parameter to include multiple
            sources, for example source=GALLERY&source=DEFECT.
          in: query
          required: false
          style: form
          explode: true
          schema:
            type: array
            default:
              - GALLERY
            items:
              type: string
              enum:
                - GALLERY
                - SITE_DIARY
                - PRE_START
                - CHECKLIST
                - ITP
                - PLATFORM_ACTION
                - DEFECT
        - name: offset
          description: >-
            The number of items to skip before starting to collect the result
            set.
          in: query
          required: false
          schema:
            type: integer
            default: 0
            example: 0
        - name: limit
          description: The number of items to return.
          in: query
          required: false
          schema:
            type: integer
            default: 25
            example: 25
            maximum: 25
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Photo'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
      security:
        - OAuth2:
            - read:photos
components:
  schemas:
    Photo:
      type: object
      properties:
        id:
          type: string
        builderId:
          type: string
          nullable: true
        projectId:
          type: string
          nullable: true
        source:
          type: string
          description: The BuildPass UI source that owns the photo attachment.
          enum:
            - GALLERY
            - SITE_DIARY
            - PRE_START
            - CHECKLIST
            - ITP
            - PLATFORM_ACTION
            - DEFECT
        folderId:
          type: string
          nullable: true
        fileName:
          type: string
        contentType:
          type: string
        key:
          type: string
        fileSize:
          type: string
        description:
          type: string
          nullable: true
        photoTakenDate:
          type: string
          format: date-time
          nullable: true
        sortDate:
          type: string
          format: date-time
          nullable: true
        metadata:
          type: object
          nullable: true
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        archivedAt:
          type: string
          format: date-time
          nullable: true
        imageUrl:
          type: string
          format: uri
          nullable: true
          description: Short-lived signed URL for downloading the photo image.
    PaginationMeta:
      type: object
      properties:
        totalCount:
          type: integer
          description: How many total items there are.
          example: 100
        totalPages:
          type: integer
          description: How many pages there are based on your offset and limit.
          example: 4
        offset:
          type: integer
          description: How many items skipped before starting to collect the result set.
          example: 0
        limit:
          type: integer
          description: How many items you requested to return.
          example: 25
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.buildpass.global/oauth/token
          scopes:
            read:subcontractors: Read subcontractors
            write:subcontractors: Write subcontractors
            read:prequalifications: Read prequalifications
            write:prequalifications: Write prequalifications
            read:insurances: Read insurances
            write:insurances: Write insurances
            read:contacts: Read contacts
            read:swms: Read SWMS
            read:timesheets: Read timesheets
            read:inductions: Read inductions
            read:meetings: Read meetings
            write:meetings: Write meetings
            read:photos: Read photos and photo folders
            write:photos: Create, update, delete, and sync photos and photo folders

````