---
title: "Get Mark Price History"
method: GET
path: "/v1/info/mark-history"
---

# Get Mark Price History

`GET /v1/info/mark-history`

Get mark price history for an instrument, bucketed by interval.
If no end time is provided, the current time will be used.
Maximum of 1000 entries returned per request.
Only buckets with at least one mark update are included.
For intervals of a minute or coarser, a bucket cut mid-way by `end_timestamp`
may be omitted, or may reflect the window's last mark at one-minute fidelity.

## Query parameters

- `instrument_id` integer, required — Instrument ID
- `interval` '1s' | '1m' | '5m' | '15m' | '30m' | '1h' | '4h' | '6h' | '12h' | '1d' | '1w', required — Kline interval
- `start_timestamp` integer, required — Start timestamp in milliseconds
- `end_timestamp` integer — End timestamp in milliseconds

## Response `200`

Mark price history response.

- MarkHistoryResponse
  - `data` MarkPoint[], required
    - unknown[] — - `1767225600000` - Bucket open time (ms) - `"160.00"` - Last mark price in bucket
      - unknown
  - `more` boolean, required — More data available

## Other responses

- `400` — Bad request — the request was malformed or failed validation (bad query parameters, unparseable body, invalid signature, or a domain pre-check). The `error` field is a human-readable validation detail.
- `429` — Too Many Requests. `error` distinguishes the limit that was hit: `ip_rate_limited` (per-IP token bucket), `action_rate_limited` (per-account action rate), or `open_orders_limit` (resting open-order cap).
- `500` — Internal server error. `error` is `internal_error`.

---

[API](https://skmtc.net/polymarket/apis/polymarket-perps-http-api.md) · [All operations](https://skmtc.net/polymarket/apis/polymarket-perps-http-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/polymarket/polymarket-perps-http-api/revisions/76e4e47cf3aa/schema)
