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

# Parse Rclone Config

> Parse an rclone.conf file and return a preview of discovered remotes.

**Required Role:** ADMIN or OWNER

This is step 1 of the import workflow. Send the raw rclone.conf content
and receive a breakdown of:
- **remotes**: Successfully parsed remotes with their mapped types
- **errors**: Remotes that couldn't be parsed (missing fields, unknown types)
- **skipped**: Recognized but unsupported provider types (e.g., Google Drive, Dropbox)

Request body:
```json
{
    "content": "[MyS3Remote]\ntype = s3\nprovider = AWS\naccess_key_id = AKIA...\n..."
}
```

The response includes metadata about each remote but NOT the actual credentials.
Credential values are only sent in the confirm step.



## OpenAPI

````yaml POST /v1/teams/{team_id}/rclone-import/parse
openapi: 3.1.0
info:
  title: Data Raven API
  description: Cloud-to-cloud data transfer platform powered by RClone
  version: 0.5.0
servers: []
security: []
paths:
  /v1/teams/{team_id}/rclone-import/parse:
    post:
      tags:
        - Rclone Import
      summary: Parse Rclone Config
      description: >-
        Parse an rclone.conf file and return a preview of discovered remotes.


        **Required Role:** ADMIN or OWNER


        This is step 1 of the import workflow. Send the raw rclone.conf content

        and receive a breakdown of:

        - **remotes**: Successfully parsed remotes with their mapped types

        - **errors**: Remotes that couldn't be parsed (missing fields, unknown
        types)

        - **skipped**: Recognized but unsupported provider types (e.g., Google
        Drive, Dropbox)


        Request body:

        ```json

        {
            "content": "[MyS3Remote]\ntype = s3\nprovider = AWS\naccess_key_id = AKIA...\n..."
        }

        ```


        The response includes metadata about each remote but NOT the actual
        credentials.

        Credential values are only sent in the confirm step.
      operationId: parse_rclone_config_v1_teams__team_id__rclone_import_parse_post
      parameters:
        - name: team_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Team Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RcloneParseRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RcloneParseResponse'
        '400':
          description: Invalid rclone.conf format
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    RcloneParseRequest:
      properties:
        content:
          type: string
          maxLength: 524288
          minLength: 1
          title: Content
          description: Raw rclone.conf file content
      type: object
      required:
        - content
      title: RcloneParseRequest
      description: Request body for rclone.conf parsing.
    RcloneParseResponse:
      properties:
        remotes:
          items:
            $ref: '#/components/schemas/ParsedRemotePreview'
          type: array
          title: Remotes
          description: Successfully parsed remotes ready for import
        errors:
          items:
            $ref: '#/components/schemas/ParseErrorDetail'
          type: array
          title: Errors
          description: Remotes that failed to parse
        skipped:
          items:
            $ref: '#/components/schemas/ParseErrorDetail'
          type: array
          title: Skipped
          description: Remotes skipped (unsupported but recognized provider types)
      type: object
      title: RcloneParseResponse
      description: Response from parsing an rclone.conf file (step 1 - preview).
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ParsedRemotePreview:
      properties:
        name:
          type: string
          title: Name
          description: Remote name from rclone.conf (section header)
        location_type:
          $ref: '#/components/schemas/LocationType'
          description: Mapped DataRaven provider type
        auth_method:
          $ref: '#/components/schemas/AuthMethod'
          description: Mapped authentication method
        region:
          anyOf:
            - type: string
            - type: 'null'
          title: Region
          description: Region extracted from config
        bucket_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Bucket Name
          description: Bucket/container name if found in config
        endpoint_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Endpoint Url
          description: Custom endpoint URL if found
        has_credentials:
          type: boolean
          title: Has Credentials
          description: Whether credential fields were found
        credential_fields:
          items:
            type: string
          type: array
          title: Credential Fields
          description: Names of credential fields found (not values)
        provider:
          anyOf:
            - type: string
            - type: 'null'
          title: Provider
          description: S3 sub-provider (e.g., AWS, Cloudflare)
      type: object
      required:
        - name
        - location_type
        - auth_method
        - has_credentials
      title: ParsedRemotePreview
      description: Preview of a single parsed rclone remote for user review.
    ParseErrorDetail:
      properties:
        remote_name:
          type: string
          title: Remote Name
        message:
          type: string
          title: Message
      type: object
      required:
        - remote_name
        - message
      title: ParseErrorDetail
      description: Error or skip detail from parsing.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    LocationType:
      type: string
      enum:
        - s3
        - azure_blob
        - gcs
        - r2
        - b2
        - wasabi
        - railway
        - oracle_object_storage_s3
        - s3_compatible
        - tigris
        - digitalocean_spaces
        - hetzner
        - rabata
      title: LocationType
      description: Cloud storage provider types.
    AuthMethod:
      type: string
      enum:
        - s3_access_key
        - r2_access_key
        - wasabi_access_key
        - railway_access_key
        - oracle_object_storage_s3_access_key
        - s3_compatible_access_key
        - tigris_access_key
        - digitalocean_spaces_access_key
        - hetzner_access_key
        - rabata_access_key
        - azure_account_key
        - azure_sas_url
        - gcs_service_account
        - b2_application_key
      title: AuthMethod
      description: |-
        Authentication mechanism identifiers for cloud storage credentials.

        Each provider may support one or more authentication methods.
        Explicit names ensure clarity and make it easy to add new methods.
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````