Polymarket hub

Polymarket Series API

One series by id or slug, with its schedule and optional recent events.

GET /v1/polymarket/series/{idOrSlug}

1 credit Failed requests are free

About this endpoint

GET /v1/polymarket/series/{idOrSlug} returns data.series with id, slug, title, seriesType, recurrence, description, image, status, active, closed, archived, featured, volume, liquidity, commentCount and dates. Pass includeEvents=true to add data.events, the series' most recent events with the headline numbers of their markets, newest end date first.

Events need one more lookup, so data.events is null unless you ask. An unknown id or slug returns lookupStatus: not_found with series: null.

Polymarket Series API FAQ

What order are the events in?

Newest end date first. Each event is the same summary shape the events list returns, with the headline numbers of its markets rather than full market records.

How do I get full market records for a series event?

Take the event id from data.events[].id and call GET /v1/polymarket/events/{eventIdOrSlug}. The series route returns summaries to keep the response small.

Is includeEvents a separate charge?

It is part of the same request and reports one operation. It does cause one more lookup behind the scenes, so it can be slower. meta.creditsCharged is the final charge.

What does lookupStatus mean on this route?

found means the object or list was returned. not_found means no matching object exists. HTTP 200 only means the request finished, so branch on data.lookupStatus before storing a row.

How much does this route cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.