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

# Get multipart part URLs

> Get presigned URLs for a multipart upload's parts.

Only used for a **multipart** upload (when `POST /files/uploads` returned
`upload_type: "multipart"`). Pass the `upload_id` from the intent and the part
numbers you're about to upload; you get back a presigned **PUT** URL per part.

Request them in batches if you like — you don't have to fetch all `part_count`
URLs at once. PUT each chunk to its URL, keep the `ETag` from each response, then
pass every `{part_number, etag}` to `POST /files/{file_id}/finalize`.


## OpenAPI

````yaml api-reference/openapi.json POST /files/{file_id}/parts
openapi: 3.1.0
info:
  title: Biomni Public API — V0
  description: >-
    The public API for **Biomni** — the AI agent platform for clinical genomics
    (variant annotation, ClinVar lookups, PMID-cited literature, and project
    file drives). Create projects and Tasks, send messages to the agent, stream
    its replies, manage files, and check your usage — all from your own code.


    **Authentication**: send `Authorization: Bearer <your-api-key>`. The adapter
    forwards your key straight to Biomni; it never stores it.


    **Safe retries**: send `Idempotency-Key: <token>` on POST endpoints
    (`/projects`, `/tasks`, `/messages`, `/files/uploads`) so a retried request
    won't create a duplicate.
  version: 0.1.0
servers:
  - url: https://api.phylo.bio/api/v1
security: []
paths:
  /files/{file_id}/parts:
    post:
      tags:
        - files
      summary: Get multipart part URLs
      description: Get presigned URLs for a multipart upload's parts.
      operationId: get_part_urls_files__file_id__parts_post
      parameters:
        - name: file_id
          in: path
          required: true
          schema:
            type: string
            title: File Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartUrlsRequest'
            examples:
              first_batch:
                summary: URLs for parts 1–3
                value:
                  upload_id: 2~aBcD…
                  part_numbers:
                    - 1
                    - 2
                    - 3
      responses:
        '200':
          description: Presigned PUT URL per requested part number.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadPartUrls'
              example:
                object: upload_part_urls
                part_urls:
                  '1': >-
                    https://<bucket>.s3.us-east-1.amazonaws.com/uploads/wgs_sample.cram?partNumber=1&uploadId=2~aBcD…&X-Amz-Signature=…
                  '2': >-
                    https://<bucket>.s3.us-east-1.amazonaws.com/uploads/wgs_sample.cram?partNumber=2&uploadId=2~aBcD…&X-Amz-Signature=…
                  '3': >-
                    https://<bucket>.s3.us-east-1.amazonaws.com/uploads/wgs_sample.cram?partNumber=3&uploadId=2~aBcD…&X-Amz-Signature=…
      security:
        - bearerAuth: []
components:
  schemas:
    PartUrlsRequest:
      properties:
        upload_id:
          type: string
          title: Upload Id
        part_numbers:
          items:
            type: integer
          type: array
          minItems: 1
          title: Part Numbers
          description: 1-based part numbers
      type: object
      required:
        - upload_id
        - part_numbers
      title: PartUrlsRequest
      description: Ask for presigned PUT URLs for a multipart upload's parts.
    UploadPartUrls:
      properties:
        object:
          type: string
          const: upload_part_urls
          title: Object
          default: upload_part_urls
        part_urls:
          additionalProperties:
            type: string
          type: object
          title: Part Urls
      type: object
      required:
        - part_urls
      title: UploadPartUrls
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Requires an API key. See the Authentication guide.

````