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

# Generate a presigned URL for conversation upload

> Generates a presigned URL that can be used to upload conversations. The URL expires in 30 minutes.

<Note>
  For detailed instructions on how to create and use the presigned URL to upload conversations, see the [Uploading conversations guide](/guides/uploads/conversations).
</Note>


## OpenAPI

````yaml POST /conversations/upload/presign
openapi: 3.0.1
info:
  title: Rulebase API
  version: 1.0.0
  description: Rulebase API
servers:
  - url: https://api.rulebase.co
security: []
paths:
  /conversations/upload/presign:
    post:
      tags:
        - Conversations
      summary: Generate a presigned URL for conversation upload
      description: >-
        Generates a presigned URL that can be used to upload conversations. The
        URL expires in 30 minutes.
      operationId: generatePresignedUrlForConversationUpload
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                upload:
                  type: object
                  description: The conversation upload details
                  properties:
                    filename:
                      type: string
                      description: >-
                        The name of the file to be uploaded, including its
                        extension (e.g., "conversation.pdf")
                      example: conversation.pdf
                    source:
                      type: string
                      description: >-
                        The source system or platform from which the
                        conversation is being uploaded (e.g., "outreach_kaia",
                        "xcally")
                      example: outreach_kaia
                      enum:
                        - outreach_kaia
                        - xcally
                  required:
                    - filename
                    - source
              required:
                - upload
        required: true
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  upload:
                    type: object
                    description: The conversation upload details
                    properties:
                      id:
                        type: string
                        description: Unique identifier for this upload request
                      url:
                        type: string
                        description: >-
                          The presigned URL where the file should be uploaded.
                          Expires in 30 minutes.
                    required:
                      - id
                      - url
                required:
                  - upload
        '401':
          description: Unauthorized response
      security:
        - bearer_auth: []
components:
  securitySchemes:
    bearer_auth:
      type: http
      scheme: bearer
      description: API key authentication using Bearer Token

````