# Entity PnL curve | API reference | Femtos

> One named entity's HyperCore PnL per hour or day: realized, fees, funding, net and cumulative. GET /v1/entities/{id}/pnl on HyperCore: parameters, response fields and a live call per layer.

- 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://dashboard.femtos.xyz/signup (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/reference/entity-pnl

## Entity PnL curve — GET `/v1/entities/{id}/pnl`

One named entity's HyperCore PnL per hour or day: realized, fees, funding, net and cumulative.

Layers: HyperCore. Not on Elysium or HyperEVM: realized PnL comes from HyperCore fills and funding; an entity's EVM activity: GET /v1/entities/{id} and the KOL leaderboard of the layer.
Page with live calls: https://femtos.xyz/reference/entity-pnl?layer=hypercore

| Param | In | Example or values | Meaning |
|---|---|---|---|
| `id` | path | `abraxascapital` | Entity id |
| `window` | query | `7d`, `30d`, `90d`, `all` | UTC days ending today: 7d, 30d, 90d, or all (since `dataStart`). Default 30d |
| `bucket` | query | `1d`, `1h` | Bucket: 1h (window 7d or 30d) or 1d. Default 1d |

```bash
curl -H "Authorization: Bearer $FEMTOS_KEY" "https://api.femtos.xyz/v1/entities/abraxascapital/pnl"
```

| Field | Type | Meaning |
|---|---|---|
| `points[]` | object | One per bucket, oldest first: {t, realizedPnl, fees, funding, netPnl, cumNetPnl, fills} |
| `totals` | object | The window summed: {realizedPnl, fees, funding, netPnl, fills} |
| `from` | ms | Window start: the first bucket |
| `dataStart` | ms | Start of our HyperCore history |
| `wallets` | int | Wallets of the entity summed |
| `billing` | medium | medium with window 90d or all |

## Related (Named wallets)

- [Named wallets](https://femtos.xyz/reference/entities.md) `GET /v1/entities`: Every named entity, its X account, kinds, sources and wallets. (Elysium, HyperCore, HyperEVM)
- [One entity](https://femtos.xyz/reference/entity.md) `GET /v1/entities/{id}`: One named entity: its wallets on the three layers and 30 days of HyperCore trading. (Elysium, HyperCore, HyperEVM)
- [Entity proofs](https://femtos.xyz/reference/entity-graph.md) `GET /v1/entities/{id}/graph`: How each wallet of an entity was found: the path of links back to a public source and their proofs. (Elysium, HyperCore, HyperEVM)
- [KOL leaderboard](https://femtos.xyz/reference/kols.md) `GET /v1/kols/leaderboard`: KOLs, traders and funds ranked by their HyperCore PnL, volume and open positions. (Elysium, HyperCore, HyperEVM)
- [Named positioning](https://femtos.xyz/reference/kol-positioning.md) `GET /v1/kols/positioning`: How KOLs, traders and funds are positioned on each perp: long vs short, entry, PnL, liquidation risk and 1 h / 24 h flows. (HyperCore)
- [Named positioning stream](https://femtos.xyz/reference/ws/kol-positioning.md) `WS kol.positioning`: The GET /v1/kols/positioning answer (named wallets long vs short per perp, entry, PnL, liquidation risk, 1 h / 24 h flows), pushed on subscribe, then on each roll of the live positions (every 5 s) when it changes. (HyperCore)
- [KOL moves](https://femtos.xyz/reference/kol-activity.md) `GET /v1/kols/activity`: The latest fills of the named wallets, newest first, with who traded. (Elysium, HyperCore, HyperEVM)
- [KOL stream](https://femtos.xyz/reference/ws/kols.md) `WS kol.activity`: Every fill, liquidation, EVM swap, transfer and bridge leg of a named wallet, live. (Elysium, HyperCore, HyperEVM)

Every page: https://femtos.xyz/reference.md
