Developer··5 min read

Metaculus API: Tokens, Forecast Access & Pagination

Use current Metaculus API documentation to distinguish token authentication, access tiers, posts-feed pagination and missing community forecasts.

Metaculus API: Tokens, Forecast Access & Pagination
On this page

The current Metaculus API requires authentication. Its official API documentation specifies Authorization: Token <token>, and community forecast access depends on your access tier. A working credential does not establish that every aggregate is available.

Checked October 6, 2026 against the official API 2.0.0 specification. Examples below explain documented request structure and hypothetical parsing behavior. We have not created a token, authenticated an account, retrieved private forecasts or submitted a prediction.

Authentication and permitted use are separate

The Terms of Use were last modified September 21, 2026. They restrict commercial use and unauthorized collection. The API's own access guidance requires a separate written agreement for commercial use and prior written permission for AI/ML training, evaluation or development. Check the permission basis for the intended project before connecting it.

Keep credentials in a server-side secret store. A tutorial should use a placeholder rather than a real token; a support screenshot or console log should not contain credentials. Publishing a request example is different from authorizing a production data integration.

Start with the posts feed

The official OpenAPI specification documents GET /api/posts/. Its feed supports filters, pagination and an optional with_cp flag. This documentation-based example is for an authorized account and use:

curl --fail --silent --show-error \
  -H "Authorization: Token $METACULUS_API_TOKEN" \
  -H "Accept: application/json" \
  'https://www.metaculus.com/api/posts/?statuses=open&limit=20&with_cp=true'

We have not executed this authenticated request. The feed envelope contains next, previous and results. Do not assume the response is a bare array or that one page represents the whole platform.

A request flag does not expand your access tier

The specification says with_cp=true requests Community Prediction data subject to the account's tier. For group posts, the feed includes CP for only the top three subquestions; the detail endpoint is needed for all subquestions within the allowed scope. Preserve question identity when handling groups.

Model authentication, retrieval success and aggregate availability separately. A successful page can contain useful question metadata without the forecast value your display expected. Explain that state rather than turning it into a failed-question label or a fabricated number.

Unavailable is not a zero probability

Application stateDisplay behavior
Permitted forecast value presentDisplay the value with its question and source context
Aggregate unavailableShow unavailable; retain accessible metadata
Request failedShow retrieval failure and a bounded retry path
Valid empty pageShow no results for the selected filter

This table is an application design recommendation, not a list of provider error codes. A numerical zero and a missing value must survive parsing as different states. Avoid truthiness checks that replace both with the same default.

In an invented fixture, one permitted record contains a forecast of 0 and another contains no forecast field. The first has a supplied value; the second does not. The fixture tests a parser distinction, not the actual frequency or likelihood of an event on Metaculus.

Pagination needs an explicit finish condition

Suppose an invented first page has 20 records and a continuation link, and its second page has 7 records and no continuation. That example totals 27 records. It does not establish that the provider has only 27 questions or that all were accessible to your account.

For an authorized client, validate the response envelope, retain filters and stop at the documented end of pagination. Before following a returned link, validate its host and path so credentials cannot be forwarded to an unrelated destination. Bound page count and retries; record when your own cap leaves collection incomplete.

Deduplicate using the identity relevant to the display, and keep post-to-question relationships explicit. A group is not automatically one binary question. Include retrieval time and the source's documented time values separately when assessing freshness.

Read-only collection and forecast submission differ

The specification lists separate forecast-submission endpoints. A data-display example does not test submission, scoring, bot-account permissions or a forecasting strategy. Build and verify any later mutation workflow separately with the applicable account authorization.

A useful implementation review checks secrets, response validation, absent aggregates, filter persistence, pagination termination and incomplete-collection notices. These are engineering requirements still needed for a real integration, not a claim that this guide deploys one.

See Metaculus vs Alphascope for product context. Our Kalshi API, Polymarket API and PredictIt API guides cover different provider permissions and data contracts.

Frequently Asked Questions

Does the Metaculus API require authentication?▾

Yes. The current official documentation specifies token authentication for API requests. Follow the current documentation and permitted use for your account.

Does with_cp guarantee every community forecast?▾

No. The flag requests data within the account's access tier. An unavailable aggregate must remain distinct from a zero probability.

Does this guide deploy a Metaculus data connector?▾

No. It describes documented structure and hypothetical parsing behavior. No authenticated retrieval, commercial permission, token creation or prediction submission is claimed.