openapi: 3.0.3
info:
  title: Owner API
  description: >
    Retrieve per-wallet balances, positions, and claimable rewards across
    Raydium liquidity pools.

    Designed for wallets and portfolio dashboards to fetch owner-scoped data in
    a single request.
  version: 1.0.0
  contact:
    name: Raydium
    url: https://raydium.io
servers:
  - url: https://owner-v1.raydium.io
    description: Mainnet
  - url: https://owner-v1-devnet.raydium.io
    description: Devnet
tags:
  - name: Position
    description: Retrieve position balances and state per wallet
  - name: Pool Creation
    description: Retrieve pools created by a wallet
  - name: IDO
    description: Retrieve IDO participation data
  - name: Admin
    description: Administrative endpoints (internal use)
paths:
  /position/stake/{owner}:
    get:
      summary: Get stake positions for a wallet
      description: >
        Retrieve all stake (standard AMM or CPMM) positions owned by this
        wallet.

        Returns cached position data including amounts and rewards.
      operationId: getOwnerStakePositions
      tags:
        - Position
      parameters:
        - name: owner
          in: path
          required: true
          description: Wallet public key (base58)
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                description: Position data structure (see OwnerAPI responses)
        '404':
          description: Wallet has no stake positions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /position/clmm-lock/{owner}:
    get:
      summary: Get locked CLMM positions for a wallet
      description: >
        Retrieve all locked Concentrated Liquidity Market Maker positions owned
        by this wallet.

        Returns position state including locked amounts, lock end time, and
        claimable fees.
      operationId: getOwnerClmmLockPositions
      tags:
        - Position
      parameters:
        - name: owner
          in: path
          required: true
          description: Wallet public key (base58)
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                description: Locked position data structure
        '404':
          description: Wallet has no locked CLMM positions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /create-pool/{owner}:
    get:
      summary: Get pools created by a wallet
      description: |
        Retrieve all CPMM pools created (launched) by this wallet.
      operationId: getOwnerCreatedPools
      tags:
        - Pool Creation
      parameters:
        - name: owner
          in: path
          required: true
          description: Wallet public key (base58)
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                description: Created pools data
        '404':
          description: Wallet has not created any pools
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /main/ido/{owner}:
    get:
      summary: Get IDO participation info for a wallet
      description: >
        Retrieve IDO participation data, including invested amounts and claim
        status.
      operationId: getOwnerIdoInfo
      tags:
        - IDO
      parameters:
        - name: owner
          in: path
          required: true
          description: Wallet public key (base58)
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                description: IDO participation data
        '404':
          description: Wallet has no IDO participation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ErrorResponse:
      type: object
      description: Standard error response
      properties:
        id:
          type: string
          description: Request ID (UUID)
        success:
          type: boolean
          example: false
      required:
        - id
        - success
