---
title: "Split Intent by Liquidity"
method: POST
path: "/intents/split"
tags: ["Intents"]
---

# Split Intent by Liquidity

`POST /intents/split`

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

## Headers

- `x-api-version` '2026-01.alps', required
- `x-api-key` string, required

## Request body

- object
  - `chainId` integer, required — The chain ID the intents settle on
  - `tokens` object, required — Map of token addresses to amounts
  - `settlementLayers` union — Which settlement layers the orchestrator may use. `{ include: [...] }` (allow-list) or `{ exclude: [...] }` (deny-list, inverted against the orchestrator's live layer set); a bare array means `include`. Internal modes (`SAME_CHAIN`, `INTENT_EXECUTOR`) are not selectable. Default unset = all layers eligible.
    - string[]
    - object
      - `include` string[], required
    - object
      - `exclude` string[], required

## Response `200`

OK

- object
  - `intents` object[], required — Array of intents, each mapping token addresses to amounts that can be filled by a single relayer

## Other responses

- `400` — Invalid request parameters
- `403` — API key scope denied
- `422` — Insufficient liquidity to fill the full amount. Partial splits returned.
- `500` — Server error

---

[API](https://skmtc.net/rhinestonewtf/apis/rhinestone-orchestrator-api.md) · [All operations](https://skmtc.net/rhinestonewtf/apis/rhinestone-orchestrator-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rhinestonewtf/rhinestone-orchestrator-api/revisions/3656a04f8c42/schema)
