# Aperi API

Base URL: https://aperi.trade/api/v1

One versioned interface to the same market readers, saved settings and protected trading workflows used by the dashboard.

## Quick start

```sh
curl 'https://aperi.trade/api/v1/products'
```

## Authentication and trading

Public market reads work without a key. Existing market keys have only markets:read scope. Saved settings require your app session. Protected workflows require a short-lived independently verified app identity and matching Origin; Node clients must supply that header. The customer signs exact order or transfer consent in their own wallet. No private key is sent to Aperi. Unconfigured or unqualified trading stays unavailable. Long-lived trading API keys and an MCP server are not part of this version.

## Key security and limits

Manage keys in Account → API keys (/settings/api-keys). Choose expiry (default 30 days, maximum 90), IP/CIDR restrictions, optional exact Origin restrictions, requests per minute/day and optional lifetime allowance. Pause, resume or revoke without resetting usage. Secrets appear only once and are never stored in browser storage. An account-wide 20000 requests/day ceiling also applies.

Send credentials only in Authorization over HTTPS; URL credentials are refused. IP restrictions rely on trusted edge ingress and fail closed where unavailable. Local development cannot attest Cloudflare client IP. Origin allowlists add a header restriction; they do not authenticate server callers. Public market reads still work anonymously under shared ingress limits. Authenticated responses are private and never shared-cacheable. Rotate by creating a replacement and revoking the old key.

## Data and errors

Financial values use decimal strings; unavailable data is null or explicitly held. Most observation clocks use Unix milliseconds; candle time uses Unix seconds. Preserve venue and collateral identity and inspect freshness and coverage. The API does not silently switch venues or turn missing values into zero. Native market discovery includes order-book instruments and the dashboard’s selected oracle instruments; quote readers preserve any other individually reviewed oracle identities.

Responses include X-API-Version and X-Request-ID. Errors use {schemaVersion:"1",requestId,error:{code,message}}. HTTP 429 includes Retry-After where available. Writes are never automatically retried. After an uncertain send, retain the original intent and query its status.

## Market data

Discover every listed product and its native venue. Read prices, volume, funding, order books and chart history.

### Discover products

`GET /api/v1/products`

The canonical dashboard catalogue, with selected native route, candidates, product specifications, availability and statistics. Use product IDs for discovery and market IDs for venue data.

Authentication: Public read. Optional Authorization: Bearer aperi_market_… key with markets:read scope.

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "products": [],
  "sources": []
}
```

- Unavailable prices remain null. A selected public route is not permission to execute.
- Market-key authentication is optional for public data.

### Get a product

`GET /api/v1/products/{productId}`

Read one canonical product and its exact selected venue contract.

Authentication: Public read. Optional Authorization: Bearer aperi_market_… key with markets:read scope.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| productId | path | string | Yes | Canonical product ID from GET /products; encode it as a URL path segment. |

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "product": {
    "id": "NVDA",
    "symbol": "NVDA",
    "status": "available",
    "executionReady": false
  }
}
```

### List native markets

`GET /api/v1/markets`

Return the native market catalogue and source status: prices, mark/index, 24h change and volume, funding, open interest, leverage limits, size steps and price ticks where the venue supplies them.

Authentication: Public read. Optional Authorization: Bearer aperi_market_… key with markets:read scope.

Response schema:

```json
{
  "type": "object",
  "properties": {
    "schemaVersion": {
      "const": "1"
    },
    "markets": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "venue": {
            "type": "string",
            "enum": [
              "hyperliquid",
              "aster",
              "ostium",
              "gtrade",
              "avantis"
            ]
          },
          "symbol": {
            "type": "string"
          },
          "venueSymbol": {
            "type": "string"
          },
          "collateral": {
            "type": "string",
            "enum": [
              "USDC",
              "USDT",
              "USD1"
            ]
          },
          "category": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "price": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "description": "Plain decimal string. Never convert money to binary floating point."
              },
              {
                "type": "null"
              }
            ]
          },
          "markPrice": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "description": "Plain decimal string. Never convert money to binary floating point."
              },
              {
                "type": "null"
              }
            ]
          },
          "indexPrice": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "description": "Plain decimal string. Never convert money to binary floating point."
              },
              {
                "type": "null"
              }
            ]
          },
          "change24hPercent": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "description": "Plain decimal string. Never convert money to binary floating point."
              },
              {
                "type": "null"
              }
            ]
          },
          "volume24h": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "description": "Plain decimal string. Never convert money to binary floating point."
              },
              {
                "type": "null"
              }
            ]
          },
          "fundingRate": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "description": "Plain decimal string. Never convert money to binary floating point."
              },
              {
                "type": "null"
              }
            ]
          },
          "openInterest": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "description": "Plain decimal string. Never convert money to binary floating point."
              },
              {
                "type": "null"
              }
            ]
          },
          "maxLeverage": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1
          },
          "sizeDecimals": {
            "type": [
              "integer",
              "null"
            ]
          },
          "sizeStep": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "description": "Plain decimal string. Never convert money to binary floating point."
              },
              {
                "type": "null"
              }
            ]
          },
          "priceTick": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "description": "Plain decimal string. Never convert money to binary floating point."
              },
              {
                "type": "null"
              }
            ]
          },
          "minNotional": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                "description": "Plain decimal string. Never convert money to binary floating point."
              },
              {
                "type": "null"
              }
            ]
          },
          "sourceTime": {
            "type": [
              "integer",
              "null"
            ]
          },
          "receivedAt": {
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "additionalProperties": true
      }
    },
    "sources": {}
  },
  "required": [
    "markets"
  ],
  "additionalProperties": true
}
```

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "markets": [],
  "sources": []
}
```

- Use exact IDs returned by the catalogue. The catalogue may have partial venue coverage; inspect sources and errors.
- Null or missing statistics mean unavailable data. Oracle venues do not expose a synthetic order book or trade tape.

### Get a market

`GET /api/v1/markets/{marketId}`

Read one exact native instrument, including precision, leverage limits and observed statistics.

Authentication: Public read. Optional Authorization: Bearer aperi_market_… key with markets:read scope.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| marketId | path | string | Yes | Exact native market ID from the catalogue. |

Response schema:

```json
{
  "type": "object",
  "properties": {
    "schemaVersion": {
      "const": "1"
    },
    "market": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "venue": {
          "type": "string",
          "enum": [
            "hyperliquid",
            "aster",
            "ostium",
            "gtrade",
            "avantis"
          ]
        },
        "symbol": {
          "type": "string"
        },
        "venueSymbol": {
          "type": "string"
        },
        "collateral": {
          "type": "string",
          "enum": [
            "USDC",
            "USDT",
            "USD1"
          ]
        },
        "category": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "price": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            {
              "type": "null"
            }
          ]
        },
        "markPrice": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            {
              "type": "null"
            }
          ]
        },
        "indexPrice": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            {
              "type": "null"
            }
          ]
        },
        "change24hPercent": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            {
              "type": "null"
            }
          ]
        },
        "volume24h": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            {
              "type": "null"
            }
          ]
        },
        "fundingRate": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            {
              "type": "null"
            }
          ]
        },
        "openInterest": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            {
              "type": "null"
            }
          ]
        },
        "maxLeverage": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 1
        },
        "sizeDecimals": {
          "type": [
            "integer",
            "null"
          ]
        },
        "sizeStep": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            {
              "type": "null"
            }
          ]
        },
        "priceTick": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            {
              "type": "null"
            }
          ]
        },
        "minNotional": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            {
              "type": "null"
            }
          ]
        },
        "sourceTime": {
          "type": [
            "integer",
            "null"
          ]
        },
        "receivedAt": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "additionalProperties": true
    }
  },
  "additionalProperties": true
}
```

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "market": {
    "id": "hyperliquid.xyz.NVDA.USDC"
  }
}
```

### Read a quote

`GET /api/v1/markets/{marketId}/quote`

Read native instrument prices and available statistics, preserving the source and receipt clocks.

Authentication: Public read. Optional Authorization: Bearer aperi_market_… key with markets:read scope.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| marketId | path | string | Yes | Exact native market ID; encode the path segment. |

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "marketId": "hyperliquid.xyz.NVDA.USDC",
  "venue": "hyperliquid",
  "price": "150",
  "markPrice": "150",
  "volume24h": "1000000",
  "sourceTime": null,
  "receivedAt": null
}
```

- Inspect sourceTime, receivedAt and venue availability before acting. The API never switches your chosen market to another venue.
- Order-book market readers expose price, markPrice and available statistics. Ostium oracle quotes retain bid, mid, ask, marketOpen and quoteStatus. All values preserve native price units.

### Read the order book

`GET /api/v1/markets/{marketId}/book`

Up to 20 native bid and ask levels for an order-book venue. Oracle markets return their existing unavailable response.

Authentication: Public read. Optional Authorization: Bearer aperi_market_… key with markets:read scope.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| marketId | path | string | Yes | Exact native market ID. |

Illustrative response (examples are not live observations):

```json
{
  "marketId": "hyperliquid.xyz.NVDA.USDC",
  "venue": "hyperliquid",
  "bids": [
    {
      "price": "150",
      "size": "1",
      "orders": 1
    }
  ],
  "asks": [
    {
      "price": "150.1",
      "size": "2",
      "orders": 1
    }
  ]
}
```

### Read recent trades

`GET /api/v1/markets/{marketId}/trades`

Read the venue-retained public trade tape where available. Trade prices and sizes are decimal strings.

Authentication: Public read. Optional Authorization: Bearer aperi_market_… key with markets:read scope.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| marketId | path | string | Yes | Exact native market ID. |

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "marketId": "hyperliquid.xyz.NVDA.USDC",
  "trades": [
    {
      "id": "123",
      "price": "150",
      "size": "1",
      "side": "buy",
      "time": 1800000000000
    }
  ]
}
```

- Oracle venues may provide no public tape. An empty tape is not evidence of zero market volume.

### Read chart history

`GET /api/v1/markets/{marketId}/candles`

Get native OHLC history with bounded windows and venue-specific interval support.

Authentication: Public read. Optional Authorization: Bearer aperi_market_… key with markets:read scope.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| marketId | path | string | Yes | Exact native market ID. |
| interval | query | string | No | Chart interval, e.g. 1m, 5m, 15m, 30m, 1h, 4h, 1d; supported intervals vary by venue. |
| limit | query | integer | No | Maximum candles, bounded by the venue reader; use 100 for a portable request. |
| startTime | query | integer | No | Window start in Unix milliseconds. |
| endTime | query | integer | No | Window end in Unix milliseconds. |

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "marketId": "hyperliquid.xyz.NVDA.USDC",
  "interval": "30m",
  "candles": [
    {
      "time": 1800000000,
      "open": "150",
      "high": "151",
      "low": "149",
      "close": "150.5",
      "volume": "100"
    }
  ]
}
```

- Candle time is Unix seconds. Request window timestamps use Unix milliseconds.
- Oracle candle volume may be null; OHLC and indexed 24h volume have different coverage.

### Discover venue capabilities

`GET /api/v1/venues`

Read the venue catalogue and distinguish order-book data from oracle data and configured trading workflows.

Authentication: Public read. Optional Authorization: Bearer aperi_market_… key with markets:read scope.

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "venues": []
}
```

## Accounts & portfolio

Inspect balances, positions, open orders and history, with explicit coverage and freshness.

### Read an observed account

`GET /api/v1/accounts/{wallet}`

Public Hyperliquid account observations: main and xyz perpetual pools, spot balances, positions, open orders, fills, funding, order history and portfolio series.

Authentication: Public. No credential required.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| wallet | path | string | Yes | EVM wallet address to observe; observing a wallet grants no authority. |

Illustrative response (examples are not live observations):

```json
{
  "address": "0x1111111111111111111111111111111111111111",
  "venue": "hyperliquid",
  "accounts": [],
  "coverage": {
    "dexes": [
      "",
      "xyz"
    ],
    "accountModeQualified": false
  },
  "aster": {
    "status": "signed_read_required"
  }
}
```

- Not a complete multi-venue balance. Aster private data requires an independently authorized venue account.
- Fills and orders are venue-retained windows. Funding is the first page of the recent 30-day window. Inspect coverage.sources for missing reads.

### Read owned portfolio

`GET /api/v1/portfolio`

Read the protected native portfolio for the identity-bound wallet, including the observer’s freshness and coverage holds.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| wallet | query | string | Yes | Lowercase owner EVM wallet address. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- The current observer covers approved Hyperliquid USDC pools. It does not convert Aster USDT or claim complete USD equity.

### Read wallet enrollment

`GET /api/v1/wallet`

Inspect the wallet enrolled to the current independently verified identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

### Prepare wallet verification

`POST /api/v1/wallet/challenge`

Request the existing owner-bound enrollment challenge.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object"
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- Complete the exact returned off-chain wallet signature. A challenge creates no trading permission.

### Verify wallet ownership

`POST /api/v1/wallet/enroll`

Submit the owner-bound enrollment proof to the regional wallet service.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object"
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

### Read capital capabilities

`GET /api/v1/capital/status`

Inspect customer-owned funding design, coverage and rebalancing qualification without asserting complete balances.

Authentication: Public. No credential required.

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "totalEquityUsd": null,
  "availableMargin": null,
  "coverageComplete": false,
  "executionReady": false
}
```

### Inspect your session

`GET /api/v1/session`

Read whether the current app session is authenticated and its public account information. The anonymous response has authenticated=false.

Authentication: Public. No credential required.

Illustrative response (examples are not live observations):

```json
{
  "authenticated": false,
  "user": null
}
```

- Uses the current app cookie where available. A session is not wallet ownership or trading authority.

### Request an app identity proof

`POST /api/v1/identity`

Request the short-lived independently signed app identity proof for a signed-in native Aperi account.

Authentication: Current Aperi app session cookie. Writes require Origin matching the app. Market keys are not accepted.

Request example:

```json
{}
```

Request schema:

```json
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
```

Illustrative response (examples are not live observations):

```json
{
  "purpose": "app-identity-only"
}
```

- Requires a provisioned app identity signer and a current native Aperi account session. Tokens are credentials: keep them in memory and never log them.
- Legacy Cloudflare accounts use the existing POST /auth/identity with no body. Local legacy login retains its identity proof from the verified login exchange.
- The regional service must trust this identity issuer. Native app proof trust is currently provisioned for the local workflow; production acceptance must be verified independently.

## Watchlists & settings

Keep your saved markets and preferences in sync with the dashboard.

### Read your watchlist

`GET /api/v1/watchlist`

Read the same saved favorite market/product identities used by the dashboard.

Authentication: Current Aperi app session cookie. Writes require Origin matching the app. Market keys are not accepted.

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "marketIds": []
}
```

### Save your watchlist

`PUT /api/v1/watchlist`

Replace your favorites with up to 256 distinct reviewed IDs. Other settings are preserved.

Authentication: Current Aperi app session cookie. Writes require Origin matching the app. Market keys are not accepted.

Request example:

```json
{
  "marketIds": []
}
```

Request schema:

```json
{
  "type": "object",
  "properties": {
    "marketIds": {
      "type": "array",
      "maxItems": 256,
      "uniqueItems": true,
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "marketIds"
  ],
  "additionalProperties": false
}
```

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "marketIds": []
}
```

- Use reviewed IDs from the dashboard catalogue. The empty example clears the watchlist. PUT replaces the complete list.

### Read preferences

`GET /api/v1/preferences`

Read theme, favorites, watched accounts, notifications, confirmation and customer allocation preferences.

Authentication: Current Aperi app session cookie. Writes require Origin matching the app. Market keys are not accepted.

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "preferences": {
    "theme": "light",
    "favorites": []
  }
}
```

### Update preferences

`PATCH /api/v1/preferences`

Change supported dashboard preferences. Watched accounts are a maximum of 20 {name,address,venue} entries. Allocation preferences express a target; they do not move funds.

Authentication: Current Aperi app session cookie. Writes require Origin matching the app. Market keys are not accepted.

Request example:

```json
{
  "theme": "dark"
}
```

Request schema:

```json
{
  "type": "object",
  "properties": {
    "theme": {
      "type": "string",
      "enum": [
        "light",
        "dark",
        "system"
      ]
    },
    "favorites": {
      "type": "array",
      "maxItems": 256,
      "uniqueItems": true,
      "items": {
        "type": "string"
      }
    },
    "watchAccounts": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "address": {
            "type": "string",
            "pattern": "^0x[a-fA-F0-9]{40}$"
          },
          "venue": {
            "type": "string",
            "enum": [
              "hyperliquid",
              "aster"
            ]
          }
        },
        "required": [
          "name",
          "address",
          "venue"
        ],
        "additionalProperties": false
      }
    },
    "orderConfirmation": {
      "type": "boolean"
    },
    "sideSequence": {
      "enum": [
        "buy-sell",
        "sell-buy"
      ]
    },
    "defaultVenue": {
      "enum": [
        "hyperliquid",
        "aster"
      ]
    },
    "leaderboard": {
      "type": "boolean"
    },
    "shareTrades": {
      "type": "boolean"
    },
    "managedAccountInterest": {
      "type": "boolean"
    },
    "notifications": {
      "type": "object"
    },
    "channels": {
      "type": "object"
    },
    "skip": {
      "type": "object"
    },
    "wallets": {
      "type": "array"
    },
    "capitalAllocation": {
      "type": "object"
    }
  },
  "additionalProperties": false
}
```

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "preferences": {
    "theme": "dark"
  }
}
```

### Read your profile

`GET /api/v1/profile`

Read the current app account profile.

Authentication: Current Aperi app session cookie. Writes require Origin matching the app. Market keys are not accepted.

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "profile": {
    "displayName": "Aperi trader",
    "handle": ""
  }
}
```

### Update your profile

`PATCH /api/v1/profile`

Update displayName, username/handle, bio or a supported profile photo.

Authentication: Current Aperi app session cookie. Writes require Origin matching the app. Market keys are not accepted.

Request example:

```json
{
  "displayName": "Aperi trader"
}
```

Request schema:

```json
{
  "type": "object",
  "properties": {
    "displayName": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "username": {
      "type": "string"
    },
    "handle": {
      "type": "string"
    },
    "bio": {
      "type": "string",
      "maxLength": 500
    },
    "photo": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false
}
```

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "profile": {
    "displayName": "Aperi trader"
  }
}
```

## Orders & protection

Prepare and confirm exact orders, leverage, cancellations, reductions, stop losses and take profits.

### Preview an order

`POST /api/v1/orders/preview`

Validate native precision, notional and leverage and estimate margin. This public calculation creates no order or permission.

Authentication: Public. No credential required.

Request example:

```json
{
  "marketId": "hyperliquid.xyz.NVDA.USDC",
  "side": "buy",
  "quantity": "1",
  "limitPrice": "150",
  "leverage": 2
}
```

Request schema:

```json
{
  "type": "object",
  "properties": {
    "marketId": {
      "type": "string"
    },
    "side": {
      "enum": [
        "buy",
        "sell"
      ]
    },
    "quantity": {
      "type": "string",
      "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
      "description": "Plain decimal string. Never convert money to binary floating point."
    },
    "limitPrice": {
      "type": "string",
      "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
      "description": "Plain decimal string. Never convert money to binary floating point."
    },
    "leverage": {
      "type": "integer",
      "minimum": 1
    },
    "timeInForce": {
      "enum": [
        "GTC",
        "IOC",
        "ALO",
        "GTX"
      ]
    },
    "reduceOnly": {
      "type": "boolean"
    },
    "walletAddress": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$"
    },
    "accountAddress": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$"
    },
    "intentId": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "marketId",
    "side",
    "quantity",
    "limitPrice"
  ],
  "additionalProperties": false
}
```

Illustrative response (examples are not live observations):

```json
{
  "marketId": "hyperliquid.xyz.NVDA.USDC",
  "notional": "150",
  "estimatedMargin": "75",
  "leverage": 2,
  "executionReady": false,
  "venueFee": null
}
```

- Include Origin matching the app origin. Estimates exclude unobserved venue fees and funding. Oracle execution may be unavailable.

### Read trading context

`GET /api/v1/orders/context`

Read owner account, exact market identity, policies, fee requirements, risk references and position binding.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| marketId | query | string | Yes | Exact native market ID. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

### Refresh the account check

`POST /api/v1/orders/model-jobs`

Request the independent financial model observation for the exact operation. Refresh context until a matching unexpired risk reference is available.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request example:

```json
{
  "accountId": "11111111-1111-4111-8111-111111111111",
  "operation": {
    "operation": "place",
    "order": {
      "marketId": "hyperliquid.xyz.NVDA.USDC",
      "side": "buy",
      "quantity": "1",
      "limitPrice": "150",
      "timeInForce": "GTC",
      "reduceOnly": false,
      "walletAddress": "0x1111111111111111111111111111111111111111",
      "intentId": "22222222-2222-4222-8222-222222222222",
      "leverage": 2
    }
  }
}
```

Request schema:

```json
{
  "type": "object",
  "properties": {
    "accountId": {
      "type": "string",
      "format": "uuid"
    },
    "operation": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "operation": {
              "const": "place"
            },
            "order": {
              "type": "object",
              "properties": {
                "marketId": {
                  "type": "string"
                },
                "side": {
                  "type": "string",
                  "enum": [
                    "buy",
                    "sell"
                  ]
                },
                "quantity": {
                  "type": "string",
                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                  "description": "Plain decimal string. Never convert money to binary floating point."
                },
                "limitPrice": {
                  "type": "string",
                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                  "description": "Plain decimal string. Never convert money to binary floating point."
                },
                "timeInForce": {
                  "type": "string",
                  "enum": [
                    "GTC",
                    "IOC",
                    "ALO",
                    "GTX"
                  ]
                },
                "reduceOnly": {
                  "type": "boolean"
                },
                "walletAddress": {
                  "type": "string",
                  "pattern": "^0x[a-fA-F0-9]{40}$"
                },
                "intentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "leverage": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 1000
                },
                "marginMode": {
                  "type": "string",
                  "enum": [
                    "cross",
                    "isolated"
                  ]
                },
                "builderFee": {
                  "type": "object",
                  "properties": {
                    "feeBps": {
                      "type": "integer",
                      "const": 5
                    },
                    "recipient": {
                      "type": "string",
                      "pattern": "^0x[a-fA-F0-9]{40}$"
                    },
                    "policyRevision": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "feeBps",
                    "recipient",
                    "policyRevision"
                  ],
                  "additionalProperties": false
                },
                "execution": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "trigger"
                        },
                        "tpsl": {
                          "type": "string",
                          "enum": [
                            "sl",
                            "tp"
                          ]
                        },
                        "triggerPrice": {
                          "type": "string",
                          "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                          "description": "Plain decimal string. Never convert money to binary floating point."
                        },
                        "isMarket": {
                          "type": "boolean"
                        },
                        "positionSourceHash": {
                          "type": "string",
                          "pattern": "^[a-f0-9]{64}$"
                        }
                      },
                      "required": [
                        "kind",
                        "tpsl",
                        "triggerPrice",
                        "isMarket",
                        "positionSourceHash"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "twap"
                        },
                        "minutes": {
                          "type": "integer",
                          "minimum": 5,
                          "maximum": 1440
                        },
                        "randomize": {
                          "type": "boolean"
                        },
                        "positionSourceHash": {
                          "type": "string",
                          "pattern": "^[a-f0-9]{64}$"
                        }
                      },
                      "required": [
                        "kind",
                        "minutes",
                        "randomize",
                        "positionSourceHash"
                      ],
                      "additionalProperties": false
                    }
                  ],
                  "description": "Native advanced exits require reduceOnly=true, GTC and a fresh original-position binding. Availability is venue-specific."
                }
              },
              "required": [
                "marketId",
                "side",
                "quantity",
                "limitPrice",
                "timeInForce",
                "reduceOnly",
                "walletAddress",
                "intentId",
                "leverage"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "operation",
            "order"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "operation": {
              "const": "cancel"
            },
            "marketId": {
              "type": "string"
            },
            "walletAddress": {
              "type": "string",
              "pattern": "^0x[a-fA-F0-9]{40}$"
            },
            "venueOrderId": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          "required": [
            "operation",
            "marketId",
            "walletAddress",
            "venueOrderId"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "accountId",
    "operation"
  ],
  "additionalProperties": false
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

### Read an account check

`GET /api/v1/orders/model-jobs/{jobId}`

Read the state of one owned account-check job (QUEUED, COLLECTING, PUBLISHED, HELD or EXPIRED) and its typed hold reason. It replays no model and grants nothing.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| jobId | path | string | Yes | Account-check job UUID from a model-job or MODEL_PENDING response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

### Prepare an order or cancellation

`POST /api/v1/orders/prepare`

Prepare the exact owner-bound command and return wallet typed data. The leverage, margin mode and exit semantics are bound to the reviewed operation.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request example:

```json
{
  "accountId": "11111111-1111-4111-8111-111111111111",
  "operation": {
    "operation": "place",
    "order": {
      "marketId": "hyperliquid.xyz.NVDA.USDC",
      "side": "buy",
      "quantity": "1",
      "limitPrice": "150",
      "timeInForce": "GTC",
      "reduceOnly": false,
      "walletAddress": "0x1111111111111111111111111111111111111111",
      "intentId": "22222222-2222-4222-8222-222222222222",
      "leverage": 2
    }
  },
  "maxOpeningQty": "1"
}
```

Request schema:

```json
{
  "type": "object",
  "properties": {
    "accountId": {
      "type": "string",
      "format": "uuid"
    },
    "operation": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "operation": {
              "const": "place"
            },
            "order": {
              "type": "object",
              "properties": {
                "marketId": {
                  "type": "string"
                },
                "side": {
                  "type": "string",
                  "enum": [
                    "buy",
                    "sell"
                  ]
                },
                "quantity": {
                  "type": "string",
                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                  "description": "Plain decimal string. Never convert money to binary floating point."
                },
                "limitPrice": {
                  "type": "string",
                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                  "description": "Plain decimal string. Never convert money to binary floating point."
                },
                "timeInForce": {
                  "type": "string",
                  "enum": [
                    "GTC",
                    "IOC",
                    "ALO",
                    "GTX"
                  ]
                },
                "reduceOnly": {
                  "type": "boolean"
                },
                "walletAddress": {
                  "type": "string",
                  "pattern": "^0x[a-fA-F0-9]{40}$"
                },
                "intentId": {
                  "type": "string",
                  "format": "uuid"
                },
                "leverage": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 1000
                },
                "marginMode": {
                  "type": "string",
                  "enum": [
                    "cross",
                    "isolated"
                  ]
                },
                "builderFee": {
                  "type": "object",
                  "properties": {
                    "feeBps": {
                      "type": "integer",
                      "const": 5
                    },
                    "recipient": {
                      "type": "string",
                      "pattern": "^0x[a-fA-F0-9]{40}$"
                    },
                    "policyRevision": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "feeBps",
                    "recipient",
                    "policyRevision"
                  ],
                  "additionalProperties": false
                },
                "execution": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "trigger"
                        },
                        "tpsl": {
                          "type": "string",
                          "enum": [
                            "sl",
                            "tp"
                          ]
                        },
                        "triggerPrice": {
                          "type": "string",
                          "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                          "description": "Plain decimal string. Never convert money to binary floating point."
                        },
                        "isMarket": {
                          "type": "boolean"
                        },
                        "positionSourceHash": {
                          "type": "string",
                          "pattern": "^[a-f0-9]{64}$"
                        }
                      },
                      "required": [
                        "kind",
                        "tpsl",
                        "triggerPrice",
                        "isMarket",
                        "positionSourceHash"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "const": "twap"
                        },
                        "minutes": {
                          "type": "integer",
                          "minimum": 5,
                          "maximum": 1440
                        },
                        "randomize": {
                          "type": "boolean"
                        },
                        "positionSourceHash": {
                          "type": "string",
                          "pattern": "^[a-f0-9]{64}$"
                        }
                      },
                      "required": [
                        "kind",
                        "minutes",
                        "randomize",
                        "positionSourceHash"
                      ],
                      "additionalProperties": false
                    }
                  ],
                  "description": "Native advanced exits require reduceOnly=true, GTC and a fresh original-position binding. Availability is venue-specific."
                }
              },
              "required": [
                "marketId",
                "side",
                "quantity",
                "limitPrice",
                "timeInForce",
                "reduceOnly",
                "walletAddress",
                "intentId",
                "leverage"
              ],
              "additionalProperties": false
            }
          },
          "required": [
            "operation",
            "order"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "operation": {
              "const": "cancel"
            },
            "marketId": {
              "type": "string"
            },
            "walletAddress": {
              "type": "string",
              "pattern": "^0x[a-fA-F0-9]{40}$"
            },
            "venueOrderId": {
              "type": "string",
              "pattern": "^[0-9]+$"
            }
          },
          "required": [
            "operation",
            "marketId",
            "walletAddress",
            "venueOrderId"
          ],
          "additionalProperties": false
        }
      ]
    },
    "maxOpeningQty": {
      "type": "string",
      "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
      "description": "Plain decimal string. Never convert money to binary floating point."
    },
    "intentId": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "accountId",
    "operation",
    "maxOpeningQty"
  ],
  "additionalProperties": false
}
```

Response schema:

```json
{
  "type": "object",
  "properties": {
    "consent": {
      "type": "object",
      "properties": {
        "customerId": {
          "type": "string",
          "format": "uuid"
        },
        "accountId": {
          "type": "string",
          "format": "uuid"
        },
        "intentId": {
          "type": "string",
          "format": "uuid"
        },
        "wallet": {
          "type": "string",
          "pattern": "^0x[a-fA-F0-9]{40}$"
        },
        "venue": {
          "enum": [
            "hyperliquid",
            "aster"
          ]
        },
        "instrument": {
          "type": "string"
        },
        "registryRevision": {
          "type": "string"
        },
        "policyRevision": {
          "type": "string"
        },
        "action": {
          "enum": [
            "place",
            "cancel"
          ]
        },
        "bodyHash": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "side": {
          "type": "string"
        },
        "quantity": {
          "type": "string",
          "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
          "description": "Plain decimal string. Never convert money to binary floating point."
        },
        "limitPrice": {
          "type": "string",
          "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
          "description": "Plain decimal string. Never convert money to binary floating point."
        },
        "timeInForce": {
          "type": "string"
        },
        "leverage": {
          "type": "integer"
        },
        "reduceOnly": {
          "type": "boolean"
        },
        "originalVenueOrderId": {
          "type": "string"
        },
        "maxOpeningQty": {
          "type": "string",
          "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
          "description": "Plain decimal string. Never convert money to binary floating point."
        },
        "maxPlatformFeeBps": {
          "type": "integer"
        },
        "builderRecipient": {
          "type": "string",
          "pattern": "^0x[a-fA-F0-9]{40}$"
        },
        "nonce": {
          "type": "string",
          "pattern": "^[a-f0-9]{64}$"
        },
        "issuedAt": {
          "type": "integer"
        },
        "expiresAt": {
          "type": "integer"
        }
      },
      "required": [
        "customerId",
        "accountId",
        "intentId",
        "wallet",
        "venue",
        "instrument",
        "registryRevision",
        "policyRevision",
        "action",
        "bodyHash",
        "side",
        "quantity",
        "limitPrice",
        "timeInForce",
        "leverage",
        "reduceOnly",
        "originalVenueOrderId",
        "maxOpeningQty",
        "maxPlatformFeeBps",
        "builderRecipient",
        "nonce",
        "issuedAt",
        "expiresAt"
      ],
      "additionalProperties": false
    },
    "typedData": {
      "type": "object",
      "properties": {
        "domain": {
          "type": "object"
        },
        "types": {
          "type": "object"
        },
        "primaryType": {
          "type": "string"
        },
        "message": {
          "type": "object"
        }
      },
      "required": [
        "domain",
        "types",
        "primaryType",
        "message"
      ],
      "additionalProperties": true
    },
    "signatureMethod": {
      "const": "eth_signTypedData_v4"
    },
    "financialAuthority": {
      "const": false
    },
    "tradingQualified": {
      "const": false
    }
  },
  "required": [
    "consent",
    "typedData",
    "signatureMethod",
    "financialAuthority",
    "tradingQualified"
  ],
  "additionalProperties": true
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- Market execution uses a bounded IOC price; limit execution uses GTC/ALO/GTX according to venue support.
- Cancel uses operation="cancel", marketId, walletAddress, original venueOrderId and an outer intentId; maxOpeningQty="0".
- Close/reduce uses the opposite side, reduceOnly=true, a quantity no greater than the observed position, and its current leverage.
- Stop loss/take profit use execution.kind="trigger", tpsl="sl" or "tp", triggerPrice, isMarket and a fresh positionSourceHash. GTC and reduceOnly are required.
- Leverage is a signed order field; there is no standalone leverage update endpoint. Native support and admission policy decide what can execute.

### Confirm the signed command

`POST /api/v1/orders`

Submit exact wallet-signed consent and fresh risk snapshot IDs. The regional service rechecks ownership, policy, fees, risk, durability and qualification before admission.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "properties": {
    "signedConsent": {
      "type": "object",
      "properties": {
        "consent": {
          "type": "object",
          "properties": {
            "customerId": {
              "type": "string",
              "format": "uuid"
            },
            "accountId": {
              "type": "string",
              "format": "uuid"
            },
            "intentId": {
              "type": "string",
              "format": "uuid"
            },
            "wallet": {
              "type": "string",
              "pattern": "^0x[a-fA-F0-9]{40}$"
            },
            "venue": {
              "enum": [
                "hyperliquid",
                "aster"
              ]
            },
            "instrument": {
              "type": "string"
            },
            "registryRevision": {
              "type": "string"
            },
            "policyRevision": {
              "type": "string"
            },
            "action": {
              "enum": [
                "place",
                "cancel"
              ]
            },
            "bodyHash": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "side": {
              "type": "string"
            },
            "quantity": {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            "limitPrice": {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            "timeInForce": {
              "type": "string"
            },
            "leverage": {
              "type": "integer"
            },
            "reduceOnly": {
              "type": "boolean"
            },
            "originalVenueOrderId": {
              "type": "string"
            },
            "maxOpeningQty": {
              "type": "string",
              "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
              "description": "Plain decimal string. Never convert money to binary floating point."
            },
            "maxPlatformFeeBps": {
              "type": "integer"
            },
            "builderRecipient": {
              "type": "string",
              "pattern": "^0x[a-fA-F0-9]{40}$"
            },
            "nonce": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            },
            "issuedAt": {
              "type": "integer"
            },
            "expiresAt": {
              "type": "integer"
            }
          },
          "required": [
            "customerId",
            "accountId",
            "intentId",
            "wallet",
            "venue",
            "instrument",
            "registryRevision",
            "policyRevision",
            "action",
            "bodyHash",
            "side",
            "quantity",
            "limitPrice",
            "timeInForce",
            "leverage",
            "reduceOnly",
            "originalVenueOrderId",
            "maxOpeningQty",
            "maxPlatformFeeBps",
            "builderRecipient",
            "nonce",
            "issuedAt",
            "expiresAt"
          ],
          "additionalProperties": false
        },
        "signature": {
          "type": "string",
          "pattern": "^0x[a-fA-F0-9]{130}$"
        },
        "execution": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "kind": {
                  "const": "trigger"
                },
                "tpsl": {
                  "type": "string",
                  "enum": [
                    "sl",
                    "tp"
                  ]
                },
                "triggerPrice": {
                  "type": "string",
                  "pattern": "^-?[0-9]+(?:\\.[0-9]+)?$",
                  "description": "Plain decimal string. Never convert money to binary floating point."
                },
                "isMarket": {
                  "type": "boolean"
                },
                "positionSourceHash": {
                  "type": "string",
                  "pattern": "^[a-f0-9]{64}$"
                }
              },
              "required": [
                "kind",
                "tpsl",
                "triggerPrice",
                "isMarket",
                "positionSourceHash"
              ],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "kind": {
                  "const": "twap"
                },
                "minutes": {
                  "type": "integer",
                  "minimum": 5,
                  "maximum": 1440
                },
                "randomize": {
                  "type": "boolean"
                },
                "positionSourceHash": {
                  "type": "string",
                  "pattern": "^[a-f0-9]{64}$"
                }
              },
              "required": [
                "kind",
                "minutes",
                "randomize",
                "positionSourceHash"
              ],
              "additionalProperties": false
            }
          ],
          "description": "Native advanced exits require reduceOnly=true, GTC and a fresh original-position binding. Availability is venue-specific."
        },
        "marginMode": {
          "enum": [
            "cross",
            "isolated"
          ]
        }
      },
      "required": [
        "consent",
        "signature"
      ],
      "additionalProperties": false
    },
    "riskSnapshotIds": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "uuid"
      }
    },
    "ttlMs": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5000
    },
    "awaitModel": {
      "type": "boolean"
    }
  },
  "required": [
    "signedConsent",
    "riskSnapshotIds",
    "ttlMs"
  ],
  "additionalProperties": false
}
```

Response schema:

```json
{
  "type": "object",
  "properties": {
    "intentId": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string"
    },
    "idempotentReplay": {
      "type": "boolean"
    }
  },
  "required": [
    "intentId",
    "status",
    "idempotentReplay"
  ],
  "additionalProperties": true
}
```

Illustrative response (examples are not live observations):

```json
{
  "intentId": "22222222-2222-4222-8222-222222222222",
  "status": "UNKNOWN",
  "idempotentReplay": false
}
```

- Sign the exact typedData from preparation using eth_signTypedData_v4. Never send a private key.
- When the trading context reports consentedModelJobs=true, a placement without advanced execution may send awaitModel=true with riskSnapshotIds=[]: the account check then runs after the signature inside this request (at most about 6 s). HTTP 202 MODEL_PENDING is not an admission; repeat the identical request while the consent has at least 8 s left, and never sign again for it.
- With awaitModel=true, HTTP 403 MODEL_EXPIRED (the account check ended without a result) and the codes ADMISSION_CAPACITY_FULL, CONSENT_FIRST_DISABLED, APPROVAL_EXPIRING, MODEL_ALLOCATION_EXHAUSTED, COLLECTOR_UNAVAILABLE and SUBMISSION_REFUSED were refused before admission and do not repeat. ADMISSION_HELD comes from admission and is uncertain: query the intent before anything else.
- Preparation is not a venue order. A receipt is not proof of a fill or settlement.
- Retain the original intentId. On timeouts or uncertain execution, query its status; do not automatically submit a new intent.

### Check the original command

`GET /api/v1/orders/{intentId}`

Read durable admission and native-send state for an original intent, including execution uncertainty and replay status.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| intentId | path | string | Yes | Original lowercase UUID from the prepared command. |

Response schema:

```json
{
  "type": "object",
  "properties": {
    "schemaVersion": {
      "const": "1"
    },
    "intentId": {
      "type": "string",
      "format": "uuid"
    },
    "accountId": {
      "type": "string",
      "format": "uuid"
    },
    "marketId": {
      "type": "string"
    },
    "operationHash": {
      "type": "string"
    },
    "recordedStatus": {
      "type": "string"
    },
    "executionUncertain": {
      "type": "boolean"
    },
    "nativeSendStarted": {
      "type": "boolean"
    },
    "venueResponseRecorded": {
      "type": "boolean"
    },
    "admittedAt": {
      "type": "integer"
    },
    "updatedAt": {
      "type": "integer"
    },
    "automaticRetry": {
      "const": false
    },
    "financialAuthority": {
      "const": false
    },
    "settlementQualified": {
      "const": false
    },
    "message": {
      "type": "string"
    }
  },
  "required": [
    "intentId",
    "recordedStatus",
    "executionUncertain",
    "automaticRetry"
  ],
  "additionalProperties": true
}
```

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "intentId": "22222222-2222-4222-8222-222222222222",
  "accountId": "11111111-1111-4111-8111-111111111111",
  "marketId": "hyperliquid.xyz.NVDA.USDC",
  "recordedStatus": "UNKNOWN",
  "executionUncertain": true,
  "nativeSendStarted": true,
  "venueResponseRecorded": false,
  "automaticRetry": false,
  "financialAuthority": false,
  "settlementQualified": false,
  "message": "Inspect the original native order before submitting another intent."
}
```

## Funding & permissions

Use the same customer-owned funding and venue setup workflows as the dashboard.

### Read funding context

`GET /api/v1/funding/context`

Inspect the existing customer-owned funding context and observed eligibility.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

### Plan venue funding

`POST /api/v1/funding/plan`

Use the dashboard’s bounded funding planner. Plans do not authorize transfers.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object"
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

### Prepare funding consent

`POST /api/v1/funding/prepare`

Prepare the existing funding workflow’s exact wallet consent.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object"
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

### Confirm funding consent

`POST /api/v1/funding/submit`

Submit the existing signed funding request to its independently verified regional service.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object"
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- Preserves the current workflow’s transfer bounds, identity and admission checks. No API key authorizes transfers.

### Read original funding status

`GET /api/v1/funding/status`

Inspect the original funding request; a relay receipt alone does not prove native settlement.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| fundingId | query | string | Yes | Original lowercase funding UUID. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

## Advanced venue workflows

The complete native dashboard workflow surface: enrollment, agents, original funding requests, venue setup, fees and recovery. These preserve each regional service’s existing payload and consent checks.

### accounts · standard mode · context

`POST /api/v1/accounts/standard-mode/context`

Continue the accounts · standard mode · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### accounts · standard mode · original context

`POST /api/v1/accounts/standard-mode/original-context`

Continue the accounts · standard mode · original context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### accounts · standard mode · prepare

`POST /api/v1/accounts/standard-mode/prepare`

Continue the accounts · standard mode · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### accounts · standard mode · retire

`POST /api/v1/accounts/standard-mode/retire`

Continue the accounts · standard mode · retire workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### accounts · standard mode · submit

`POST /api/v1/accounts/standard-mode/submit`

Continue the accounts · standard mode · submit workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### agents · context

`POST /api/v1/agents/context`

Continue the agents · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### agents · prepare

`POST /api/v1/agents/prepare`

Continue the agents · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### agents · retire unsubmitted

`POST /api/v1/agents/retire-unsubmitted`

Continue the agents · retire unsubmitted workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### agents · submit

`POST /api/v1/agents/submit`

Continue the agents · submit workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### aster · agents · context

`POST /api/v1/aster/agents/context`

Continue the aster · agents · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### aster · agents · prepare

`POST /api/v1/aster/agents/prepare`

Continue the aster · agents · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### aster · agents · submit

`POST /api/v1/aster/agents/submit`

Continue the aster · agents · submit workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### commands

`POST /api/v1/commands`

Continue the commands workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### commands · prepare

`POST /api/v1/commands/prepare`

Continue the commands · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · canary · exit · prepare

`POST /api/v1/fees/canary/exit/prepare`

Continue the fees · canary · exit · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · canary · exit · submit

`POST /api/v1/fees/canary/exit/submit`

Continue the fees · canary · exit · submit workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · canary · mode · prepare

`POST /api/v1/fees/canary/mode/prepare`

Continue the fees · canary · mode · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · canary · mode · submit

`POST /api/v1/fees/canary/mode/submit`

Continue the fees · canary · mode · submit workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · canary · prepare

`POST /api/v1/fees/canary/prepare`

Continue the fees · canary · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · canary · submit

`POST /api/v1/fees/canary/submit`

Continue the fees · canary · submit workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · commissioning · prepare

`POST /api/v1/fees/commissioning/prepare`

Continue the fees · commissioning · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · commissioning · retire unsubmitted

`POST /api/v1/fees/commissioning/retire-unsubmitted`

Continue the fees · commissioning · retire unsubmitted workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · commissioning · submit

`POST /api/v1/fees/commissioning/submit`

Continue the fees · commissioning · submit workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · prepare

`POST /api/v1/fees/prepare`

Continue the fees · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · submit

`POST /api/v1/fees/submit`

Continue the fees · submit workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding agents · context

`POST /api/v1/funding-agents/context`

Continue the funding agents · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding agents · prepare

`POST /api/v1/funding-agents/prepare`

Continue the funding agents · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding agents · retire

`POST /api/v1/funding-agents/retire`

Continue the funding agents · retire workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding agents · submit

`POST /api/v1/funding-agents/submit`

Continue the funding agents · submit workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · allowance · claim external

`POST /api/v1/funding/aster/allowance/claim-external`

Continue the funding · aster · allowance · claim external workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · allowance · hint

`POST /api/v1/funding/aster/allowance/hint`

Continue the funding · aster · allowance · hint workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · allowance · prepare

`POST /api/v1/funding/aster/allowance/prepare`

Continue the funding · aster · allowance · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · claim external

`POST /api/v1/funding/aster/claim-external`

Continue the funding · aster · claim external workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · evm successor · claim

`POST /api/v1/funding/aster/evm-successor/claim`

Continue the funding · aster · evm successor · claim workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · evm successor · hint

`POST /api/v1/funding/aster/evm-successor/hint`

Continue the funding · aster · evm successor · hint workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · evm successor · prepare

`POST /api/v1/funding/aster/evm-successor/prepare`

Continue the funding · aster · evm successor · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · evm successor · refresh

`POST /api/v1/funding/aster/evm-successor/refresh`

Continue the funding · aster · evm successor · refresh workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · evm successor · request

`POST /api/v1/funding/aster/evm-successor/request`

Continue the funding · aster · evm successor · request workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · evm successor · retire request

`POST /api/v1/funding/aster/evm-successor/retire-request`

Continue the funding · aster · evm successor · retire request workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · evm successor · retire unsigned

`POST /api/v1/funding/aster/evm-successor/retire-unsigned`

Continue the funding · aster · evm successor · retire unsigned workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · hint

`POST /api/v1/funding/aster/hint`

Continue the funding · aster · hint workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · initial deposit · claim

`POST /api/v1/funding/aster/initial-deposit/claim`

Continue the funding · aster · initial deposit · claim workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · initial deposit · hint

`POST /api/v1/funding/aster/initial-deposit/hint`

Continue the funding · aster · initial deposit · hint workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · initial deposit · intent

`POST /api/v1/funding/aster/initial-deposit/intent`

Continue the funding · aster · initial deposit · intent workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · initial deposit · prepare

`POST /api/v1/funding/aster/initial-deposit/prepare`

Continue the funding · aster · initial deposit · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · initial deposit · retire unsigned

`POST /api/v1/funding/aster/initial-deposit/retire-unsigned`

Continue the funding · aster · initial deposit · retire unsigned workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · initial deposit · unprepared disposition

`POST /api/v1/funding/aster/initial-deposit/unprepared-disposition`

Continue the funding · aster · initial deposit · unprepared disposition workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · plan

`POST /api/v1/funding/aster/plan`

Continue the funding · aster · plan workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · prepare

`POST /api/v1/funding/aster/prepare`

Continue the funding · aster · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · prepare planned

`POST /api/v1/funding/aster/prepare-planned`

Continue the funding · aster · prepare planned workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · reserve

`POST /api/v1/funding/aster/reserve`

Continue the funding · aster · reserve workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · evm successor · claim

`POST /api/v1/funding/evm-successor/claim`

Continue the funding · evm successor · claim workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · evm successor · hint

`POST /api/v1/funding/evm-successor/hint`

Continue the funding · evm successor · hint workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · evm successor · prepare

`POST /api/v1/funding/evm-successor/prepare`

Continue the funding · evm successor · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · evm successor · refresh

`POST /api/v1/funding/evm-successor/refresh`

Continue the funding · evm successor · refresh workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · evm successor · request

`POST /api/v1/funding/evm-successor/request`

Continue the funding · evm successor · request workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · evm successor · retire request

`POST /api/v1/funding/evm-successor/retire-request`

Continue the funding · evm successor · retire request workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · evm successor · retire unsigned

`POST /api/v1/funding/evm-successor/retire-unsigned`

Continue the funding · evm successor · retire unsigned workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · hypercore · inward · claim

`POST /api/v1/funding/hypercore/inward/claim`

Continue the funding · hypercore · inward · claim workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · hypercore · inward · plan

`POST /api/v1/funding/hypercore/inward/plan`

Continue the funding · hypercore · inward · plan workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · hypercore · inward · prepare

`POST /api/v1/funding/hypercore/inward/prepare`

Continue the funding · hypercore · inward · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · hypercore · inward · report

`POST /api/v1/funding/hypercore/inward/report`

Continue the funding · hypercore · inward · report workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · hypercore · prepare

`POST /api/v1/funding/hypercore/prepare`

Continue the funding · hypercore · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · hypercore · submit

`POST /api/v1/funding/hypercore/submit`

Continue the funding · hypercore · submit workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · legacy deposit · claim

`POST /api/v1/funding/legacy-deposit/claim`

Continue the funding · legacy deposit · claim workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · legacy deposit · hash hint

`POST /api/v1/funding/legacy-deposit/hash-hint`

Continue the funding · legacy deposit · hash hint workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · legacy deposit · plan

`POST /api/v1/funding/legacy-deposit/plan`

Continue the funding · legacy deposit · plan workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · legacy deposit · prepare

`POST /api/v1/funding/legacy-deposit/prepare`

Continue the funding · legacy deposit · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · legacy deposit · reserve

`POST /api/v1/funding/legacy-deposit/reserve`

Continue the funding · legacy deposit · reserve workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · ostium · plan

`POST /api/v1/funding/ostium/plan`

Continue the funding · ostium · plan workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · ostium · reserve

`POST /api/v1/funding/ostium/reserve`

Continue the funding · ostium · reserve workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · owner initial deposit · claim

`POST /api/v1/funding/owner-initial-deposit/claim`

Continue the funding · owner initial deposit · claim workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · owner initial deposit · hash hint

`POST /api/v1/funding/owner-initial-deposit/hash-hint`

Continue the funding · owner initial deposit · hash hint workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · owner initial deposit · prepare

`POST /api/v1/funding/owner-initial-deposit/prepare`

Continue the funding · owner initial deposit · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · owner initial deposit · release unclaimed

`POST /api/v1/funding/owner-initial-deposit/release-unclaimed`

Continue the funding · owner initial deposit · release unclaimed workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · owner initial deposit · request

`POST /api/v1/funding/owner-initial-deposit/request`

Continue the funding · owner initial deposit · request workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · owner initial deposit · unprepared disposition

`POST /api/v1/funding/owner-initial-deposit/unprepared-disposition`

Continue the funding · owner initial deposit · unprepared disposition workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · reserve

`POST /api/v1/funding/reserve`

Continue the funding · reserve workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · retire original

`POST /api/v1/funding/retire-original`

Continue the funding · retire original workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### ostium · context

`POST /api/v1/ostium/context`

Continue the ostium · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### ostium · planning

`POST /api/v1/ostium/planning`

Continue the ostium · planning workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### ostium · prepare

`POST /api/v1/ostium/prepare`

Continue the ostium · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### ostium · setup · context

`POST /api/v1/ostium/setup/context`

Continue the ostium · setup · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### ostium · setup · external claim

`POST /api/v1/ostium/setup/external-claim`

Continue the ostium · setup · external claim workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### ostium · setup · external hint

`POST /api/v1/ostium/setup/external-hint`

Continue the ostium · setup · external hint workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### ostium · setup · prepare

`POST /api/v1/ostium/setup/prepare`

Continue the ostium · setup · prepare workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### ostium · setup · submit

`POST /api/v1/ostium/setup/submit`

Continue the ostium · setup · submit workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### trading · model jobs

`POST /api/v1/trading/model-jobs`

Continue the trading · model jobs workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Request schema:

```json
{
  "type": "object",
  "description": "Exact native workflow payload from the dashboard context/preparation protocol; the regional service validates its fields. Never substitute a generic command or send a private key."
}
```

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### accounts · standard mode · status

`GET /api/v1/accounts/standard-mode/status`

Read the accounts · standard mode · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| challengeId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### agents · original context

`GET /api/v1/agents/original-context`

Read the agents · original context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| accountId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### agents · status

`GET /api/v1/agents/status`

Read the agents · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| challengeId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### aster · agents · status

`GET /api/v1/aster/agents/status`

Read the aster · agents · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| challengeId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### commands · status

`GET /api/v1/commands/{intentId}`

Read the commands · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| intentId | path | string | Yes | Original lowercase UUID owned by this identity. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · canary · context

`GET /api/v1/fees/canary/context`

Read the fees · canary · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| accountId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · canary · exit · context

`GET /api/v1/fees/canary/exit/context`

Read the fees · canary · exit · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| canaryId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · canary · exit · status

`GET /api/v1/fees/canary/exit/status`

Read the fees · canary · exit · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| exitId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · canary · mode · context

`GET /api/v1/fees/canary/mode/context`

Read the fees · canary · mode · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| accountId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · canary · mode · status

`GET /api/v1/fees/canary/mode/status`

Read the fees · canary · mode · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| setupId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · canary · status

`GET /api/v1/fees/canary/status`

Read the fees · canary · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| canaryId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · commissioning · context

`GET /api/v1/fees/commissioning/context`

Read the fees · commissioning · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| accountId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · commissioning · original context

`GET /api/v1/fees/commissioning/original-context`

Read the fees · commissioning · original context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| accountId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · commissioning · status

`GET /api/v1/fees/commissioning/status`

Read the fees · commissioning · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| challengeId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · context

`GET /api/v1/fees/context`

Read the fees · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| marketId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### fees · status

`GET /api/v1/fees/status`

Read the fees · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| challengeId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding agents · status

`GET /api/v1/funding-agents/status`

Read the funding agents · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| challengeId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · allowance · status

`GET /api/v1/funding/aster/allowance/status`

Read the funding · aster · allowance · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| fundingId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · context

`GET /api/v1/funding/aster/context`

Read the funding · aster · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · evm successor · context

`GET /api/v1/funding/aster/evm-successor/context`

Read the funding · aster · evm successor · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| rootAttemptId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |
| lane | query | string | Yes | Native lane: HYPERLIQUID_INITIAL or HYPERLIQUID_LEGACY; Aster uses ASTER_INITIAL_ALLOWANCE or ASTER_INITIAL_DEPOSIT. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · evm successor · history

`GET /api/v1/funding/aster/evm-successor/history`

Read the funding · aster · evm successor · history workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| rootAttemptId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |
| lane | query | string | Yes | Native lane: HYPERLIQUID_INITIAL or HYPERLIQUID_LEGACY; Aster uses ASTER_INITIAL_ALLOWANCE or ASTER_INITIAL_DEPOSIT. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · evm successor · status

`GET /api/v1/funding/aster/evm-successor/status`

Read the funding · aster · evm successor · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| attemptId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · initial deposit · context

`GET /api/v1/funding/aster/initial-deposit/context`

Read the funding · aster · initial deposit · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| depositId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · initial deposit · setup

`GET /api/v1/funding/aster/initial-deposit/setup`

Read the funding · aster · initial deposit · setup workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · initial deposit · status

`GET /api/v1/funding/aster/initial-deposit/status`

Read the funding · aster · initial deposit · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| attemptId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · originals

`GET /api/v1/funding/aster/originals`

Read the funding · aster · originals workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| cursor | query | string | No | Optional opaque hex cursor returned by the previous original-request page. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · planned status

`GET /api/v1/funding/aster/planned-status`

Read the funding · aster · planned status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| fundingId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · aster · status

`GET /api/v1/funding/aster/status`

Read the funding · aster · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| fundingId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · evm successor · context

`GET /api/v1/funding/evm-successor/context`

Read the funding · evm successor · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| rootAttemptId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |
| lane | query | string | Yes | Native lane: HYPERLIQUID_INITIAL or HYPERLIQUID_LEGACY; Aster uses ASTER_INITIAL_ALLOWANCE or ASTER_INITIAL_DEPOSIT. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · evm successor · history

`GET /api/v1/funding/evm-successor/history`

Read the funding · evm successor · history workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| rootAttemptId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |
| lane | query | string | Yes | Native lane: HYPERLIQUID_INITIAL or HYPERLIQUID_LEGACY; Aster uses ASTER_INITIAL_ALLOWANCE or ASTER_INITIAL_DEPOSIT. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · evm successor · status

`GET /api/v1/funding/evm-successor/status`

Read the funding · evm successor · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| attemptId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · hypercore · context

`GET /api/v1/funding/hypercore/context`

Read the funding · hypercore · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| fundingId | query | string | No | Original lowercase funding UUID. Supply exactly one of fundingId or policyId. |
| policyId | query | string | No | Original lowercase policy UUID. Supply exactly one of fundingId or policyId. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · hypercore · inward · context

`GET /api/v1/funding/hypercore/inward/context`

Read the funding · hypercore · inward · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| accountId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · hypercore · inward · status

`GET /api/v1/funding/hypercore/inward/status`

Read the funding · hypercore · inward · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| planId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · hypercore · status

`GET /api/v1/funding/hypercore/status`

Read the funding · hypercore · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| fundingId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · legacy deposit · context

`GET /api/v1/funding/legacy-deposit/context`

Read the funding · legacy deposit · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| fundingId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · legacy deposit · status

`GET /api/v1/funding/legacy-deposit/status`

Read the funding · legacy deposit · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| attemptId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · originals

`GET /api/v1/funding/originals`

Read the funding · originals workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| cursor | query | string | No | Optional opaque hex cursor returned by the previous original-request page. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · owner initial deposit · context

`GET /api/v1/funding/owner-initial-deposit/context`

Read the funding · owner initial deposit · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| depositId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · owner initial deposit · setup

`GET /api/v1/funding/owner-initial-deposit/setup`

Read the funding · owner initial deposit · setup workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### funding · owner initial deposit · status

`GET /api/v1/funding/owner-initial-deposit/status`

Read the funding · owner initial deposit · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| attemptId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### ostium · accounts

`GET /api/v1/ostium/accounts`

Read the ostium · accounts workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### ostium · accounts · status · positions

`GET /api/v1/ostium/accounts/{accountId}/positions`

Read the ostium · accounts · status · positions workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| accountId | path | string | Yes | Original lowercase UUID owned by this identity. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### ostium · intents · status

`GET /api/v1/ostium/intents/{intentId}`

Read the ostium · intents · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| intentId | path | string | Yes | Original lowercase UUID owned by this identity. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### ostium · setup · intents · status

`GET /api/v1/ostium/setup/intents/{intentId}`

Read the ostium · setup · intents · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| intentId | path | string | Yes | Original lowercase UUID owned by this identity. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### trading · context

`GET /api/v1/trading/context`

Read the trading · context workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| marketId | query | string | Yes | Original owner-bound identifier from this workflow’s prior response. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

### trading · model jobs · status

`GET /api/v1/trading/model-jobs/{jobId}`

Read the trading · model jobs · status workflow using the same protocol as the dashboard. The fixed regional gateway validates the exact route, identifiers, body and identity.

Authentication: Authorization: Bearer <short-lived app identity proof>, with Origin matching the app. The regional service independently verifies owner identity. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| jobId | path | string | Yes | Original lowercase UUID owned by this identity. |

Illustrative response (examples are not live observations):

```json
{
  "error": {
    "code": "PRIVATE_GATEWAY_NOT_CONFIGURED",
    "message": "The protected trading service could not accept this request."
  },
  "financialAuthority": false
}
```

- This advanced route preserves the existing native protocol. It does not provide automatic consent, retry or new venue authority.
- Availability depends on the configured regional service and independent native qualification.

## Platform & discovery

Calendar, leaderboard, service capabilities and machine-readable documentation.

### Read the economic calendar

`GET /api/v1/calendar`

The dashboard calendar with its source and coverage metadata.

Authentication: Public. No credential required.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| week | query | string | No | Monday date in YYYY-MM-DD format; defaults to the current week. |

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "events": []
}
```

### Read the leaderboard

`GET /api/v1/leaderboard`

Read the same opt-in public leaderboard as the dashboard.

Authentication: Public. No credential required.

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "entries": []
}
```

### Check service health

`GET /api/v1/health`

Check that the edge API is responding. Health does not qualify funded execution.

Authentication: Public. No credential required.

Illustrative response (examples are not live observations):

```json
{
  "status": "ok",
  "service": "aperi-edge",
  "execution": "unavailable"
}
```

### Read service configuration

`GET /api/v1/status`

Discover the API version and configured private gateway availability. Configuration does not prove native trading qualification.

Authentication: Public. No credential required.

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1"
}
```

### Inspect capabilities

`GET /api/v1/capabilities`

Discover public venues and the platform’s declared trading capabilities before choosing a workflow.

Authentication: Public. No credential required.

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "liveTradingQualified": false,
  "venues": [
    "hyperliquid",
    "aster",
    "ostium",
    "gtrade",
    "avantis"
  ]
}
```

### List your market keys

`GET /api/v1/keys`

List the current app account’s read-only market keys, policy, accepted-request usage and account daily allowance. Secret token values are never returned again.

Authentication: Current Aperi app session cookie. Writes require Origin matching the app. Market keys are not accepted.

Response schema:

```json
{
  "type": "object",
  "properties": {
    "schemaVersion": {
      "const": "1"
    },
    "keys": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "scopes": {
            "type": "array",
            "items": {
              "const": "markets:read"
            }
          },
          "createdAt": {
            "type": "integer"
          },
          "expiresAt": {
            "type": "integer"
          },
          "enabled": {
            "type": "boolean"
          },
          "allowedIps": {
            "type": "array",
            "maxItems": 20,
            "items": {
              "type": "string",
              "description": "An IPv4/IPv6 address or CIDR. Empty allows any trusted ingress IP."
            }
          },
          "allowedOrigins": {
            "type": "array",
            "maxItems": 20,
            "items": {
              "type": "string",
              "format": "uri",
              "description": "Exact HTTPS Origin. If set, requests without a matching Origin are refused. This header policy does not attest a server client’s origin."
            }
          },
          "limits": {
            "type": "object",
            "properties": {
              "requestsPerMinute": {
                "type": "integer",
                "minimum": 1,
                "maximum": 120,
                "default": 60
              },
              "requestsPerDay": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100000,
                "default": 10000
              },
              "totalRequests": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1,
                "maximum": 1000000000,
                "default": null
              }
            },
            "required": [
              "requestsPerMinute",
              "requestsPerDay",
              "totalRequests"
            ],
            "additionalProperties": false
          },
          "usage": {
            "type": "object",
            "properties": {
              "minute": {
                "type": "integer"
              },
              "day": {
                "type": "integer"
              },
              "total": {
                "type": "integer"
              },
              "minuteResetsAt": {
                "type": "integer"
              },
              "dayResetsAt": {
                "type": "integer"
              },
              "lastUsedAt": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "lastIp": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "lastEndpoint": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "lastMethod": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "additionalProperties": true
          }
        },
        "required": [
          "id",
          "name",
          "prefix",
          "scopes",
          "createdAt",
          "expiresAt",
          "enabled",
          "allowedIps",
          "allowedOrigins",
          "limits",
          "usage"
        ],
        "additionalProperties": false
      }
    },
    "ownerDailyLimit": {
      "type": "integer"
    },
    "ownerDailyUsed": {
      "type": "integer"
    },
    "ownerDailyResetsAt": {
      "type": "integer"
    }
  },
  "additionalProperties": true
}
```

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "keys": [],
  "ownerDailyLimit": 20000,
  "ownerDailyUsed": 0
}
```

### Create a market key

`POST /api/v1/keys`

Create one of up to ten non-expired read-only market keys. Copy the secret from the one-time response.

Authentication: Current Aperi app session cookie. Writes require Origin matching the app. Market keys are not accepted.

Request example:

```json
{
  "name": "Research",
  "expiresInDays": 30,
  "allowedIps": [
    "203.0.113.10/32"
  ],
  "allowedOrigins": [],
  "limits": {
    "requestsPerMinute": 60,
    "requestsPerDay": 10000,
    "totalRequests": null
  }
}
```

Request schema:

```json
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "allowedIps": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "string",
        "description": "An IPv4/IPv6 address or CIDR. Empty allows any trusted ingress IP."
      }
    },
    "allowedOrigins": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "string",
        "format": "uri",
        "description": "Exact HTTPS Origin. If set, requests without a matching Origin are refused. This header policy does not attest a server client’s origin."
      }
    },
    "limits": {
      "type": "object",
      "properties": {
        "requestsPerMinute": {
          "type": "integer",
          "minimum": 1,
          "maximum": 120,
          "default": 60
        },
        "requestsPerDay": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100000,
          "default": 10000
        },
        "totalRequests": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 1,
          "maximum": 1000000000,
          "default": null
        }
      },
      "required": [
        "requestsPerMinute",
        "requestsPerDay",
        "totalRequests"
      ],
      "additionalProperties": false
    },
    "scopes": {
      "type": "array",
      "items": {
        "const": "markets:read"
      },
      "minItems": 1,
      "maxItems": 1
    },
    "expiresInDays": {
      "type": "integer",
      "minimum": 1,
      "maximum": 90,
      "default": 30
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false
}
```

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "key": {
    "scopes": [
      "markets:read"
    ]
  }
}
```

- Requires the current app session and same-origin request. Default expiry is 30 days; choose 1–90 days. The 256-bit secret is stored only as a SHA-256 digest.
- Per-key minute, UTC-day and lifetime budgets are atomic across clients. An account-wide 20000 requests/day ceiling prevents multiplying the allowance with more keys. Accepted key requests count even if a provider later fails. Denied IP/scope/Origin requests do not count.
- IP restrictions use only explicitly trusted Cloudflare ingress. Restricted keys fail closed when trusted client IP is unavailable, including local development. Origin restrictions are an additional header check, not a substitute for IP restrictions or authorization.
- A market key can read markets, products and venue discovery. It cannot read private accounts, save watchlists or trade. Public reads remain available without keys under shared ingress limits.

### Update key restrictions

`PATCH /api/v1/keys/{keyId}`

Change the name, enabled state, IP/CIDR allowlist, exact Origin policy or usage limits of your own key. Existing usage is preserved.

Authentication: Current Aperi app session cookie. Writes require Origin matching the app. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| keyId | path | string | Yes | Key UUID owned by the current account. |

Request example:

```json
{
  "enabled": false
}
```

Request schema:

```json
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "allowedIps": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "string",
        "description": "An IPv4/IPv6 address or CIDR. Empty allows any trusted ingress IP."
      }
    },
    "allowedOrigins": {
      "type": "array",
      "maxItems": 20,
      "items": {
        "type": "string",
        "format": "uri",
        "description": "Exact HTTPS Origin. If set, requests without a matching Origin are refused. This header policy does not attest a server client’s origin."
      }
    },
    "limits": {
      "type": "object",
      "properties": {
        "requestsPerMinute": {
          "type": "integer",
          "minimum": 1,
          "maximum": 120,
          "default": 60
        },
        "requestsPerDay": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100000,
          "default": 10000
        },
        "totalRequests": {
          "type": [
            "integer",
            "null"
          ],
          "minimum": 1,
          "maximum": 1000000000,
          "default": null
        }
      },
      "required": [
        "requestsPerMinute",
        "requestsPerDay",
        "totalRequests"
      ],
      "additionalProperties": false
    },
    "enabled": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
```

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "key": {
    "enabled": false
  }
}
```

- Pause disables requests immediately. Resume retains the original expiry and usage. Lowering a limit below current usage holds requests until its reset or a policy change.
- Revocation and expiry remain authoritative on every request; client-side controls are never trusted.

### Read key activity

`GET /api/v1/keys/audit`

Read the last 50 key creation, policy change, pause, resume and revocation events owned by the current account.

Authentication: Current Aperi app session cookie. Writes require Origin matching the app. Market keys are not accepted.

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "events": []
}
```

- Does not include secret tokens or token hashes. Use per-key last-used details and counters for request usage.

### Revoke a market key

`DELETE /api/v1/keys/{keyId}`

Revoke a key owned by the current app account.

Authentication: Current Aperi app session cookie. Writes require Origin matching the app. Market keys are not accepted.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| keyId | path | string | Yes | Key UUID from GET /keys. |

Illustrative response (examples are not live observations):

```json
{
  "schemaVersion": "1",
  "revoked": true
}
```

### Download OpenAPI

`GET /api/v1/openapi.json`

Machine-readable endpoint, authentication and request schemas for clients and future MCP tools.

Authentication: Public. No credential required.

Illustrative response (examples are not live observations):

```json
{
  "openapi": "3.1.0"
}
```

### Download Markdown

`GET /api/v1/docs.md`

The same documentation as this page, ready for agents and your own tooling.

Authentication: Public. No credential required.

| Parameter | Location | Type | Required | Description |
| --- | --- | --- | --- | --- |
| section | query | string | No | Export one section by its section ID. |
| endpoint | query | string | No | Export one operation by its OpenAPI operationId. |

Illustrative response (examples are not live observations):

```json
"Aperi API documentation"
```
