# Upload File to S3

## OpenAPI Specification

```yaml
openapi: 3.0.1
info:
  title: ''
  description: ''
  version: 1.0.0
paths:
  /private.zid.store:
    get:
      summary: Upload File to S3
      deprecated: false
      description: >-
        The "Upload File to S3" endpoint provides a pre-signed URL for secure,
        temporary access to upload files directly to Amazon S3 storage. This
        enables clients to upload files without needing direct S3 credentials,
        ensuring secure and efficient file handling for digital assets.


        <Accordion title="🔑Scopes" defaultOpen>
            
          `products.read` - Products Read
         
        </Accordion>
      tags:
        - Default module/Apps/Merchant APIs/Products/Digital Products
      parameters: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                key:
                  description: >-
                    The path within S3 where the uploaded file will be stored.
                    It includes a unique identifier to prevent overwriting,
                    typically organized by product type and ID.
                  example: >-
                    9fc92096-ffbe-4bca-9b8e-6682137fe7b6/product-downloadables/8244389b-8fe3-47dc-85ae-2f8e9e95f899:
                  type: string
                AWSAccessKeyId:
                  description: >-
                    The AWS access key ID needed for authenticated access to the
                    S3 bucket, providing permission to upload the file.
                  example: 'AKIAXOL9MW23VCA3WLDK:'
                  type: string
                policy:
                  description: >-
                    A Base64-encoded policy document that outlines the
                    conditions and permissions for the upload request, including
                    expiration time and allowed content length.
                  example: >-
                    eyJleHBgcmF0aW9uIjogIjIwMjQtMTEtMDNUMDU6NTU6MTZaIiwgImNvbmRpdGlvbnMiOiBbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsIDAsIDEwNzM3NDE4MjRdLCB7ImJ1Y2tldCI6ICJwcml2YXRlLnppZC5zdG9yZSJ9LCB7ImtleSI6ICI5ZmM5Mjk5Ni1mZmJlLTRiY2EtOWI4ZS02NjgyMTM3ZmU3YjYvcHJvZHVjdC1kb3dubG9hZGFibGVzLzgyNDQzODliLThmZTMtNDdkYy04NWFlLTJmOGU5ZTk1Zjg5OSJ9XX0=:
                  type: string
                signature:
                  description: >-
                    An encrypted signature generated from the policy to verify
                    that the upload request complies with the specified
                    conditions.
                  example: 'R5oESN99BQbUFL52iG64WSTaCAbw=:'
                  type: string
                file:
                  description: >-
                    The file to be uploaded to S3. It is sent as binary data in
                    the request body, enabling direct transfer to the specified
                    storage location.
                  example: ''
                  type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
                x-apidog-orders: []
                x-apidog-ignore-properties: []
          headers: {}
          x-apidog-name: OK
        '401':
          description: ''
          content:
            application/json:
              schema:
                type: object
                description: >-
                  Response returned when the request cannot be authenticated
                  because the required credentials are missing, invalid, or
                  expired.
                properties:
                  status:
                    type: string
                    description: Indicates the overall status of the API response.
                    examples:
                      - error
                  message:
                    type: object
                    description: >-
                      Contains structured details explaining why the request
                      could not be authenticated.
                    properties:
                      type:
                        type: string
                        description: Indicates the category of the response message.
                        examples:
                          - error
                      code:
                        type: string
                        description: >-
                          A machine-readable code identifying the authentication
                          error. Returns null when no specific code is
                          available.
                        examples:
                          - UNAUTHORIZED
                        nullable: true
                      name:
                        type: string
                        description: >-
                          A short, human-readable title describing the
                          authentication error. Returns null when no title is
                          available.
                        examples:
                          - Unauthorized
                        nullable: true
                      description:
                        type: string
                        description: >-
                          A human-readable explanation of why the request could
                          not be authenticated. Returns null when no detailed
                          explanation is available.
                        examples:
                          - >-
                            Authentication credentials are missing, invalid, or
                            expired.
                        nullable: true
                    required:
                      - type
                      - code
                      - name
                      - description
                    x-apidog-orders:
                      - type
                      - code
                      - name
                      - description
                    x-apidog-ignore-properties: []
                required:
                  - status
                  - message
                x-apidog-orders:
                  - status
                  - message
                examples:
                  - status: error
                    message:
                      type: error
                      code: UNAUTHORIZED
                      name: Unauthorized
                      description: >-
                        Authentication credentials are missing, invalid, or
                        expired.
                x-apidog-ignore-properties: []
              examples:
                '1':
                  summary: Example 1
                  value:
                    status: error
                    message:
                      type: error
                      code: ERROR_SESSION_MISSING
                      name: Sorry
                      description: Please login first.
                '2':
                  summary: Example 2
                  value:
                    status: error
                    message:
                      type: error
                      code: ERROR_SESSION_INVALID
                      name: Sorry
                      description: Login session expired. Please login again.
                '3':
                  summary: Example 3
                  value:
                    status: error
                    message:
                      type: error
                      code: ERROR_SESSION_INVALID
                      name: Sorry
                      description: Invalid authentication
          headers: {}
          x-apidog-name: Unauthorized
        '500':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Status of the error.
                  message:
                    $ref: '#/components/schemas/ResponseEnvelopMessage'
                required:
                  - status
                  - message
                x-apidog-orders:
                  - status
                  - message
                x-apidog-ignore-properties: []
              example:
                status: error
                message:
                  type: error
                  code: MSG_HIDDEN
                  name: Error
                  description: Internal Server Error
          headers: {}
          x-apidog-name: Internal Server error
      security: []
      x-apidog-folder: Default module/Apps/Merchant APIs/Products/Digital Products
      x-apidog-status: released
      x-run-in-apidog: https://app.apidog.com/web/project/613905/apis/api-11396102-run
components:
  schemas:
    ResponseEnvelopMessage:
      type: object
      properties:
        type:
          type: string
          description: Type of response message returned by the API.
          examples:
            - success
        code:
          type: string
          description: Response code returned by the API, if available.
          examples:
            - MSG_POPUP_OK
          nullable: true
        name:
          type: string
          description: Name or title of the response message, if available.
          examples:
            - Coupons
          nullable: true
        description:
          type: string
          description: Detailed description of the response message, if available.
          examples:
            - Coupons created successfully
          nullable: true
      required:
        - type
        - code
        - name
        - description
      description: Additional response metadata.
      x-apidog-orders:
        - type
        - code
        - name
        - description
      x-apidog-ignore-properties: []
      x-apidog-folder: ''
  securitySchemes: {}
servers:
  - url: https://api.zid.sa/
    description: Prod Env
security: []

```
