Murmo offers leveraged derivatives and event-contract trading — products that carry regulatory obligations in many jurisdictions. Before building an integration that trades these verticals, understand which restrictions apply to your account and region.
You are responsible for complying with the laws and regulations of your jurisdiction. Do not use
the Murmo API to access products that are not available to you where you are.
What’s restricted
| Product | Restriction level | Notes |
|---|
| Perpetuals | Narrower list | Leveraged derivatives are restricted in the United States and all comprehensively OFAC-sanctioned regions. |
| Prediction markets | Broader list | Event-contract trading is restricted in a wider set of jurisdictions and may also require identity verification. |
| Spot trading | Generally available | Subject to standard account eligibility. |
| Groups, portfolio, chat | Generally available | Subject to standard account eligibility. |
Which endpoints enforce geo restrictions
Geo restrictions apply only to specific write endpoints. Read endpoints are never gated — you can always fetch proposal details, prices, and market data regardless of your region.
These endpoints return 403 GEO_RESTRICTED in a restricted region:
| Vertical | Restricted endpoint | Action |
|---|
| Perps | POST /perps/proposals | Open a new perp proposal |
| Perps | POST /perps/proposals/{id}/increase | Join / increase a perp position |
| Perps | POST /perps/positions/{assignmentId}/reduce | Reduce a perp position |
| Perps | POST /perps/proposals/{id}/close | Close a perp proposal |
| Predictions | POST /predictions/proposals | Create a new prediction proposal |
| Predictions | POST /predictions/proposals/{id}/predict | Enter a prediction position |
These endpoints are NOT restricted, even for users in geo-restricted regions:
- All
GET read endpoints (proposals, positions, prices, market data)
- Perps:
POST /perps/positions/{assignmentId}/claim (claim funding)
- Predictions:
POST /predictions/proposals/{id}/sell (sell a prediction position)
- Predictions:
POST /predictions/proposals/{id}/close (close a prediction proposal)
- Predictions:
POST /predictions/proposals/{id}/claim (claim prediction winnings)
This means a restricted user can still settle and exit an existing prediction position — they simply cannot open new ones.
The 403 GEO_RESTRICTED response
When a write endpoint is called from a restricted region, the API returns:
{
"statusCode": 403,
"code": "GEO_RESTRICTED",
"message": "This product is not available in your region.",
"retryable": false,
"details": { "region": "US" },
"errorId": "..."
}
retryable is always false for GEO_RESTRICTED. Do not retry — the restriction is enforced at the account and region level and will not resolve on its own. Surface a clear message to the user or operator instead.
Identity verification (KYC)
Certain products — particularly prediction markets — may require identity verification (KYC) before trading. If your account has not completed the required verification, calls to those endpoints return 403 PROOF_REQUIRED.
KYC is completed exclusively in the Murmo app. There is no API route to submit or check verification status. If your integration hits PROOF_REQUIRED, direct the user to open the app and complete verification there.
{
"statusCode": 403,
"code": "PROOF_REQUIRED",
"message": "Identity verification is required to trade this product.",
"retryable": false,
"details": {},
"errorId": "..."
}
Withdrawals are in-app only
Withdrawing funds from your Murmo wallet to an external address always requires an interactive in-app session. This action is never exposed over the API. An API key can deploy your funds into positions but cannot send funds to an external wallet.
Attempting a withdrawal-like action via the API returns 403 ACTION_IN_APP_ONLY.
Eligibility rules are enforced at the account and product level and may change over time. If a
product that previously worked starts returning 403, open the Murmo app to check whether your
account still meets the requirements for that product.