# Start Upload

## OpenAPI Specification

```yaml
openapi: 3.0.1
info:
  title: ''
  description: ''
  version: 1.0.0
paths:
  /v1/files/uploads/start:
    post:
      summary: Start Upload
      deprecated: false
      description: ''
      tags:
        - API Reference/Management API/Files/Uploads
      parameters:
        - name: Content-Type
          in: header
          description: '[Details](doc-341635)'
          required: true
          example: application/json
          schema:
            type: string
            default: application/json
            const: application/json
        - name: X-User-Agent
          in: header
          description: Arbitrary identifier of your client. [Details](doc-341635)
          required: true
          example: '{{X_USER_AGENT}}'
          schema:
            type: string
            default: '{{X_USER_AGENT}}'
        - name: X-Product-Name
          in: header
          description: API Product for API context. [Details](doc-341635)
          required: true
          example: '{{PRODUCT_NAME}}'
          schema:
            type: string
            default: '{{PRODUCT_NAME}}'
        - name: X-Loyalty-Club-Slug
          in: header
          description: LoyaltyClub for API context. [Details](doc-342138)
          required: false
          example: '{{LOYALTY_CLUB_SLUG}}'
          schema:
            type: string
            default: '{{LOYALTY_CLUB_SLUG}}'
        - name: X-Customer
          in: header
          description: Customer for API context.  [Details](doc-342139)
          required: false
          example: '{{CUSTOMER_ID}}'
          schema:
            type: string
            default: '{{CUSTOMER_ID}}'
        - name: Authorization
          in: header
          description: '[Member](doc-342129) or [User](doc-342130) Authorization.'
          required: false
          example: Bearer {{_OAUTH_TOKEN}}
          schema:
            type: string
            default: Bearer {{_OAUTH_TOKEN}}
        - name: X-Client-Authorization
          in: header
          description: '[Token](doc-342128) Authorization.'
          example: '{{API_TOKEN}}'
          schema:
            type: string
            default: '{{API_TOKEN}}'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Start%20Upload'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Start%20Upload%20Response'
          headers: {}
          x-apidog-name: Success
      security: []
      x-apidog-folder: API Reference/Management API/Files/Uploads
      x-apidog-status: released
      x-run-in-apidog: https://app.eu.apidog.com/web/project/346351/apis/api-3652620-run
components:
  schemas:
    Start Upload:
      type: object
      properties:
        file_type:
          type: string
          description: Type of file being uploaded
          examples:
            - receipt_submission
        mime_type:
          type: string
          description: File's mime type
          enum:
            - store
            - cinema
            - dining
            - office
          x-apidog-enum:
            - value: store
              name: ''
              description: ''
            - value: cinema
              name: ''
              description: ''
            - value: dining
              name: ''
              description: ''
            - value: office
              name: ''
              description: ''
          default: store
          examples:
            - image/jpeg
        size:
          type: integer
          description: Size of file being uploaded in bytes
          minimum: 0
          exclusiveMinimum: true
          examples:
            - 1000
        file_name:
          type: string
          description: >-
            Optional name of file. It will be visible when downloading the file.
            If not provided it will be auto generated.
          examples:
            - my-file.jpeg
          nullable: true
        file_identifier:
          type: string
          description: >-
            File is attached to identifier. Identifier can be: auto-generated
            UUID or a string which identifies resource to which file will be
            attached. See general documentation to find out more.
          examples:
            - '42'
          nullable: true
        file_sub_identifier:
          type: string
          description: >-
            When single identifier can have more than 1 file attached (e.g.
            article's attachments) then this field is used to identify single
            file record.
          nullable: true
      required:
        - file_type
        - mime_type
        - size
      x-apidog-orders:
        - file_type
        - mime_type
        - size
        - file_name
        - file_identifier
        - file_sub_identifier
      x-apidog-ignore-properties: []
      x-apidog-folder: ''
    Start Upload Response:
      type: object
      properties:
        file_handle:
          type: string
          description: Handle of file which can be used to continue the upload
        file_record:
          $ref: '#/components/schemas/FileRecord'
      x-apidog-orders:
        - file_handle
        - file_record
      required:
        - file_handle
        - file_record
      x-apidog-ignore-properties: []
      x-apidog-folder: ''
    FileRecord:
      type: object
      properties:
        id:
          type: integer
        type:
          type: string
        identifier:
          type: string
          nullable: true
        sub_identifier:
          type: string
          nullable: true
        customer_id:
          type: integer
          nullable: true
        loyalty_club_id:
          type: integer
          nullable: true
        user_id:
          type: string
          nullable: true
        url:
          type: 'null'
        filename:
          type: string
          nullable: true
        mime_type:
          type: string
        size:
          type: integer
        created_at:
          type: string
        updated_at:
          type: string
        active:
          type: boolean
        last_active_at:
          type: 'null'
        duplicated_from_file_record_id:
          type: 'null'
      required:
        - id
        - type
        - identifier
        - customer_id
        - loyalty_club_id
        - user_id
        - url
        - filename
        - mime_type
        - size
        - created_at
        - updated_at
        - active
        - last_active_at
        - duplicated_from_file_record_id
      x-apidog-orders:
        - id
        - type
        - identifier
        - sub_identifier
        - customer_id
        - loyalty_club_id
        - user_id
        - url
        - filename
        - mime_type
        - size
        - created_at
        - updated_at
        - active
        - last_active_at
        - duplicated_from_file_record_id
      x-apidog-ignore-properties: []
      x-apidog-folder: ''
  securitySchemes: {}
servers:
  - url: https://api.mpc.dev.placewise.com
    description: Staging
security: []

```