docs(developer-hub): present-tense pro auth docs, document price range endpoint - #3948
Conversation
…1478) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
5 Skipped Deployments
|
| | Parameter | Type | Required | Description | | ||
| | --- | --- | --- | --- | | ||
| | `access_token` | string | From Jul 24, 2026 | Pyth Pro API key | | ||
| | `access_token` | string | **Yes** | Pyth Pro API key | |
There was a problem hiding this comment.
🔍 Docs mark MCP access_token as required while tool schemas keep it optional
The MCP docs now state access_token is Yes (required) for get_historical_price and get_candlestick_data, but their Zod schemas still declare it .optional() (apps/mcp/src/tools/get-historical-price.ts:26-33, apps/mcp/src/tools/get-candlestick-data.ts:26-33), unlike get_latest_price where it is required (apps/mcp/src/tools/get-latest-price.ts:19-23). If the upstream API now enforces auth, callers omitting the token get a runtime auth error rather than a clear schema-level requirement; consider making the schemas required (and updating their .describe/tool descriptions) so code and docs agree.
Was this helpful? React with 👍 or 👎 to provide feedback.
| ### GET /\{channel\}/price/range | ||
|
|
||
| Returns paginated price data for a set of feeds over a bounded time window. | ||
|
|
||
| **Query Parameters** | ||
|
|
||
| | Parameter | Type | Required | Description | Example | | ||
| | ----------------- | ---------- | -------- | ------------------------------------------------------------------------------ | ------------------ | | ||
| | `ids` | `number[]` | Yes | Price feed IDs (max 100) | `1,2` | | ||
| | `start_timestamp` | `number` | Yes | Window start, Unix timestamp in **microseconds**, inclusive | `1704067200000000` | | ||
| | `end_timestamp` | `number` | Yes | Window end, Unix timestamp in **microseconds**, inclusive; the window may not exceed 60 seconds | `1704067260000000` | | ||
| | `limit` | `number` | No | Max results per page, 1–1000 (default: `100`) | `500` | | ||
| | `after` | `string` | No | Opaque pagination cursor from a previous response's `next` field | | | ||
|
|
||
| **Response Schema** | ||
|
|
||
| | Field | Type | Description | | ||
| | ------ | ---------- | ---------------------------------------------------- | | ||
| | `data` | `object[]` | Price objects, one per feed and timestamp | | ||
| | `next` | `string` | Opaque cursor, present only when another page exists | | ||
|
|
||
| Each `data` entry has the same shape as the `GET /{channel}/price` response: | ||
| `channel`, `channel_name`, `price_feed_id`, `price`, `publish_time`, | ||
| `best_bid_price`, `best_ask_price`, `publisher_count`, `exponent`, | ||
| `confidence`, `funding_rate`, `funding_timestamp`, `funding_rate_interval`, | ||
| `market_session`, `ema_price`, `ema_confidence`, `feed_update_timestamp`. | ||
|
|
||
| To fetch the next page, pass `next` verbatim as the `after` parameter of the | ||
| following request; stop when `next` is absent. Cursors are opaque and must not | ||
| be constructed by hand. | ||
|
|
||
| **Errors** | ||
|
|
||
| | Status | Cause | | ||
| | ------ | ---------------------------------------------------------------------------------------- | | ||
| | `400` | Invalid parameters, window longer than 60 seconds, or feed not ready/unavailable on the channel | | ||
| | `401` | Missing bearer token | | ||
| | `403` | Token not entitled to a requested feed | | ||
| | `404` | Unknown feed ID | | ||
|
|
There was a problem hiding this comment.
🔍 New range-endpoint section is unverifiable from this repo
The documented parameters, limits (max 100 ids, 60-second window, limit 1–1000 default 100), cursor semantics, and error codes for GET /{channel}/price/range cannot be cross-checked here — no price_range handler exists anywhere in this repository. As the PR description itself notes, this section should be validated against the live OpenAPI spec at https://pyth.dourolabs.app/docs/v1/openapi.json before merge, otherwise users may hit undocumented 400s.
Was this helpful? React with 👍 or 👎 to provide feedback.
Summary
In this PR we remove the stale July 24 auth announcements from the Pyth Pro docs and document the
GET /{channel}/price/rangeendpoint on the History API pageContext
llms-price-feeds-pro.txtline now state it as current reality; dev-forum announcement links are droppedprice_range_handlerin pyth-lazer — worth cross-checking against the live OpenAPI docs at pyth.dourolabs.app/docs🤖 Generated with Claude Code