Breeze Withdrawals API

Withdrawal operations

OpenAPI Specification

breeze-withdrawals-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Breeze Admin Withdrawals API
  description: A comprehensive API for managing yield farming operations, funds, and user authentication
  contact:
    name: Breeze Team
    email: support@breeze.com
  license:
    name: Proprietary
    url: https://breeze.com/license
  version: 1.0.0
servers:
- url: http://localhost:8080
  description: Local development server
- url: https://api.breeze.com
  description: Production server
tags:
- name: Withdrawals
  description: Withdrawal operations
paths:
  /withdraw/ix:
    post:
      tags:
      - Withdrawals
      operationId: process_for_withdraw_with_instruction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StructuredInputForWithdraw'
        required: true
      responses:
        '200':
          description: Withdraw instruction prepared successfully
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - api_key: []
  /withdraw/tx:
    post:
      tags:
      - Withdrawals
      operationId: process_for_withdraw_with_transaction
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StructuredInputForWithdraw'
        required: true
      responses:
        '200':
          description: Withdraw transaction prepared successfully
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - api_key: []
components:
  schemas:
    InputForWithdraw:
      type: object
      properties:
        all:
          type:
          - boolean
          - 'null'
        amount:
          type:
          - integer
          - 'null'
          format: int64
          minimum: 0
        base_asset:
          type:
          - string
          - 'null'
        create_wsol_ata:
          type:
          - boolean
          - 'null'
          description: 'If base asset is WSOL and `user_token_account` is not provided, prepend an ATA-create ix.

            Defaults to `true` when omitted.'
        detect_wsol_ata:
          type:
          - boolean
          - 'null'
          description: 'If `true`, the API will do an RPC round-trip to detect whether the user''s WSOL ATA exists.

            When enabled (and base asset is WSOL), this overrides the other WSOL ATA flags:

            - If the WSOL ATA does not exist: `create_wsol_ata=true` and `unwrap_wsol_ata=true`

            - If the WSOL ATA exists: `create_wsol_ata=false` and `unwrap_wsol_ata=false`


            Defaults to `false` when omitted.'
        exclude_fees:
          type:
          - boolean
          - 'null'
          description: Defaults to `false`, when true excludes fees from the amount
        fund_id:
          type:
          - string
          - 'null'
          description: 'Deprecated: `fund_id` is no longer supported for withdrawals.

            Use `strategy_id` + `base_asset` instead.'
          deprecated: true
        is_agent:
          type:
          - boolean
          - 'null'
        no_balance_checks:
          type:
          - boolean
          - 'null'
          description: 'When `true`, skips API-side balance preflight checks: the "insufficient shares"

            error and the requirement that a `user_fund` record exist for the (user, fund)

            pair. Intended for test environments like surfpool / mainnet forks where the

            on-chain state has balances the API database doesn''t know about. The on-chain

            Breeze program still validates share availability, so this only relaxes

            API-side preflight — it does not let anyone withdraw funds they don''t actually

            own on-chain. Defaults to `false`.'
        payer_key:
          type:
          - string
          - 'null'
        strategy_id:
          type:
          - string
          - 'null'
        unwrap_wsol_ata:
          type:
          - boolean
          - 'null'
          description: 'If base asset is WSOL, unwrap to SOL by syncing and closing the user''s WSOL ATA at the end.

            Defaults to `false` when omitted.'
        user_key:
          type:
          - string
          - 'null'
        user_token_account:
          type:
          - string
          - 'null'
    ErrorResponse:
      type: object
      required:
      - message
      properties:
        message:
          type: string
          description: Error message description
    StructuredInputForWithdraw:
      type: object
      required:
      - params
      properties:
        params:
          $ref: '#/components/schemas/InputForWithdraw'
  securitySchemes:
    api_key:
      type: apiKey
      in: header
      name: x-api-key
    bearer_auth:
      type: http
      scheme: bearer
      bearerFormat: JWT