> ## Documentation Index
> Fetch the complete documentation index at: https://api.skycoach.gg/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Bulk attach screenshots to offer

> Upload up to 20 screenshot files at once and attach them to the offer. The URLs are returned immediately and attached to the offer, but the images may take a short time to become accessible.
     *
     **Limit:** Total screenshots per offer is capped at `screenshots_max_count` (default 20). The request is rejected if attaching the files would exceed the limit.
     *
     **Rate limit:** 300 requests/min (shared pool with attach_screenshots_from_links).



## OpenAPI

````yaml /api-docs.json post /api/shop/marketplace/offers/{offerId}/attach_screenshots
openapi: 3.0.0
info:
  title: Currency Marketplace API
  description: API documentation for Currency Marketplace
  version: 1.0.0
servers:
  - url: https://skycoach.gg/
    description: API Server
security: []
tags:
  - name: Currency Marketplace
    description: Currency Marketplace
  - name: Offers
    description: Offers
  - name: Offer Credentials
    description: Offer Credentials
paths:
  /api/shop/marketplace/offers/{offerId}/attach_screenshots:
    post:
      tags:
        - Offers
      summary: Bulk attach screenshots to offer
      description: >-
        Upload up to 20 screenshot files at once and attach them to the offer.
        The URLs are returned immediately and attached to the offer, but the
        images may take a short time to become accessible.
             *
             **Limit:** Total screenshots per offer is capped at `screenshots_max_count` (default 20). The request is rejected if attaching the files would exceed the limit.
             *
             **Rate limit:** 300 requests/min (shared pool with attach_screenshots_from_links).
      operationId: 70afe75afcb35ecbd71f225cc18326b1
      parameters:
        - name: Accept
          in: header
          required: true
          schema:
            type: string
            default: application/json
            enum:
              - application/json
        - name: offerId
          in: path
          description: ID of the offer to attach screenshots to
          required: true
          schema:
            type: integer
            example: 123849
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              required:
                - files
              properties:
                files:
                  description: >-
                    Array of image files (1–20). Supported formats: jpeg, png,
                    jpg
                  type: array
                  items:
                    type: string
                    format: binary
              type: object
      responses:
        '200':
          description: >-
            Success. Screenshots attached to the offer; images will appear on S3
            shortly.
          content:
            application/json:
              schema:
                properties:
                  screenshots:
                    description: All current screenshots on the offer after the operation
                    type: array
                    items:
                      properties:
                        uri:
                          description: Public S3 URL of the screenshot
                          type: string
                          example: >-
                            https://s3-marketplace.skycoach.gg/uploads/product_currency_offer/screenshot/550e8400-e29b-41d4-a716-446655440000.jpg
                      type: object
                type: object
        '401':
          description: Unauthorized
        '403':
          description: Forbidden — caller does not own the offer
        '404':
          description: Offer not found
        '422':
          description: >-
            Validation error — files missing, wrong format, too many files, or
            screenshot limit exceeded
        '429':
          description: Rate limit exceeded
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````