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

# Upload Image

> Upload image file directly to the pre-signed URL obtained from the media upload endpoint. This is a direct upload to AWS S3 using the URL returned from GET /api/media/upload-url.



## OpenAPI

````yaml /openapi.json put /{presigned-url}
openapi: 3.1.0
info:
  title: Legitmark Partner API
  description: Comprehensive partner integration API for Legitmark authentication platform
  version: 2.0.0
  contact:
    name: Legitmark Support
    email: support@legitmark.com
    url: https://legitmark.com
servers:
  - url: https://api.legitmark.com
    description: Production API
security:
  - BearerAuth: []
tags:
  - name: Service Requests
    description: Create, retrieve, and manage authentication service requests.
  - name: Media Management
    description: Upload images for service request authentication.
  - name: Taxonomy
    description: Browse categories, types, brands, models, and services to build requests.
paths:
  /{presigned-url}:
    put:
      tags:
        - Media Management
      summary: Upload Image
      description: >-
        Upload image file directly to the pre-signed URL obtained from the media
        upload endpoint. This is a direct upload to AWS S3 using the URL
        returned from GET /api/media/upload-url.
      parameters:
        - name: presigned-url
          in: path
          required: true
          schema:
            type: string
            format: uri
          description: >-
            The complete pre-signed URL returned from GET /api/media/upload-url
            endpoint
      requestBody:
        required: true
        description: Binary image file data
        content:
          image/jpeg:
            schema:
              type: string
              format: binary
          image/png:
            schema:
              type: string
              format: binary
          image/jpg:
            schema:
              type: string
              format: binary
      responses:
        '200':
          description: Image uploaded successfully to S3
          content:
            application/xml:
              schema:
                type: string
                description: S3 response (usually empty for successful uploads)
        '400':
          description: Bad Request - Invalid file format or size exceeds limits
        '403':
          description: Forbidden - Invalid or expired pre-signed URL
      security: []
      externalDocs:
        description: AWS S3 Pre-signed URL Upload
        url: >-
          https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Bearer token authentication. Use your API key in the format: Bearer
        leo_xxxxxxxx
      x-default: leo_your_api_key_here

````