Polymarket Prediction Market Data Scraper avatar

Polymarket Prediction Market Data Scraper

Pricing

from $0.80 / 1,000 valid market data rows

Go to Apify Store
Polymarket Prediction Market Data Scraper

Polymarket Prediction Market Data Scraper

Search public Polymarket markets and outcomes by topic or market ID. Export outcome prices, volume, liquidity, market identifiers and public links.

Pricing

from $0.80 / 1,000 valid market data rows

Rating

0.0

(0)

Developer

MYM

MYM

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 days ago

Last modified

Categories

Share

Polymarket Prediction Market Data Scraper (No API Key, No Login)

![Apify Actor](https://img.shields.io/badge/Apify-Actor-00a36c) ![No API key](https://img.shields.io/badge/API%20key-not%20required-397a4a) ![No login](https://img.shields.io/badge/Login-not%20required-397a4a) ![Pay per result](https://img.shields.io/badge/Pricing-pay%20per%20result-4158d0)

Browse active Polymarket markets or search by topic. The dataset keeps the market and event IDs, outcome labels, outcome prices, volume, liquidity, activity flags, and public market links in one row per market.

Get your first results in under two minutes: open the prefilled input, run the Actor, and inspect the Markets dataset view.

Table of contents

What it does

Browse active Polymarket markets or search by topic. The dataset keeps the market and event IDs, outcome labels, outcome prices, volume, liquidity, activity flags, and public market links in one row per market.

This Actor stores one row per valid source record. It keeps provider identifiers so you can join the output to another dataset later. It does not place trades, predict outcomes, or create values the source did not return.

What you can collect

  • ✅ Search public markets by a keyword or list active markets
  • ✅ Read outcomes and aligned outcome price arrays
  • ✅ Keep condition IDs and CLOB token IDs for downstream lookups
  • ✅ Filter browse mode by a public tag slug

Who uses it

  • Prediction-market researchers comparing active questions
  • Developers collecting public market identifiers and outcome prices
  • News and finance teams tracking public event markets
  • Analysts building market discovery and monitoring workflows

Data fields

The table contains flat columns for the main values. The default dataset keeps the full structured record. Optional source fields remain null when the upstream did not provide them; a null is not converted to a guessed value.

Always populated on a valid row

FieldTypeDescriptionAvailability
marketId / conditionIdstringGamma market ID and on-chain condition ID.Always
questionstringMarket question or outcome title.Always
outcomesarrayOutcome labels, aligned by index with outcomePrices and clobTokenIds.Always
outcomePricesarrayIndicative outcome prices reported by Gamma.Always
active / closed / acceptingOrdersbooleanMarket state returned by the public API.Always

Populated when present in the source

FieldTypeDescriptionAvailability
eventId / eventTitlestringParent event identifier and title when the API provides it.When supplied
clobTokenIdsarrayCLOB token IDs aligned with the outcomes.When supplied
volume24hUsd / volumeUsdnumberReported 24-hour and total volume in USD.When supplied
liquidityUsdnumberReported market liquidity in USD.When supplied
bestBid / bestAsk / lastTradePricenumberIndicative best bid, ask and last trade fields when present.When supplied
endDate / updatedAtdate-timeMarket end and last update timestamps.When supplied
marketUrl / sourceApiUrlURLPublic market page and Gamma API record URL.When supplied

How to run it

  1. Open the input form and keep the prefilled example or replace it with your IDs, search terms, or market selectors.
  2. Set maxItems to the largest number of rows you need for this run. The source can return fewer matches.
  3. Start the Actor and wait for the run to finish. A valid row is written to the default dataset.
  4. Open the Markets view, review the source identifier and update time, then export JSON or CSV if needed.

The Actor does not expose a browser or ask for provider credentials. If a lookup has no public match, the run fails with zero stored rows rather than claiming a successful empty dataset.

Input examples

Prefilled run

{
"keywords": [
"bitcoin"
],
"marketIds": [],
"tagSlug": "",
"maxItems": 3
}

Use the source-specific selectors

Bitcoin outcome markets

{"keywords":["bitcoin"],"marketIds":[],"tagSlug":"","maxItems":3}

Browse active markets tagged crypto

{"keywords":[],"marketIds":[],"tagSlug":"crypto","maxItems":10}

Fetch one Gamma market by ID

{"keywords":[],"marketIds":["4908363"],"tagSlug":"","maxItems":1}

Input notes

Every input property has a description and prefill in the form. Empty optional arrays are allowed. Array lengths and result limits are clamped by the Actor before a request is sent. Do not include API credentials in the input.

Live output example

This trimmed row was captured from a live run on 2026-09-29. Values change as the provider updates its market data; use it to understand the field names, not as a current quote guarantee.

{
"marketId": "4908363",
"eventId": "1074371",
"eventTitle": "Valorant: G2 Esports vs Paper Rex (BO3) - VCT Champions Group C",
"question": "Valorant: G2 Esports vs Paper Rex (BO3) - VCT Champions Group C",
"slug": "val-g21-pr1-2026-09-29",
"outcomes": [
"G2 Esports",
"Paper Rex"
],
"outcomePrices": [
0.535,
0.465
],
"volume24hUsd": 857363.0143980006,
"volumeUsd": 996356.0045279997,
"liquidityUsd": 41742.7704,
"active": true,
"closed": false,
"acceptingOrders": true,
"endDate": "2026-09-29T15:00:00Z",
"marketUrl": "https://polymarket.com/event/val-g21-pr1-2026-09-29",
"sourceApiUrl": "https://gamma-api.polymarket.com/markets/4908363"
}

Limits and data quality

Keyword search reads the public Gamma search endpoint and flattens its event markets. Browse mode returns active markets sorted by reported 24-hour volume; tagSlug applies only to browse mode. Quotes and volumes change quickly. Gamma values are discovery data, not executable CLOB quotes.

The Actor preserves the provider’s identifiers and reported values. Where the upstream returns a numeric zero, the dataset keeps zero. Where a field is absent or not parseable, the normalized optional field is null. Invalid lookup IDs are not saved as data rows.

Pricing

$0.00080 per valid market row ($0.80 per 1,000 rows). Apify platform usage is separate.

A charge event is created only for a valid row pushed to the default dataset. Invalid inputs, empty results, and clean no-row failures do not create a per-result event. Apify platform usage charges (if any) are separate from the event price and follow your Apify plan. Set a run-level spending cap when calling the API at scale.

Tips

  • Use a keyword when you know the subject but not the market ID.
  • Use marketIds for exact records and keep conditionId distinct from clobTokenIds.
  • Read outcomes and outcomePrices by array index; each price belongs to the outcome at the same index.
  • Check active, closed and acceptingOrders before treating a market as currently tradeable.

For repeatable monitoring, keep the same canonical IDs or tickers in each run and compare snapshots with their update timestamps. Avoid comparing rows across chains or markets solely by display name.

Use-case recipes

These examples use supported inputs and small row caps. Replace IDs or search terms with the records your workflow needs.

Bitcoin outcome markets

Input: {"keywords":["bitcoin"],"marketIds":[],"tagSlug":"","maxItems":3}. Review the returned source ID, status, and freshness before joining the row to another dataset.

Browse active markets tagged crypto

Input: {"keywords":[],"marketIds":[],"tagSlug":"crypto","maxItems":10}. Review the returned source ID, status, and freshness before joining the row to another dataset.

Fetch one Gamma market by ID

Input: {"keywords":[],"marketIds":["4908363"],"tagSlug":"","maxItems":1}. Review the returned source ID, status, and freshness before joining the row to another dataset.

Other market data

For spot coin price, rank and supply fields, use CoinGecko Market Data. For cross-chain DEX pairs, use DexScreener Pair Data. For public prediction markets, see Polymarket and Kalshi. These sibling links point to the same publisher profile while each Actor is released.

Browse the publisher profile at apify.com/myagizm.

MCP and API

Connect an MCP client to Apify’s hosted MCP server at mcp.apify.com. Authenticate with Apify, then find this Actor using the Store search or expose it in your MCP tool list. The MCP server can run Actors and retrieve datasets under your account permissions.

For scripts and integrations, use the Apify API. Keep your token in an environment variable.

Run and return dataset items synchronously

curl -X POST "https://api.apify.com/v2/acts/myagizm~polymarket-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["bitcoin"], "maxItems": 3}'

Start an asynchronous run

curl -X POST "https://api.apify.com/v2/acts/myagizm~polymarket-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["bitcoin"], "maxItems": 3}'

Fetch the default dataset

$curl "https://api.apify.com/v2/datasets/$DATASET_ID/items?clean=true&format=json&token=$APIFY_TOKEN"

Use your API token only in your local environment. Do not paste it into Actor input, datasets, or issue reports.

FAQ

What does one result represent?

One stored row is one normalized upstream record: a coin, DEX pair, Polymarket market, or Kalshi market. The Actor does not charge for a status message, a failed lookup, or a run that stores no valid records.

Is this an official product from the data provider?

No. This is an independent Apify Actor that reads public market data. CoinGecko, DexScreener, Polymarket, and Kalshi keep ownership of their names, sites, and data.

No user-supplied provider key, login, cookie, or browser session is required for the public endpoints used here. Apify still requires your Apify account to run Actors and access your dataset.

How current are the results?

The Actor requests data when the run starts. Market prices and volumes can change between the upstream response, the saved dataset row, and a later export. Treat each row as a timestamped snapshot, not a live stream.

Does the Actor return historical prices?

No. This Actor returns the public market snapshot exposed by its supported endpoint. It does not reconstruct price history, candle series, or a tick-by-tick order book.

Why can some fields be null or zero?

The upstream may not publish every field for every record. A zero is retained when the source reports zero; null means the source did not provide a usable value. The README field table separates required output from optional fields.

Why can a search return several rows for one term?

A term can match multiple coins, trading pairs, events, or outcome markets. The Actor deduplicates by the source record identifier and applies maxItems after normalization.

What happens when an input is invalid?

The Actor does not turn an invalid lookup into a fake market row. If no valid records are returned, the run fails with a short message and stores no dataset items, so there is no per-result charge.

Can one input return no rows even when it is syntactically valid?

Yes. A symbol, ticker, address, or search term can be valid text but have no public match in the selected endpoint or status. Try the provider’s canonical ID or ticker and inspect the returned market status.

What does maxItems control?

maxItems is the maximum number of normalized rows written by one run. It is a result cap, not a promise that the upstream will have that many matches.

Why can prices differ from a trading screen?

The Actor reads the provider’s public discovery/data API. Screens may refresh at a different moment, apply a different filter, or display a live order book. Returned quotes are informational snapshots, not executable trading instructions.

Does this Actor place trades?

No. It only reads public market data and writes normalized rows to the default dataset. It does not connect a wallet, submit orders, move funds, or manage positions.

Can I export the results?

Yes. Apify datasets can be downloaded as JSON, CSV, Excel, XML, and other supported formats. The dataset view exposes the main flat columns for quick inspection; the default dataset remains the complete structured output.

Can I schedule runs?

Yes. Create a schedule in Apify Console or call the Apify API. Choose an interval that matches the upstream update cadence and your use case; frequent polling does not make a cached upstream value fresher.

Can I call the Actor from code?

Yes. Use the Apify API with your own API token, pass the JSON input, and read the run’s default dataset. The API examples below show synchronous run, asynchronous run, and dataset retrieval.

Can an AI agent call it over MCP?

Yes. Connect an MCP client to Apify’s hosted MCP server, authenticate through Apify, and expose this Actor from the Store or the actor tools list. The MCP connection uses your Apify account permissions.

What is the price?

The Actor uses PAY_PER_EVENT pricing and charges only for valid rows saved to the default dataset. Apify platform usage for the run can be billed separately under your plan; check the run and pricing panel before large workloads.

Why is there a minimum run budget?

Apify may show a minimum spending cap for PPE runs even when the per-row price is small. That cap is a limit on a run, not an extra per-row charge. Set maxTotalChargeUsd in API calls when you want a hard ceiling.

Can I submit many inputs at once?

Yes, within the input array limits. Start with a small maxItems value, check the dataset fields, then raise the cap if the upstream response and your budget support it.

What should I do after a timeout or temporary upstream error?

Retry later with the same input and a reasonable maxItems cap. Repeated retries cannot make a provider outage disappear and may consume platform run time even when no rows are saved.

Is the output investment advice?

No. The dataset is for research, monitoring, and software workflows. It does not recommend buying or selling, and it cannot guarantee that a market price, volume, or outcome probability will remain unchanged.

Does the Actor access private or restricted data?

No. It uses public, unauthenticated market endpoints. It does not bypass login screens, paid access, private accounts, or access controls.

How do I report a broken field or a provider change?

Open the Actor’s Issues tab and include the input shape, approximate run time, run ID, and the field that looks wrong. Do not include your Apify API token or other credentials in an issue.

Can I use the dataset in a commercial dashboard?

You can use the output in your workflow subject to Apify’s terms and the provider’s terms. You are responsible for checking the rights and obligations that apply to your specific use.

Why are there several market rows with similar titles?

Prediction events can contain multiple outcome markets, and DEX tokens can trade in several pairs or on several chains. The record ID and contract or market identifiers distinguish those rows.

Are all fields guaranteed to be populated?

No. The Actor preserves optional values when supplied by the upstream and returns null when an optional source field is absent. Only the required fields listed as always populated gate a row as valid.

Does an empty dataset mean the asset does not exist?

Not necessarily. It can mean the input did not match the endpoint, the record is not in the selected status, or the provider returned a temporary error. Check the input format and notes before drawing a conclusion.

Can I use the sample output as a quote guarantee?

No. The sample documents the output shape from a live response. It is not a quote commitment, an offer, or a guarantee of future availability.

Can I send a ticker instead of an ID?

Use the documented input that matches the source. CoinGecko search accepts names and terms while coinIds expects canonical CoinGecko IDs; Kalshi exact lookup expects market tickers; Polymarket marketIds are numeric Gamma IDs. A ticker is not interchangeable across these formats.

Why does the default input use only a few results?

The prefilled input is deliberately small so you can inspect real records and price fields before increasing maxItems. A small first run also makes it easier to catch a wrong coin ID, chain address, series ticker, or query.

Can I keep the full nested dataset?

Yes. The table view exposes common flat columns, while the default dataset retains the complete normalized JSON row, including arrays and nested objects where the source has them.

Does the Actor change upstream values?

No. It normalizes names and numeric types for a consistent dataset, but it does not calculate a synthetic market price or predict an outcome. A field that comes directly from a provider is identified by the sourceType and source URL fields.

What if an upstream endpoint changes its response?

The Actor validates required business fields before writing a row. If a required field disappears, the run will not silently save an empty success. Report the run ID and changed field in the Issues tab so the mapper can be checked against a fresh response.

Can I use an API token from a different service?

No third-party token is accepted or needed by this input schema. Do not paste secrets into the input. The Actor communicates with the public endpoint and returns the results in your Apify dataset.

Are market prices guaranteed to be executable?

No. A public market-data snapshot may be delayed, cached, or incomplete compared with an exchange order book. It is not an order, quote guarantee, execution price, or recommendation.

Can I filter or transform the exported rows?

Yes. Use the top-level columns in the dataset view, then filter in Apify’s dataset interface or after downloading JSON/CSV. If you need a specific output shape, transform the dataset downstream without changing the source record identifiers.

How should I handle duplicates?

The core deduplicates repeated source identifiers within one run. Separate runs are independent snapshots and can contain the same market or pair because the record still exists at the next observation time.

What is the difference between an event and a market?

An event groups related outcomes. A market is an individual question or tradable pair-level record. The Actor preserves both event and market identifiers when the source response provides them.

What is the difference between an outcome price and a bid/ask?

An outcome price is the source’s displayed probability-like value for an outcome. Bid and ask are separate quote fields when returned. Do not treat them as identical or infer a missing quote from the other fields.

Can I request all markets in one run?

The Actor caps maxItems and bounds request counts. For broader coverage, use a series, tag, or several small scheduled runs rather than assuming one page is a complete market catalog.

Do closed or settled markets appear?

The default status and active filters focus on open or active records. You can change the Kalshi status input when supported. Polymarket browse/search filters active markets; exact-ID lookups may return a record whose current state is closed, and its flags are included.

Can this replace the source provider’s own API?

It is a convenient Apify interface and dataset pipeline, not a promise of broader coverage or a replacement for provider documentation. Use the source identifiers and public API URLs in each row when you need to verify a record.

What does no result billing mean?

PPE billing is attached to successfully stored dataset rows. When input validation or the upstream lookup produces no valid row, the bridge fails the run before pushing data. A failed no-row control therefore has zero default dataset item events.

Polymarket bitcoin markets · Polymarket crypto market data · prediction market odds · bitcoin prediction market prices · active Polymarket markets API · Polymarket outcome prices dataset · Polymarket market volume and liquidity · crypto prediction market search · Polymarket event IDs and market IDs · condition ID and CLOB token IDs · Polymarket public API scraper · prediction market analytics CSV · election prediction markets data · sports prediction market odds · market outcome probability feed

Disclaimer

This Actor is an independent data tool and is not affiliated with or endorsed by the data provider. The output is informational and may be delayed, incomplete, corrected, or unavailable. It is not investment, legal, tax, or financial advice. You are responsible for complying with the terms and laws that apply to your use of the data.

Resources

Operational notes

How do I choose between a search term and a direct identifier?

Use a direct identifier when it is known and stable. For Polymarket public market and outcome data, a search term is convenient for discovery, while the source ID or ticker gives a more precise repeatable lookup. The input table describes the accepted shape for each option.

What is a safe first-run size?

The prefill uses a small maxItems value. Keep the first run at that size, inspect the live Polymarket public market and outcome data fields, then increase the cap only when the rows and cost match your workflow.

What fields should I use as a join key?

Use the source-specific identifier columns rather than display titles. Names and titles can change; IDs, tickers, contract addresses, or condition IDs are designed to identify the underlying record.

Can I run this continuously?

You can schedule repeated runs in Apify, but each run is a separate snapshot. Choose an interval that fits the source update cadence and the amount of change you need to observe; do not assume that faster polling creates fresher upstream data.

What if I need a field that is not listed?

First inspect the complete default dataset row and confirm that the source returns the field for the selected record. If the public API exposes it consistently and the field matters to your workflow, open an issue with a run ID and a sample record identifier.

How are failed lookups handled?

A failed lookup never becomes a fabricated result row. The bridge validates required Polymarket public market and outcome data fields before writing to the dataset; when no valid row remains, the run fails and the result event is not charged.

How should I compare two snapshots?

Compare records by their source identifiers and retain the run timestamp. Prices and volumes are mutable, so a changed value can reflect the market moving rather than a parsing error.

Does this Actor provide a complete catalog?

No single request is guaranteed to include the complete provider catalog. The Actor uses bounded pages, selectors, and maxItems to keep a run predictable. Use the provider’s own catalog documentation for coverage guarantees.

Can I share the dataset with a teammate?

Yes. Share access through Apify’s dataset and account controls, or export a file. Treat shared exports as copies of a time-bound snapshot and preserve the source record identifiers.

What does the source URL mean?

The source URL points to a public record or provider page when the Actor can construct or verify that URL. It is included for inspection, not as a promise that the page will remain available or display the same data later.

Why does a valid response still fail row validation?

HTTP success only means the request returned a response. The Actor also checks that required business fields exist and have usable types. A challenge page, unrelated object, or empty payload is not a valid Polymarket public market and outcome data record.

Can I change the row limit between runs?

Yes. maxItems is part of the run input. A smaller cap lowers the amount of data saved; a larger cap remains bounded by the input schema and the upstream request limits.


中文说明

Polymarket Prediction Market Data Scraper:Polymarket public market and outcome data(无需 API 密钥或登录)

![Apify Actor](https://img.shields.io/badge/Apify-Actor-00a36c) ![无需 API 密钥](https://img.shields.io/badge/API%20key-not%20required-397a4a) ![无需登录](https://img.shields.io/badge/Login-not%20required-397a4a) ![按结果计费](https://img.shields.io/badge/Pricing-pay%20per%20result-4158d0)

Browse active Polymarket markets or search by topic. The dataset keeps the market and event IDs, outcome labels, outcome prices, volume, liquidity, activity flags, and public market links in one row per market.

两分钟内查看首批结果:打开预填输入,运行 Actor,然后检查 Markets 数据集视图。

目录

功能

Browse active Polymarket markets or search by topic. The dataset keeps the market and event IDs, outcome labels, outcome prices, volume, liquidity, activity flags, and public market links in one row per market.

每条有效来源记录保存为一行。数据保留来源标识符,方便后续连接其他数据集。本 Actor 不进行交易、不预测结果,也不会补造来源没有返回的数值。

可收集的数据

  • ✅ Search public markets by a keyword or list active markets
  • ✅ Read outcomes and aligned outcome price arrays
  • ✅ Keep condition IDs and CLOB token IDs for downstream lookups
  • ✅ Filter browse mode by a public tag slug

适用对象

  • Prediction-market researchers comparing active questions
  • Developers collecting public market identifiers and outcome prices
  • News and finance teams tracking public event markets
  • Analysts building market discovery and monitoring workflows

数据字段

表格视图提供常用的平铺列,默认数据集保留完整结构。上游没有提供的可选字段为 null,不会被猜测或替换。

有效结果始终包含

字段类型说明可用性
marketId / conditionIdstringPolymarket 市场 ID 与链上条件 ID。始终
questionstring市场问题或结果标题。始终
outcomesarrayOutcome labels, aligned by index with outcomePrices and clobTokenIds.始终
outcomePricesarray市场报告的参考结果价格。始终
active / closed / acceptingOrdersboolean市场状态和是否接受订单。始终

上游提供时包含

字段类型说明可用性
eventId / eventTitlestringParent event identifier and title when the API provides it.有数据时
clobTokenIdsarrayCLOB token IDs aligned with the outcomes.有数据时
volume24hUsd / volumeUsdnumberReported 24-hour and total volume in USD.有数据时
liquidityUsdnumberReported market liquidity in USD.有数据时
bestBid / bestAsk / lastTradePricenumberIndicative best bid, ask and last trade fields when present.有数据时
endDate / updatedAtdate-timeMarket end and last update timestamps.有数据时
marketUrl / sourceApiUrlURL公开市场页面与市场记录链接。有数据时

使用步骤

  1. 在输入表单中保留示例,或替换为你的 ID、关键词和市场筛选条件。
  2. 将 maxItems 设为本次运行需要的最大行数;来源实际匹配数可能更少。
  3. 启动 Actor 并等待运行完成,检查默认数据集中的有效行。
  4. 打开 Markets 视图检查来源 ID 和更新时间,需要时导出 JSON 或 CSV。

Actor 不会要求第三方平台凭据。没有公开匹配结果时,运行会报告失败并写入零行,而不是伪装成成功的空结果。

输入示例

预填输入

{
"keywords": [
"bitcoin"
],
"marketIds": [],
"tagSlug": "",
"maxItems": 3
}

其他查询方式

Bitcoin outcome markets

{"keywords":["bitcoin"],"marketIds":[],"tagSlug":"","maxItems":3}

Browse active markets tagged crypto

{"keywords":[],"marketIds":[],"tagSlug":"crypto","maxItems":10}

Fetch one Gamma market by ID

{"keywords":[],"marketIds":["4908363"],"tagSlug":"","maxItems":1}

所有输入字段都有说明和预填值。可选数组可以留空;Actor 会在发出请求前限制数组和结果上限。不要将密钥放入输入。

实时输出示例

下方记录来自 2026-09-29 的实时数据运行。数值会随来源更新;样例用于说明字段结构,不保证是当前报价。

{
"marketId": "4908363",
"eventId": "1074371",
"eventTitle": "Valorant: G2 Esports vs Paper Rex (BO3) - VCT Champions Group C",
"question": "Valorant: G2 Esports vs Paper Rex (BO3) - VCT Champions Group C",
"slug": "val-g21-pr1-2026-09-29",
"outcomes": [
"G2 Esports",
"Paper Rex"
],
"outcomePrices": [
0.535,
0.465
],
"volume24hUsd": 857363.0143980006,
"volumeUsd": 996356.0045279997,
"liquidityUsd": 41742.7704,
"active": true,
"closed": false,
"acceptingOrders": true,
"endDate": "2026-09-29T15:00:00Z",
"marketUrl": "https://polymarket.com/event/val-g21-pr1-2026-09-29",
"sourceApiUrl": "https://gamma-api.polymarket.com/markets/4908363"
}

限制与数据质量

Keyword search reads the public Gamma search endpoint and flattens its event markets. Browse mode returns active markets sorted by reported 24-hour volume; tagSlug applies only to browse mode. Quotes and volumes change quickly. Gamma values are discovery data, not executable CLOB quotes.

Actor 保留来源标识符和来源数值。来源返回数字 0 时,结果仍为 0;来源缺少字段时,规范化的可选字段为 null。无效 ID 不会作为市场数据行保存。

价格

每条有效市场记录 $0.00080,1,000 条记录 $0.80。Apify 平台使用费用单独计算。

只有写入默认数据集的有效行会产生按结果计费事件。无效输入、空结果和无行失败不会计入结果事件。Apify 平台运行资源费用可能按你的计划另行收取。大批量 API 运行建议设置 maxTotalChargeUsd。

使用技巧

  • Use a keyword when you know the subject but not the market ID.
  • Use marketIds for exact records and keep conditionId distinct from clobTokenIds.
  • Read outcomes and outcomePrices by array index; each price belongs to the outcome at the same index.
  • Check active, closed and acceptingOrders before treating a market as currently tradeable.

做定期监控时,固定使用规范 ID 或 ticker,并保存更新时间。跨链或跨市场比较时,不要只依赖显示名称。

MCP 与 API

将支持 MCP 的客户端连接到 Apify 托管 MCP 服务 mcp.apify.com,完成 Apify 授权后即可搜索并运行 Actor、读取数据集。MCP 权限沿用 Apify 账户权限。

脚本可通过 Apify API 调用 Actor。请将 API token 保存在本地环境变量中。

curl -X POST "https://api.apify.com/v2/acts/myagizm~polymarket-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": ["bitcoin"], "maxItems": 3}'

异步运行使用 /runs 接口;完成后通过 defaultDatasetId 读取数据集:

curl -X POST "https://api.apify.com/v2/acts/myagizm~polymarket-scraper/runs?token=$APIFY_TOKEN"
curl "https://api.apify.com/v2/datasets/$DATASET_ID/items?clean=true&format=json&token=$APIFY_TOKEN"

不要把 token 放入 Actor 输入、数据集或 issue。

常见问题

一条结果代表什么?

一行数据对应一个规范化的公开记录:加密货币、DEX 交易对、Polymarket 市场或 Kalshi 市场。状态消息、失败查询和没有有效结果的运行不会生成按条计费的数据行。

这是数据平台的官方产品吗?

不是。这是一个独立的 Apify Actor,读取公开市场数据。CoinGecko、DexScreener、Polymarket 和 Kalshi 保留其名称、网站和数据的所有权。

不需要提供第三方平台的密钥、登录信息、Cookie 或浏览器会话。运行 Actor、查看数据集仍需要 Apify 账户。

数据有多新?

Actor 在运行时请求公开接口。上游响应、保存数据行和稍后导出的时刻可能不同。每行是带更新时间的快照,不是实时行情流。

会返回历史价格吗?

不会。本 Actor 返回所支持接口提供的公开市场快照,不会生成历史价格、K 线或逐笔订单簿。

为什么有些字段为 null 或 0?

上游并非对每条记录都提供所有字段。来源明确给出 0 时会保留 0;没有可用数据时为 null。README 字段表区分必填输出和可选字段。

为什么一个搜索词会返回多行?

同一关键词可能匹配多种币、交易对、事件或结果市场。Actor 按来源记录 ID 去重,并在规范化后应用 maxItems 上限。

输入无效时会怎样?

Actor 不会伪造市场行。如果没有有效记录,运行会返回简短失败信息,并且不写入数据集行,因此不会产生按结果计费。

输入格式正确但仍然没有结果,为什么?

文本可能有效,但在当前接口或状态筛选下没有公开匹配项。请尝试来源平台的规范 ID 或 ticker,并检查市场状态。

maxItems 控制什么?

maxItems 是一次运行最多写入的数据行数,不保证上游一定有这么多匹配记录。

为什么价格可能和交易页面不同?

Actor 读取公开数据接口。页面可能刷新时间不同、筛选不同,或显示实时订单簿。结果是参考快照,不是可执行的交易报价。

Actor 会下单吗?

不会。它只读取公开市场数据并写入默认数据集,不连接钱包、不提交订单、不转移资金,也不管理持仓。

可以导出数据吗?

可以。Apify 数据集支持 JSON、CSV、Excel、XML 等格式。数据集视图提供常用平铺字段,默认数据集保留完整结构。

可以定时运行吗?

可以。在 Apify Console 创建计划任务或调用 API。轮询间隔应符合上游更新节奏;更频繁地请求不会让缓存数据更实时。

可以从代码调用吗?

可以。使用自己的 Apify API token 发送 JSON 输入,并读取运行的默认数据集。README 提供同步运行、异步运行和读取数据集的示例。

AI agent 可以通过 MCP 调用吗?

可以。将 MCP 客户端连接至 Apify 托管 MCP 服务,并通过 Apify 完成授权,再从 Store 或 Actor 工具列表中调用本 Actor。权限来自你的 Apify 账户。

计费方式是什么?

Actor 使用 PAY_PER_EVENT,只对写入默认数据集的有效结果行收费。运行平台资源费用可能按你的 Apify 计划另行计算;大批量运行前请查看运行与价格面板。

为什么有最低运行预算?

PPE 运行可能显示最低消费上限,即使单行价格很低。该上限是运行预算限制,不是额外的每行费用。API 调用可通过 maxTotalChargeUsd 设置硬上限。

一次可以提交多个输入吗?

可以,但需遵守输入数组上限。建议先用较小的 maxItems 检查字段,再根据上游响应和预算提高上限。

超时或上游临时错误后该怎么办?

稍后使用相同输入和合理的 maxItems 重试。反复重试无法消除服务故障,即使没有结果也可能消耗平台运行时间。

结果属于投资建议吗?

不属于。数据可用于研究、监控和软件工作流,不建议买入或卖出,也不保证价格、成交量或概率保持不变。

会访问私人或受限制的数据吗?

不会。Actor 使用无需认证的公开市场接口,不绕过登录、付费墙、私人账户或访问控制。

怎样报告字段错误或上游变更?

请在 Actor 的 Issues 页面提供输入结构、大致运行时间、run ID 和有问题的字段。不要在 issue 中粘贴 Apify API token 或其他凭据。

可以在商业仪表板中使用数据吗?

可以按 Apify 条款和数据提供方条款使用输出。具体用途的权利与义务由使用者自行确认。

为什么会有多个标题相似的市场行?

一个预测事件可以包含多个结果市场;一个代币也可以在多条链或多个交易对中交易。记录 ID 和合约、市场标识符用于区分这些行。

所有字段都保证有值吗?

不保证。上游提供的可选字段会保留;来源缺失时为 null。只有“始终返回”部分列出的必需字段用于判断结果行是否有效。

空数据集是否说明资产不存在?

不一定。输入可能与接口不匹配、记录不在所选状态,或上游发生临时故障。请先检查输入格式和运行说明。

样例数据是否保证报价有效?

不保证。样例只展示一次真实响应的输出结构,不构成报价承诺、交易要约或未来可用性的保证。

可以只输入 ticker 而不输入 ID 吗?

请按来源使用对应输入。CoinGecko 的 queries 接受名称或关键词,coinIds 需要规范 CoinGecko ID;Kalshi 精确查询使用 market ticker;Polymarket marketIds 是 Gamma 数字 ID。它们不能互换。

为什么默认输入只取少量结果?

预填输入故意设置得较小,便于先检查真实记录和价格字段,再提高 maxItems。小批量运行也更容易发现币种 ID、链地址、series ticker 或查询词是否写错。

可以保留完整的嵌套数据吗?

可以。表格视图展示常用平铺列,默认数据集保留完整规范化 JSON 行,包括来源提供的数组和嵌套对象。

Actor 会改写来源数值吗?

不会。Actor 会规范字段名和数字类型,不会计算虚构价格或预测结果。直接来自来源的字段会由 sourceType 和来源 URL 标识。

如果上游接口改了响应会怎样?

Actor 会在保存前检查必需业务字段。若必需字段消失,运行不会悄悄保存空的成功结果。请在 Issues 页面提供 run ID 和发生变化的字段,以便对照新响应检查映射。

可以输入其他服务的 API token 吗?

该输入不接受也不需要第三方 token。不要把密钥粘贴到输入中。Actor 使用公开接口,并把结果写入你的 Apify 数据集。

市场价格保证可以成交吗?

不保证。公开市场快照可能延迟、缓存或不完整,与交易所订单簿不同。它不是订单、成交价保证或投资建议。

可以筛选或转换导出数据吗?

可以。使用数据集视图中的顶层字段,在 Apify 界面筛选或下载 JSON/CSV。也可在下游转换输出,同时保留来源记录标识符。

如何处理重复记录?

核心会在一次运行内按来源标识符去重。不同运行是独立快照,同一个仍然存在的市场或交易对可能再次出现。

事件和市场有什么区别?

事件聚合相关结果;市场是单独的问题或交易对记录。来源响应提供时,Actor 会同时保留事件与市场标识符。

结果价格和买卖报价有什么区别?

结果价格是来源展示的结果概率类数值;买价和卖价是独立报价字段。不要将它们视为相同,也不要从其他字段推导缺失报价。

可以一次请求所有市场吗?

Actor 对 maxItems 和请求数设有上限。需要更广覆盖时,可使用 series、tag 或多个小型计划运行,而不要假设单页就是完整市场目录。

会返回已关闭或已结算市场吗?

默认状态筛选主要面向开放市场。Kalshi 在支持时可修改 status;Polymarket 搜索/浏览侧重 active 记录。按 ID 查询可能返回已关闭记录,输出包含对应状态标记。

这能替代来源平台的 API 吗?

这是方便的 Apify 接口和数据集流程,不承诺更广覆盖,也不替代平台文档。需要核验记录时,请使用每行的来源标识符和公开 API URL。

无结果不计费是什么意思?

PPE 按成功写入数据集的结果行计费。输入或上游查询没有有效记录时,桥接层会在写入前失败。因此无行的无效控制不会产生默认数据集 item 事件。

相关搜索

Polymarket 比特币预测市场 · Polymarket 加密市场数据 · 预测市场赔率查询 · 比特币结果价格数据 · Polymarket 活跃市场 API · 预测市场成交量和流动性 · Polymarket outcome 价格 · 事件市场 ID 和 condition ID · CLOB token ID 数据集 · 加密货币预测市场搜索 · 选举预测市场数据 · 体育预测市场赔率 · 预测市场分析 CSV · 公开市场概率快照 · Polymarket API 数据抓取

免责声明

本 Actor 是独立的数据工具,与数据来源平台没有隶属或背书关系。输出仅供参考,可能延迟、不完整、被更正或暂时不可用,不构成投资、法律、税务或财务建议。你需要自行确认数据使用适用的条款和法律。

资源

运行说明

搜索词和直接标识符怎样选择?

已知稳定标识符时优先使用它。查询 Polymarket public market and outcome data 时,关键词适合发现记录,来源 ID 或 ticker 更适合可重复查询。每个输入选项的格式见表单说明。

首次运行适合取多少行?

预填输入使用较小的 maxItems。先用该值检查实时 Polymarket public market and outcome data 字段,再确认数据和费用符合工作流后提高上限。

哪些字段适合作为连接键?

使用来源标识符字段,不要只用显示标题。名称和标题可能变化;ID、ticker、合约地址或 condition ID 用于标识底层记录。

可以持续运行吗?

可以在 Apify 中安排重复运行,但每次运行都是单独快照。间隔应符合来源更新频率和监控需求;更快轮询不会让上游数据自动变新。

需要未列出的字段怎么办?

先检查默认数据集完整行,并确认所选记录的来源是否返回该字段。如果公开接口稳定提供且字段对工作流很重要,请在 issue 中附上 run ID 和来源记录标识符。

失败查询怎样处理?

失败查询不会变成伪造数据行。Actor 在写入前检查必需的 Polymarket 市场 字段;没有有效行时运行失败,不产生结果行费用。

如何比较两个快照?

按来源标识符比较,并保留运行时间。价格和成交量会变化,因此值发生变化可能是市场变动,而非解析错误。

这会返回完整目录吗?

单次请求不保证覆盖来源平台完整目录。Actor 用有界分页、筛选器和 maxItems 控制运行规模。覆盖范围请以来源平台目录文档为准。

可以与同事共享数据集吗?

可以通过 Apify 数据集权限共享,或导出文件。导出内容是特定时刻的快照,建议保留来源记录标识符。

source URL 有什么用途?

Actor 能构造或核验时会提供公开记录/API 链接,便于检查。链接不保证永久可用,也不保证之后页面仍显示相同数据。

HTTP 成功为什么仍可能没有有效行?

HTTP 成功只代表收到响应。Actor 还会检查必需业务字段和类型。挑战页、无关对象或空载荷都不是有效的 Polymarket 市场 记录。

可以在不同运行中更改结果上限吗?

可以,maxItems 是运行输入。较小上限减少保存量;较大上限仍受输入 schema 和上游请求限制约束。

Errors & billing

Input errors finish with status SUCCEEDED, no results and no charge; see the OUTPUT record for the reason.

错误与计费

输入错误会以 SUCCEEDED 状态结束,不产生结果且不收费;原因请查看 OUTPUT 记录。