---
title: "Cancel open Hyperliquid orders"
method: POST
path: "/v1/agent/futures/cancel-order"
tags: ["Execution"]
---

# Cancel open Hyperliquid orders

`POST /v1/agent/futures/cancel-order`

## Request

- Base URL: `https://www.farmdash.one/api`
- URL: `https://www.farmdash.one/api/v1/agent/futures/cancel-order`
- Auth: HTTP bearer

Cancels one or more open orders (max 50 per request).
Scout capacity is available inside the shared 30 requests / 24h quota; Pioneer is capped at 1,500/day and Syndicate at 50,000/day. The returned entitlement and rate-limit state is authoritative. EIP-712 signature is required on every request.
Required `expiresAt` is forwarded as venue `expiresAfter`; required
`intentHash` binds the FarmDash request for auditability.
HTTP 202 is returned only for `accepted` application acknowledgement, not final venue cancellation.
Reconcile every requested ID through `/api/v1/agent/futures/reconcile-order`
before dependent action. Venue nonce authority is `network + signer + nonce`
across account and vault contexts; durable replay control fails closed before submission.
WARNING: Real market actions can cause financial loss. USER_SIGNED requires fresh manual approval for each order/cancel. BOUNDED_AUTONOMOUS permits local agent signing without per-order confirmation only under a valid explicit owner-signed futures grant, authenticated session, venue delegation and all applicable gates. Futures bounded autonomy remains preparation_only until the production canary passes.

## Headers

- `X-FarmDash-Session-Token` string
- `X-ClawHub-Skill` string

## Request body

- CancelOrderRequest
  - `executionMode` 'USER_SIGNED' | 'BOUNDED_AUTONOMOUS': USER_SIGNED is preserved for unenrolled signers. Owner registration permanently enrolls the API wallet on its network across accounts, including after expiry/revocation; stripping mode/session fields cannot bypass bounded policy. Bounded dispatch returns nonretryable bounded_futures_preparation_only while rollout is not operational.
  - `grantId` string: Required for BOUNDED_AUTONOMOUS
  - `sessionId` string: Required for BOUNDED_AUTONOMOUS; binds session agent separately from API wallet
  - `sessionToken` string: Session capability; alternatively X-FarmDash-Session-Token header
  - `agentAddress` string, required
  - `coin` string, required
  - `orderIds` integer[], required
  - `signedAction` object
  - `nonce` integer, required
  - `expiresAt` integer, required
  - `intentHash` string, required
  - `signature` EIP712Signature, required
    - `r` string, required
    - `s` string, required
    - `v` integer, required

## Response `202`

Cancellation application acknowledgement; final venue cancellation requires reconciliation

- CancelOrderResponse
  - `ok` boolean
  - `state` 'accepted' | 'rejected' | 'partially_rejected' | 'unknown': `accepted` is application acknowledgement, not final venue cancellation.
  - `result` object
    - `status` string
    - `response` object
  - `cancellation` object
    - `accountAddress` string
    - `coin` string
    - `orderIds` integer[]
    - `count` integer
    - `perOrder` object[]
      - `orderId` integer
      - `status` unknown
  - `reconciliation` object: Required handoff for final venue cancellation evidence.
    - `required` true
    - `endpoint` '/api/v1/agent/futures/reconcile-order'
    - `orderIds` integer[]
  - `intentHash` string
  - `expiresAt` integer
  - `timestamp` integer
  - `error` string
  - `warnings` DustStormWarning[]
    - `kind` 'dust_storm', required
    - `message` string, required

## Other responses

- `400`: Invalid parameters
- `402`: Free-tier limit exceeded — x402 payment required

---

[API](https://skmtc.dev/farmdash/apis/farmdash-agent-api.md) · [All operations](https://skmtc.dev/farmdash/apis/farmdash-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/farmdash/apis/farmdash-agent-api/revisions/96310281f58c?raw)
