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

# Split Intent by Liquidity

> Splits token amounts into multiple intents based on available relayer liquidity. Each returned intent can be filled by a single relayer.



## OpenAPI

````yaml https://raw.githubusercontent.com/rhinestonewtf/openapi/refs/heads/main/orchestrator.json post /intents/split
openapi: 3.0.2
info:
  title: Rhinestone Orchestrator API
  version: 1.0.0
servers:
  - url: https://v1.orchestrator.rhinestone.dev
security: []
paths:
  /intents/split:
    post:
      tags:
        - Intents
      summary: Split Intent by Liquidity
      description: >-
        Splits token amounts into multiple intents based on available relayer
        liquidity. Each returned intent can be filled by a single relayer.
      parameters:
        - name: x-api-key
          in: header
          required: true
          schema:
            type: string
            description: Rhinestone API key
        - name: x-api-version
          in: header
          schema:
            type: string
            pattern: ^\d{4}-\d{2}\.[a-z0-9]+$
            description: >-
              API version (YYYY-MM.name). Will become required in a future
              release.
            example: 2026-01.alps
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              type: object
              properties:
                chainId:
                  type: integer
                  minimum: 1
                  description: The destination chain ID
                  example: 42161
                tokens:
                  type: object
                  additionalProperties:
                    type: integer
                    format: int64
                  description: Map of token addresses to amounts
                  example:
                    '0xaf88d065e77c8cc2239327c5edb3a432268e5831': '5000000000000'
                settlementLayers:
                  type: array
                  items:
                    type: string
                    enum:
                      - INTENT_EXECUTOR
                      - SAME_CHAIN
                      - ACROSS
                      - ECO
                      - RELAY
                      - OFT
                      - NEAR
                      - RHINO
                  description: >-
                    Optional array of settlement layers to filter by. If not
                    provided, all layers are considered.
                  example:
                    - ACROSS
                    - ECO
              required:
                - chainId
                - tokens
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  intents:
                    type: array
                    items:
                      type: object
                      additionalProperties:
                        type: string
                    description: >-
                      Array of intents, each mapping token addresses to amounts
                      that can be filled by a single relayer
                    example:
                      - '0xaf88d065e77c8cc2239327c5edb3a432268e5831': '2400000000000'
                      - '0xaf88d065e77c8cc2239327c5edb3a432268e5831': '1700000000000'
                      - '0xaf88d065e77c8cc2239327c5edb3a432268e5831': '900000000000'
                required:
                  - intents
                description: Successfully split the intent by available liquidity
        '400':
          description: '400'
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        message:
                          type: string
                          description: Error message
                          example: Invalid input
                        context:
                          nullable: true
                          description: Additional error context
                      required:
                        - message
                  traceId:
                    type: string
                    description: Trace ID
                    example: eb0ba4657f36364b33ec565c15f98368
                required:
                  - errors
                  - traceId
                description: Invalid request parameters
        '422':
          description: '422'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                      - INSUFFICIENT_LIQUIDITY
                    description: Error code indicating insufficient liquidity
                  message:
                    type: string
                    description: Human-readable error message
                    example: >-
                      Insufficient liquidity to fill the requested amounts.
                      Partial splits available.
                  availableIntents:
                    type: array
                    items:
                      type: object
                      additionalProperties:
                        type: string
                    description: Intents that can be filled with available liquidity
                  unfillable:
                    type: object
                    additionalProperties:
                      type: string
                    description: >-
                      Token amounts that cannot be filled due to insufficient
                      liquidity
                required:
                  - error
                  - message
                  - availableIntents
                  - unfillable
                description: >-
                  Insufficient liquidity to fill the full amount. Partial splits
                  returned.
        '500':
          description: '500'
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error message describing the server-side issue
                    example: An unknown error occurred
                required:
                  - error
                description: Server error

````