What is covered
The registry is the SDK contract for route availability. Endpoint reference pages remain the source for request fields and response shapes.
Discover operations
- TypeScript
- Python
- Rust
Call a registered route
Operation names use the exactMETHOD /v3/path form shown by the registry. Pass template fields separately; the SDK URL-encodes them.
The following request reads a wallet’s combo summary:
- TypeScript
- Python
- Rust
Add query parameters
The registered executor accepts wire-format query names. This is useful when one example should translate directly across all three SDKs.- TypeScript
- Python
- Rust
group_by=order_hash and sort_by=order_hash are supported on the global, wallet, market-token, and market-slug trade routes.
Grouped trade responses use a smaller envelope than ungrouped list responses. They include trades, rows_returned, and grouped_by (plus the route identifier where applicable), but omit limit, offset, and has_more. The request’s limit and offset still select the page. If you page grouped results, track those values in your application and stop after an empty trades array instead of waiting for has_more.
Read perps through V3
Perps REST data uses the same executor and API key:- TypeScript
- Python
- Rust
TypeScript convenience methods
TypeScript also has typed helpers for frequently used V3 routes:execute() whenever a route is in pn.v3.operations but does not have a dedicated helper.
Retries and mutations
The V3 clients:- retry safe reads after transient transport errors,
408,425,429, and server errors - honor
Retry-Afterwithin the configured retry ceiling - use the registry’s retry policy for the two read-only batch POST operations
- never retry state-changing requests automatically
- expose the status, request ID, retry metadata, and a credential-redacted request URL on structured V3 errors
Precision
V3 responses may contain exact decimal and large integer values. TypeScript and Rust retain raw V3 JSON values without forcing monetary fields through binary floating point. Python decodes JSON decimal fractions asDecimal.
Preserve decimal strings or decimal objects until display. Do not convert identifiers, raw amounts, or exact prices to a JavaScript number merely for convenience.
Raw additive routes
request() is an escape hatch for a newly additive /v3/ route before the published registry is updated. It is restricted to the client’s configured origin and keeps credentials out of query strings.
Prefer execute() / execute_named() for registered routes because the registry supplies the correct retry policy.

