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

# Get Presigned Upload Url

> Get presigned URL for build upload (Public API with API Key authentication)



## OpenAPI

````yaml /openapi.json post /v1/builds/presigned-url
openapi: 3.1.0
info:
  title: NOQA Public API
  description: >-
    Public API for mobile app testing automation. Authenticate using API Key in
    x-api-key header.
  version: 1.0.0
servers: []
security:
  - apiKeyAuth: []
paths:
  /v1/builds/presigned-url:
    post:
      tags:
        - Builds
      summary: Get Presigned Upload Url
      description: >-
        Get presigned URL for build upload (Public API with API Key
        authentication)
      operationId: get_presigned_upload_url_v1_builds_presigned_url_post
      parameters:
        - name: x-api-key
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: API Key for authentication
            title: X-Api-Key
          description: API Key for authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PresignedUploadRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PresignedUploadResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    PresignedUploadRequest:
      properties:
        app_id:
          type: string
          format: uuid
          title: App Id
          description: Application ID
          examples:
            - 550e8400-e29b-41d4-a716-446655440000
        filename:
          type: string
          maxLength: 255
          minLength: 1
          title: Filename
          description: Original filename with extension (.ipa or .apk)
          examples:
            - app.ipa
      type: object
      required:
        - app_id
        - filename
      title: PresignedUploadRequest
      description: Request model for presigned upload URL
    PresignedUploadResponse:
      properties:
        upload_url:
          type: string
          title: Upload Url
          description: URL for uploading the file
          examples:
            - >-
              https://6692f29bf120cd4ea2a56681d11ecac0.r2.cloudflarestorage.com...
        key:
          type: string
          title: Key
          description: Object key where the file will be stored
          examples:
            - >-
              builds/d773ade3-7053-4a91-9dd8-d2e59ba58d0a/550e8400-e29b-41d4-a716-446655440000.ipa
        expires_in:
          type: integer
          title: Expires In
          description: URL expiration time in seconds
          examples:
            - 3600
        method:
          type: string
          title: Method
          description: HTTP method to use for upload
          default: PUT
          examples:
            - PUT
      type: object
      required:
        - upload_url
        - key
        - expires_in
      title: PresignedUploadResponse
      description: Response model for presigned upload URL
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API Key for authentication. Get your API key from NOQA dashboard.

````