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

# List Offers

> Returns paginated exchange rate offers (currency pairs and rates) available to clients.



## OpenAPI

````yaml GET /partner/offers
openapi: 3.0.3
info:
  title: Exchange Partner API
  version: 1.0.0
  description: >-
    REST API for exchange office partners. Authenticate with a Bearer API key
    (`sk_branch_*`, `sk_personal_*`, or `pk_*`). API key management endpoints
    use JWT Bearer auth from the staff panel.
servers:
  - url: https://api.example.com/api/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Partner — Public
    description: >-
      Read-only endpoints accessible with any key type (including pk_* public
      keys)
  - name: Partner — Exchanges
    description: Read public exchange office data and rates
  - name: Partner — Offers
    description: Browse available currency exchange rate offers
  - name: Partner — Orders
    description: Create and manage client exchange orders
  - name: Partner — Clients
    description: Register and manage client accounts
  - name: Partner — Webhooks
    description: Manage webhook endpoint registrations
  - name: API Keys
    description: Create and revoke partner API keys (JWT auth required)
paths:
  /partner/offers:
    get:
      tags:
        - Partner — Offers
      summary: List available exchange rate offers
      description: >-
        Returns paginated exchange rate offers (currency pairs and rates)
        available to clients.
      operationId: partnerListOffers
      parameters:
        - name: skip
          in: query
          schema:
            type: integer
            default: 0
          description: Number of records to skip
        - name: limit
          in: query
          schema:
            type: integer
            default: 25
            maximum: 100
          description: Maximum number of records to return
        - name: filters
          in: query
          schema:
            type: string
          description: 'JSON-encoded filter object. Example: `{"isActive":true}`'
        - name: sort
          in: query
          schema:
            type: string
          description: 'JSON-encoded sort array. Example: `[["rate","ASC"]]`'
      responses:
        '200':
          description: Paginated list of offers
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Offer'
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - bearerAuth: []
components:
  schemas:
    Offer:
      type: object
      properties:
        id:
          type: integer
          example: 42
        currency1:
          type: object
          properties:
            id:
              type: integer
              example: 1
            code:
              type: string
              example: USD
            name:
              type: string
              example: US Dollar
        currency2:
          type: object
          properties:
            id:
              type: integer
              example: 2
            code:
              type: string
              example: UAH
            name:
              type: string
              example: Ukrainian Hryvnia
        rate:
          type: number
          format: float
          example: 41.5
        minAmount:
          type: number
          example: 100
        maxAmount:
          type: number
          example: 50000
        isActive:
          type: boolean
          example: true
        exchange:
          $ref: '#/components/schemas/EntityRef'
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    PaginationMeta:
      type: object
      properties:
        total:
          type: integer
          description: Total number of records
          example: 120
        skip:
          type: integer
          description: Number of records skipped
          example: 0
        limit:
          type: integer
          description: Page size
          example: 25
    EntityRef:
      type: object
      description: A reference to another entity, identified by numeric ID
      properties:
        id:
          type: integer
          example: 1
      required:
        - id
    Error:
      type: object
      properties:
        statusCode:
          type: integer
          example: 400
        message:
          oneOf:
            - type: string
            - type: array
              items:
                type: string
          example: Validation failed
        error:
          type: string
          example: Bad Request
      required:
        - statusCode
        - message
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 401
            message: Unauthorized
    TooManyRequests:
      description: Rate limit exceeded (60 req/min per API key)
      headers:
        Retry-After:
          schema:
            type: integer
          description: Seconds until the rate limit window resets
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            statusCode: 429
            message: Too Many Requests
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Partner API key. Format: `sk_branch_<32chars>`, `sk_personal_<32chars>`,
        or `pk_<32chars>` (public, read-only)

````