Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/farmdash-execution-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no email required.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: FarmDash Agent Execution API
version: 2.0.0
description: 'WARNING: Running trade executions and cancellations places real perpetual futures trades and alters active market exposure, carrying significant risk of financial loss. Immediate, explicit manual end-user confirmation and consent is strictly required immediately before placing any execution or cancellation request. Do not allow autonomous agents to auto-run trade execution or cancellation without manual user approval.
FarmDash is an intelligence and control layer for DeFi agents and serious airdrop farmers. This API covers swap transaction preparation (Signal Architect),
protocol discovery intelligence (Trail Heat), perpetual futures (Futures Strategist), portfolio
research, bounded autonomous sessions, x402 payment flows, and agent-readable opportunity intelligence.
FarmDash does not request seed phrases or raw wallet private keys. Compatibility
swap routes do not custody funds; separately configured venue or MPC delegations
remain subject to their provider controls and explicit policy bounds.
## Authentication
| Tier | Price | Auth | Rate Limit | Best for |
|------|-------|------|------------|----------|
| Scout | Free | None | 5 req / 24 h per IP | Keyless discovery and quotes |
| Pioneer | $39.99/mo USDC | `Authorization: Bearer <KEY>` | 1,500 req / day | Serious farmers, full datasets, sybil audits, wallet analytics |
| Syndicate | $199/mo USDC | `Authorization: Bearer <KEY>` | 50,000 req / day | Teams, serious agents, high-volume API use, webhooks, unrestricted CORS, advanced control/session tooling |
For SDK development without live data, use the deterministic sandbox on
the two endpoints that explicitly support it (`/v1/agent/protocols` and
`/v1/trail-heat`):
`?mock=true`, `X-FarmDash-Mock: true`, or `Authorization: Bearer fd_sandbox_mock`
Quote mock requests return typed `mock_not_supported` without contacting a live provider.
Swap execution requires a fresh successful preflight simulation plus an EIP-191 agent wallet signature.
Futures execution requires an EIP-712 Hyperliquid wallet signature.
## Dust Storm Protocol
On upstream failure, FarmDash returns `ok:false` with a typed degraded state
and a `warnings` array containing `{ kind: "dust_storm", message: "..." }`.
Cached SDK responses may be returned as stale with explicit stale-data age.
## x402 Payment Wall
When Scout limits are exceeded, send `X-Payment-Proof: 0x<txHash>` with a
route-specific USDC transfer on Base to the treasury to unlock one additional request.
The configured default overage is 0.01 USDC; premium routes return their own amount.
## Data Confidence
Agent-facing research responses include `data_quality` and `scoring_methodology`
where available. Trail Heat is a transparent heuristic, not a guaranteed yield,
allocation, or airdrop outcome.
## Rate Limit Headers
All responses include:
- `X-RateLimit-Limit` — max requests for the current window
- `X-RateLimit-Remaining` — remaining requests
- `X-RateLimit-Reset` — UTC epoch seconds when the window resets
- `X-Request-ID` — unique request trace ID (echo it for support)
## Versioned Signature Payload (v1)
`v1:FARMDASH_SWAP:{fromChainId}:{toChainId}:{fromToken}:{toToken}:{fromAmount}:{agentAddress}:{toAddress}:{nonce}`
## Mandatory Swap Simulation Gate
Call `/agents/quote` with `walletAddress` to receive `intent_id`, then call
`POST /v1/simulate` with that intent and wallet before calling `/agents/swap`.
`/agents/swap` rejects missing, failed, expired, or mismatched simulations.
'
contact:
name: FarmDash Engineering
url: https://www.farmdash.one/agents
license:
name: MIT
servers:
- url: https://www.farmdash.one/api
description: Production
tags:
- name: Execution
description: Futures order execution and cancellation
paths:
/v1/agent/futures/execute-order:
post:
operationId: executeOrder
summary: Execute a pre-signed order on Hyperliquid
description: 'Forwards a pre-signed EIP-712 order to Hyperliquid. Requires prior
execution-ready analyze-strategy call within 60 seconds (parameter-bound research gate). Syndicate only.
FarmDash may receive routing compensation from supported venues. Risk guardrails enforced server-side.
`nonce`, `expiresAt`, and `intentHash` are required for request-scoped
expiry and auditability. `expiresAt` is forwarded as venue `expiresAfter`.
The signed order action discloses FarmDash builder `f=1`, which means
0.1 bp (0.001%) of filled notional—not 1 bp. Resting/rejected/unfilled
notional is not fee-bearing volume.
WARNING: This endpoint initiates real perpetual futures trades on Hyperliquid which can lead to substantial financial loss. You must explicitly present all trade details, fees, and leverage levels to the user, and obtain their manual confirmation prior to calling this endpoint. Never automate or auto-run this endpoint.
'
tags:
- Execution
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ExecuteOrderRequest'
responses:
'200':
description: Order execution result
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/ExecuteOrderResponse'
'400':
description: Risk check failed or research not performed
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'402':
$ref: '#/components/responses/PaymentRequired'
/v1/agent/futures/cancel-order:
post:
operationId: cancelOrder
summary: Cancel open Hyperliquid orders
description: 'Cancels one or more open orders (max 50 per request).
Scout (5/day limit) or Pioneer/Syndicate (unlimited) access. EIP-712 signature on every request.
Required `expiresAt` is forwarded as venue `expiresAfter`; required
`intentHash` binds the FarmDash request for auditability.
WARNING: This endpoint alters active market state and cancels protective orders. Ensure the user has explicitly confirmed the action and understands the resulting exposure change before calling this endpoint. Never automate or auto-run this endpoint.
'
tags:
- Execution
security:
- bearerAuth: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CancelOrderRequest'
responses:
'200':
description: Cancellation result
headers:
X-Request-ID:
$ref: '#/components/headers/X-Request-ID'
content:
application/json:
schema:
$ref: '#/components/schemas/CancelOrderResponse'
'400':
$ref: '#/components/responses/BadRequest'
'402':
$ref: '#/components/responses/PaymentRequired'
components:
responses:
PaymentRequired:
description: Free-tier limit exceeded — x402 payment required
headers:
X-Payment-Required:
schema:
type: string
X-Payment-Address:
schema:
type: string
description: Treasury wallet (USDC on Base)
X-Payment-Token:
schema:
type: string
description: USDC contract on Base
X-Payment-Amount:
schema:
type: string
description: Amount in token decimals (990000 = 0.99 USDC)
X-Payment-Chain-Id:
schema:
type: string
description: 8453 (Base)
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRequiredError'
BadRequest:
description: Invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
schemas:
ExecuteOrderResponse:
type: object
properties:
ok:
type: boolean
state:
type: string
enum:
- filled
- resting_unfilled
- rejected
- unknown
result:
type: object
properties:
status:
type: string
response:
type: object
order:
type: object
properties:
coin:
type: string
side:
type: string
enum:
- buy
- sell
size:
type: string
price:
type: string
type:
type: string
reduceOnly:
type: boolean
leverage:
type: number
leverageStatus:
type: string
enum:
- risk_check_metadata_only
builderFee:
type: object
properties:
recipient:
type: string
venueUnitsTenthsBps:
type: number
example: 1
basisPoints:
type: number
example: 0.1
percent:
type: number
example: 0.001
appliesTo:
type: string
enum:
- filled_notional_only
signedInsideOrderAction:
type: boolean
intentHash:
type: string
expiresAt:
type: integer
timestamp:
type: integer
error:
type: string
warnings:
type: array
items:
$ref: '#/components/schemas/DustStormWarning'
DustStormWarning:
type: object
required:
- kind
- message
properties:
kind:
type: string
const: dust_storm
message:
type: string
PaymentRequiredError:
type: object
properties:
ok:
type: boolean
example: false
error:
type: string
example: payment_required
code:
type: string
example: payment_required
message:
type: string
retryable:
type: boolean
direct_upgrade_url:
type: string
format: uri
rate_limit:
type: object
additionalProperties: true
developer_sandbox:
type: object
additionalProperties: true
payment_required:
type: object
properties:
amount:
type: string
example: 0.01 USDC
chain:
type: string
example: Base
destination:
type: string
example: '0xb0Ed0d7bca24BBaD635B977C2efbE06742e33377'
token:
type: string
chainId:
type: integer
example: 8453
CancelOrderResponse:
type: object
properties:
ok:
type: boolean
result:
type: object
properties:
status:
type: string
response:
type: object
cancelled:
type: object
properties:
coin:
type: string
orderIds:
type: array
items:
type: integer
count:
type: integer
intentHash:
type: string
expiresAt:
type: integer
timestamp:
type: integer
error:
type: string
warnings:
type: array
items:
$ref: '#/components/schemas/DustStormWarning'
ExecuteOrderRequest:
type: object
required:
- agentAddress
- coin
- isBuy
- size
- price
- orderType
- nonce
- expiresAt
- intentHash
- signature
properties:
agentAddress:
type: string
pattern: ^0x[a-fA-F0-9]{40}$
coin:
type: string
isBuy:
type: boolean
size:
type: string
price:
type: string
orderType:
type: string
enum:
- limit_gtc
- limit_ioc
- limit_alo
- market
- stop_loss
- take_profit
reduceOnly:
type: boolean
default: false
leverage:
oneOf:
- type: number
- type: string
signedAction:
type: object
description: 'If supplied, must contain the signed FarmDash builder term `{ b: treasury, f: 1 }`; f is tenths of a basis point.'
nonce:
type: integer
expiresAt:
type: integer
intentHash:
type: string
signature:
$ref: '#/components/schemas/EIP712Signature'
ErrorResponse:
type: object
required:
- error
properties:
ok:
type: boolean
example: false
error:
type: string
code:
type: string
message:
type: string
retryable:
type: boolean
request_id:
type: string
details:
type: object
additionalProperties: true
EIP712Signature:
type: object
required:
- r
- s
- v
properties:
r:
type: string
s:
type: string
v:
type: integer
CancelOrderRequest:
type: object
required:
- agentAddress
- coin
- orderIds
- nonce
- expiresAt
- intentHash
- signature
properties:
agentAddress:
type: string
pattern: ^0x[a-fA-F0-9]{40}$
coin:
type: string
orderIds:
type: array
minItems: 1
maxItems: 50
items:
type: integer
signedAction:
type: object
nonce:
type: integer
expiresAt:
type: integer
intentHash:
type: string
signature:
$ref: '#/components/schemas/EIP712Signature'
headers:
X-Request-ID:
description: Unique request trace ID for debugging and support
schema:
type: string
format: uuid
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Pioneer or Syndicate API key
x-agent-use-cases:
- id: bounded-autopilot
name: Bounded Autopilot
tier: Syndicate
cadence: Every 5 minutes
purpose: Run an always-on loop inside explicit budgets, allowlists, cooldowns, quote freshness, and local-signing requirements.
primaryTools:
- agent_onboard
- create_session
- configure_autopilot
- autopilot_cycle
- session_heartbeat
stopConditions:
- Budget, allowlist, cooldown, quote freshness, or risk bound is violated.
- Required local EIP-191 or EIP-712 signature is missing.
- Realized performance degrades enough to require analysis_only mode.
- id: airdrop-rotation
name: Airdrop Rotation Desk
tier: Pioneer
cadence: Daily or event-driven
purpose: Watch Trail Heat, snapshots, multiplier changes, wallet health, and costs before entering, waiting, rotating, or exiting.
primaryTools:
- get_trail_heat
- get_historical_trailheat
- get_agent_events
- simulate_points
- get_swap_quote
- simulate_swap_execution
stopConditions:
- Expected point edge is unclear or negative after fees and gas.
- Sybil risk exceeds the configured threshold.
- User constraints do not allow the target chain or protocol.
- id: cross-chain-roi
name: Cross-Chain ROI Gate
tier: Pioneer
cadence: Before any bridge
purpose: Bridge only when net expected edge remains positive after bridge fee, gas, slippage, and execution risk buffer.
primaryTools:
- get_chain_breakdown
- get_wallet_balances
- get_token_prices
- get_swap_quote
- simulate_swap_execution
- optimize_portfolio
stopConditions:
- netEdgeUsd is not positive.
- Quote age exceeds the configured freshness limit.
- Target chain is not allowlisted.
- id: perps-hedge
name: Perps Hedge Co-Pilot
tier: Syndicate
cadence: Before exposure changes
purpose: Evaluate whether a farming position needs a Hyperliquid hedge, with no_trade as a valid outcome.
primaryTools:
- scan_funding_rates
- scan_market_conditions
- get_futures_account
- analyze_futures_strategy
- calculate_position_size
stopConditions:
- Research gate expires.
- Strategy confidence, liquidity, jurisdiction, or guardrails do not support execution.
- Daily loss or drawdown limit is reached.