> ## 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 upload URLs for a multipart upload's parts.

Used only when `POST /experimental/files` returned `upload_type: "multipart"`. Pass the `upload_id` from that response and the part numbers you are about to upload; each one gets a PUT URL.

You can request parts in batches. PUT each chunk to its URL, keep the `ETag` from each response, then pass every `{part_number, etag}` to `POST /experimental/files/{file_id}/finalize`.


## OpenAPI

````yaml api-reference/openapi.json POST /experimental/files/{file_id}/parts
openapi: 3.1.0
info:
  title: Phylo API — V1
  description: Public API for Phylo, the biomedical AI agent platform.
  version: 0.1.0
servers:
  - url: https://api.phylo.bio/v1
    description: >-
      Self-serve platform. Enterprise customers should contact the Phylo team to
      get their API base URL. Learn more at https://phylo.bio/enterprise.
security: []
paths:
  /experimental/files/{file_id}/parts:
    post:
      tags:
        - files
      summary: Get multipart part URLs
      description: Get upload URLs for a multipart upload's parts.
      operationId: get_part_urls_experimental_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:
                type: upload_part_urls
                part_urls:
                  '1': >-
                    https://<bucket>.s3.us-west-2.amazonaws.com/orgs/<org>/users/<user>/uploads/projects/proj_6b3606df1c/wgs_sample.cram?uploadId=aUU9ZO9qqsHiXssnDqXzfUlAMHYzK537OiMUJrsJrfsCoHXFm...&partNumber=1&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=...
                  '2': >-
                    https://<bucket>.s3.us-west-2.amazonaws.com/orgs/<org>/users/<user>/uploads/projects/proj_6b3606df1c/wgs_sample.cram?uploadId=aUU9ZO9qqsHiXssnDqXzfUlAMHYzK537OiMUJrsJrfsCoHXFm...&partNumber=2&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Signature=...
                  '3': >-
                    https://<bucket>.s3.us-west-2.amazonaws.com/orgs/<org>/users/<user>/uploads/projects/proj_6b3606df1c/wgs_sample.cram?uploadId=aUU9ZO9qqsHiXssnDqXzfUlAMHYzK537OiMUJrsJrfsCoHXFm...&partNumber=3&X-Amz-Algorithm=AWS4-HMAC-SHA256&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
      additionalProperties: false
      type: object
      required:
        - upload_id
        - part_numbers
      title: PartUrlsRequest
      description: Ask for presigned PUT URLs for a multipart upload's parts.
    UploadPartUrls:
      properties:
        type:
          type: string
          const: upload_part_urls
          title: Type
          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.

````