: "${MOBIUS_API_BASE_URL:?Set the API URL from your app}"
: "${MOBIUS_API_KEY:?Set your API key locally}"
: "${IDEMPOTENCY_KEY:?Generate and persist an ID before this mutation}"
curl -i "$MOBIUS_API_BASE_URL/v1/delta-neutral/tasks" \
-H "Authorization: Bearer $MOBIUS_API_KEY" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "Content-Type: application/json" \
-d '{"longVenue":"hl","shortVenue":"lighter","longMarket":"ETH","shortMarket":"ETH","sizeUsd":100}'
{
"taskId": "00000000-0000-4000-8000-000000000001",
"status": "pending"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}Endpoints
Create a task
Queues a new paired position. Both venues must be different, granted by the key and bound by its owner.
POST
/
v1
/
delta-neutral
/
tasks
: "${MOBIUS_API_BASE_URL:?Set the API URL from your app}"
: "${MOBIUS_API_KEY:?Set your API key locally}"
: "${IDEMPOTENCY_KEY:?Generate and persist an ID before this mutation}"
curl -i "$MOBIUS_API_BASE_URL/v1/delta-neutral/tasks" \
-H "Authorization: Bearer $MOBIUS_API_KEY" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "Content-Type: application/json" \
-d '{"longVenue":"hl","shortVenue":"lighter","longMarket":"ETH","shortMarket":"ETH","sizeUsd":100}'
{
"taskId": "00000000-0000-4000-8000-000000000001",
"status": "pending"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}{
"error": "<string>",
"code": "<string>"
}The example requests $100 per leg: long ETH on Hyperliquid and short ETH on Robinhood Lighter. Both venues need stored, approved bindings. Missing bindings return
Save the actual
409 venue_not_bound with an issues array.
Published minimum notional and base quantity are checked before acceptance. The worker checks sizing, venue readiness, and approvals again before trading, so an accepted task can still fail.
Do not send order prices, leverage, margin mode, or unknown fields. Configure account settings on the venue first. autoClose: false disables the funding-APY opening and auto-close rule.
This request can place real orders. Confirm the venues, symbols, and per-leg size before running it.
Send a command
Generate and persist the idempotency key once, then run the request. For an uncertain retry, rerun onlycurl with the same key and body.
export IDEMPOTENCY_KEY="$(uuidgen)"
curl -i "$MOBIUS_API_BASE_URL/v1/delta-neutral/tasks" \
-H "Authorization: Bearer $MOBIUS_API_KEY" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "Content-Type: application/json" \
-d '{"longVenue":"hl","shortVenue":"lighter","longMarket":"ETH","shortMarket":"ETH","sizeUsd":100}'
taskId from the response. 202 with pending means queued; read the task to check execution.
: "${MOBIUS_API_BASE_URL:?Set the API URL from your app}"
: "${MOBIUS_API_KEY:?Set your API key locally}"
: "${IDEMPOTENCY_KEY:?Generate and persist an ID before this mutation}"
curl -i "$MOBIUS_API_BASE_URL/v1/delta-neutral/tasks" \
-H "Authorization: Bearer $MOBIUS_API_KEY" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "Content-Type: application/json" \
-d '{"longVenue":"hl","shortVenue":"lighter","longMarket":"ETH","shortMarket":"ETH","sizeUsd":100}'
Authorizations
Headers
Body
application/json
Use two different, granted and bound venues. Leverage and margin mode are configured on venue accounts, not through this API.

