# Stop map · HyperCore API · Femtos

> Open stop-loss and take-profit orders of one coin, bucketed by trigger price around the mark.

- Base URL: `https://api.femtos.xyz/v1` (REST) · `wss://api.femtos.xyz/v1/ws` (WebSocket) · MCP: `https://api.femtos.xyz/mcp`
- Auth: `Authorization: Bearer $FEMTOS_KEY`. Free key: https://femtos.xyz/accounts/ (browser), or with
  no browser: `GET https://femtos.xyz/accounts/agent/challenge`, solve its proof of work, then `POST https://femtos.xyz/accounts/agent/signup`
  (https://femtos.xyz/agents.md#agent-onboarding)
- Decimals are exact strings, times Unix milliseconds, addresses lowercase `0x`
- Whole API in one file: https://femtos.xyz/agents.md · OpenAPI: https://api.femtos.xyz/v1/openapi.json · Index: https://femtos.xyz/llms.txt
- Page with live calls: https://femtos.xyz/hypercore/stops

## Stop map — GET `/v1/hypercore/stops`

Open stop-loss and take-profit orders of one coin, bucketed by trigger price around the mark.

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `coin` | query | `BTC` | HyperCore coin: perp (BTC), HIP-3 (xyz:TSLA) |
| `buckets` | query | `40` | Most buckets (width rounded up to a round number); not with step |
| `step` | query | (optional) | Bucket width in price units, instead of buckets (at most 400 buckets) |
| `range_pct` | query | `10` | Half-width of the grid around the mark, percent, (0, 100] |

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/hypercore/stops?coin=BTC&buckets=40&range_pct=10"
```

| Field | Type | Meaning |
|---|---|---|
| `buckets[]` | object | Ascending price; empty when the mark is unknown: {pxLo, pxHi, count, notional, stop, takeProfit} |
| `buckets[].stop` | object | Open trigger orders of one kind, by side and execution: {sell, buy} |
| `totals` | object | Open trigger orders by kind: {count, notional, stop, takeProfit} |
| `below` | object | Under the grid: {count, notional} |
| `above` | object | Over the grid: {count, notional} |
| `markPx` | decimal \| null | Mark: last trade |
| `rangePct` | decimal | range_pct applied |
| `step` | decimal \| null | Bucket width |
| `asOf` | int \| null | Time of `height` (latest status of the open trigger-order table) (Unix ms); null before the table has one |
| `height` | int \| null | Head block of the layer the answer is cut at: every event up to it is counted (latest status of the open trigger-order table); null before the table has one |
| `positions` | object \| null | The perp positions snapshot that sized the whole-position orders (asOf, height); null without one: {asOf, height} |

## Related (Stops & take-profits)

- [Triggered stops](https://femtos.xyz/hypercore/stops-triggered.md): Stop-loss and take-profit orders that fired, newest first, with the fill they got.
- [Wallet stops](https://femtos.xyz/hypercore/wallet-stops.md): One wallet's open trigger orders, or with history=1 every status event of them.
- [Stops stream](https://femtos.xyz/hypercore/ws-stops.md): Every trigger order event: placed, triggered, canceled, and the order a trigger placed.

All HyperCore endpoints: https://femtos.xyz/hypercore.md
