Skip to main content
Use Polygon.io through Corsair: one client, typed API calls. Polygon.io renamed itself Massive in 2025: polygon.io now redirects to massive.com, and api.polygon.io and api.massive.com serve the same API. The plugin calls api.polygon.io. Create a key in the Massive dashboard under Keys and paste it into the plugin; it travels as the documented apiKey query parameter. What to know before you query:
  • Plans gate the data, not the routes. A free (Basic) key reaches market status and holidays, tickers, ticker types, exchanges and the end-of-day aggregates (bars by minute and up, previousDay, dailySummary, marketSummary). Snapshots, movers and second bars need a paid plan. When a plan does not include a dataset the API answers 403 NOT_AUTHORIZED rather than an empty result, and the plugin reports that as a permission error instead of retrying.
  • status is not always OK. A plan with delayed data answers DELAYED, so the field stays a string rather than an enum a future value could break.
  • Paging. aggregates.bars and tickers.list return next_url while another page exists (marketSummary answers every ticker in one page). It already carries the cursor and your filters, so pass it to the same operation as nextUrl and the other arguments are ignored. Any apiKey the URL echoes is dropped, because the plugin adds the caller’s own.
  • A missing bar is not an error. aggregates.bars omits results when no qualifying trades happened in the window, so the plugin reads that as an empty page rather than a failed call. It does not mean the market was closed: an open session with no trades produces the same answer. Use market.status when you need the current market state.
  • Rates. The free tier allows 5 calls a minute. A 429 is retried by the transport three times, honouring any Retry-After the API sends; the plugin adds no retries of its own, so the budget is not multiplied.
  • Webhooks. The API sends none, so the plugin receives none.
What you get:
  • 12 typed API operations

Setup

1

Install

2

Add the plugin

corsair.ts
With multiTenancy: true, scope calls with corsair.withTenant(id). See Quick start for KEK + Hub keys, and Multi-tenancy for account isolation.
3

Choose authentication

4

Connect a tenant

Mint a connect link and send the tenant to it. Hub hosts the page and delivers the result to your app — see Connect / OAuth.

Example API calls

List actively traded US stocks
Read a ticker’s latest snapshot
See the full list on the API page.

What’s next

API reference

Every polygonio.api.* operation with input and output types.

Connect / OAuth

createLink, Hub delivery, and tenant connect flows.

Use with agents

Expose this plugin’s operations as MCP tools.