Monocrawl Polymarket API
The Polymarket API from Monocrawl — 1 operation(s) for polymarket.
The Polymarket API from Monocrawl — 1 operation(s) for polymarket.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/monocrawl:monocrawl-polymarket-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Monocrawl Polymarket API
version: 0.1.0
description: One key, one envelope, one credit meter across social, search, commerce and web data.
contact:
name: Monocrawl support
url: https://www.monocrawl.com/contact
termsOfService: https://www.monocrawl.com/legal/terms-and-conditions
servers:
- url: https://www.monocrawl.com
security:
- ApiKeyHeader: []
tags:
- name: Polymarket
paths:
/v1/polymarket/research:
get:
operationId: polymarket_research
tags:
- Polymarket
summary: Polymarket market research
description: 'Search Polymarket for active prediction markets on a topic: question, outcomes with live prices, volume, liquidity, and end date, ranked by volume. Costs 5 credits per successful live response.'
parameters:
- name: query
in: query
required: true
schema:
type: string
example: bitcoin
description: Topic to research
- name: limit
in: query
required: false
schema:
type: string
example: '10'
description: Max markets, 1-25 (default 10)
- name: dry_run
in: query
required: false
schema:
type: string
enum:
- '1'
- '0'
- 'true'
- 'false'
example: '1'
description: 'Read a zero-credit estimate without fetching sources, running AI, or reserving credits. Cache status is a snapshot, not a guarantee at execution. Accepted values: 1, 0, true, false. Case, spaces, hyphens and underscores are interchangeable.'
- name: X-Max-Credits
in: header
required: false
schema:
type: integer
minimum: 0
maximum: 9007199254740991
example: 5
description: Optional credit reservation ceiling for this individual request. Send a non-negative integer in decimal digits. Live execution checks the required reservation after resolving free cache hits or buffered continuation, before charging or calling a supplier. A higher reservation returns HTTP 422 INVALID_PARAMETERS with reason max_credits_exceeded and charges nothing. Invalid header values also return 422. Zero permits only a zero-credit reservation; omitting the header uses normal pricing. dry_run remains a free preview. This does not cap later requests, batches or scheduled runs.
security:
- ApiKeyHeader: []
- BearerKey: []
responses:
'200':
description: 'The common success envelope; `data` is endpoint-specific. Many lists use items/count/cursor; bundles use named collections and their documented continuation metadata. HTTP 200 can contain a partial bundle: inspect complete, partial and legs where supplied.'
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/Success'
- type: object
properties:
data:
$schema: https://json-schema.org/draft/2020-12/schema
$id: https://www.monocrawl.com/schemas/polymarket/research.json
title: polymarket/research data fields
description: Optional data supplied by this operation. Null means unknown.
type: object
properties:
count:
description: Number of records in this response, not lifetime or total matches.
type:
- number
- 'null'
items:
description: Returned records. Source coverage and completeness vary.
type:
- array
items:
description: Optional record supplied by this operation. Null means unknown.
type: object
properties:
active:
description: Optional active supplied by this operation. Null means unknown.
type:
- boolean
- 'null'
closed:
description: Optional closed supplied by this operation. Null means unknown.
type:
- boolean
- 'null'
end_date:
description: Optional end date supplied by this operation. Null means unknown.
type:
- string
- 'null'
event:
description: Optional event supplied by this operation. Null means unknown.
type:
- object
- 'null'
properties:
id:
description: Source identifier. Preserve the supplied type and exact value.
type:
- string
- 'null'
slug:
description: Optional slug supplied by this operation. Null means unknown.
type:
- string
- 'null'
title:
description: Source title when supplied.
type:
- string
- 'null'
additionalProperties: true
id:
description: Source identifier. Preserve the supplied type and exact value.
type:
- string
- 'null'
liquidity:
description: Optional liquidity supplied by this operation. Null means unknown.
type:
- number
- 'null'
outcomes:
description: Optional outcomes supplied by this operation. Null means unknown.
type:
- array
- 'null'
items:
description: Optional record supplied by this operation. Null means unknown.
type:
- object
- 'null'
properties:
name:
description: Outcome label supplied by the market.
type:
- string
- 'null'
price:
description: Dated outcome quote as supplied by the market; not a forecast.
type:
- number
- 'null'
additionalProperties: true
question:
description: Optional question supplied by this operation. Null means unknown.
type:
- string
- 'null'
slug:
description: Optional slug supplied by this operation. Null means unknown.
type:
- string
- 'null'
url:
description: Original source URL when supplied.
type:
- string
- 'null'
volume:
description: Optional volume supplied by this operation. Null means unknown.
type:
- number
- 'null'
volume_24h:
description: Optional volume 24h supplied by this operation. Null means unknown.
type:
- number
- 'null'
additionalProperties: true
allOf:
- anyOf:
- required:
- active
properties:
active:
description: Optional active supplied by this operation. Null means unknown.
type:
- boolean
- required:
- closed
properties:
closed:
description: Optional closed supplied by this operation. Null means unknown.
type:
- boolean
- required:
- end_date
properties:
end_date:
description: Optional end date supplied by this operation. Null means unknown.
type:
- string
minLength: 1
- required:
- event
properties:
event:
description: Optional event supplied by this operation. Null means unknown.
type:
- object
properties:
id:
description: Source identifier. Preserve the supplied type and exact value.
type:
- string
- 'null'
slug:
description: Optional slug supplied by this operation. Null means unknown.
type:
- string
- 'null'
title:
description: Source title when supplied.
type:
- string
- 'null'
additionalProperties: true
- required:
- id
properties:
id:
description: Source identifier. Preserve the supplied type and exact value.
type:
- string
minLength: 1
- required:
- liquidity
properties:
liquidity:
description: Optional liquidity supplied by this operation. Null means unknown.
type:
- number
- required:
- outcomes
properties:
outcomes:
description: Optional outcomes supplied by this operation. Null means unknown.
type:
- array
items:
description: Optional record supplied by this operation. Null means unknown.
type:
- object
- 'null'
properties:
name:
description: Outcome label supplied by the market.
type:
- string
- 'null'
price:
description: Dated outcome quote as supplied by the market; not a forecast.
type:
- number
- 'null'
additionalProperties: true
- required:
- question
properties:
question:
description: Optional question supplied by this operation. Null means unknown.
type:
- string
minLength: 1
- required:
- slug
properties:
slug:
description: Optional slug supplied by this operation. Null means unknown.
type:
- string
minLength: 1
- required:
- url
properties:
url:
description: Original source URL when supplied.
type:
- string
minLength: 1
- required:
- volume
properties:
volume:
description: Optional volume supplied by this operation. Null means unknown.
type:
- number
- required:
- volume_24h
properties:
volume_24h:
description: Optional volume 24h supplied by this operation. Null means unknown.
type:
- number
query:
description: Optional query supplied by this operation. Null means unknown.
type:
- string
- 'null'
additionalProperties: true
required:
- items
x-contract-version: '2026-09-22'
x-validation-scope: Required success payload structure; optional fields and source completeness remain separate.
examples:
- count: 0
items:
- active: false
closed: false
end_date: '2026-09-01T12:00:00Z'
event:
id: example
slug: example
title: example
id: example
liquidity: 0
outcomes:
- {}
question: example
slug: example
url: https://example.com/example
volume: 0
volume_24h: 0
query: example
default:
description: The error envelope — the same shape for every non-2xx status.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
x-credits: 5
x-production-available: true
x-capacity:
status: not_assessed
message: Capacity is workload-dependent; configured routes do not establish sustained throughput or an availability guarantee.
x-availability-scope: Structural check of the effective registered chain, production permission, adapter, configured cost and quality floor without request parameters. True is not a live-health, credential, quota, subscription-entitlement, complete-data or deployment-exposure guarantee. False means no structurally eligible candidate; null means metadata could not establish availability. Composite child capability still depends on its component routes.
x-live-proven: true
components:
schemas:
Error:
type: object
required:
- success
- error
- credits_used
- request_id
properties:
success:
const: false
error:
type: object
required:
- type
- message
- status
properties:
type:
type: string
enum:
- UNAUTHORIZED
- KEY_REVOKED
- KEY_LIMIT_EXCEEDED
- RATE_LIMITED
- INSUFFICIENT_CREDITS
- RESOURCE_NOT_FOUND
- INVALID_PARAMETERS
- TARGET_ACCESS_DENIED
- UPSTREAM_ERROR
- UPSTREAM_TIMEOUT
- FREE_CAPACITY_UNAVAILABLE
- CAPACITY_UNAVAILABLE
- ENDPOINT_NOT_FOUND
- ENDPOINT_NOT_AVAILABLE
- FAIR_USE_EXCEEDED
- INTERNAL_ERROR
message:
type: string
status:
type: integer
doc_url:
type: string
description: Deep link to the exact section of the errors guide for this type.
details:
type: object
credits_used:
type:
- integer
- 'null'
description: Confirmed net charge; null when billing is pending reconciliation. Inspect error.details.billing_status and retain request_id.
credits_remaining:
type: integer
request_id:
type: string
Success:
type: object
required:
- success
- platform
- endpoint
- data
- credits_used
- credits_remaining
- request_id
properties:
_completeness:
type: object
description: Reported response completeness, not a guarantee of complete platform history. Missing source assertions remain unknown.
properties:
state:
type: string
enum:
- complete
- partial
- unknown
scope:
type: string
inspection_limited:
type: boolean
success:
const: true
platform:
type: string
endpoint:
type: string
description: The resolved path, e.g. `/v1/github/profile`.
data:
description: Amazon responses include marketplace.country and marketplace.domain (resolved request marketplace, UK by default). X profiles preserve location, bio_link and cover_url when supplied. TikTok profiles preserve commerce_user, seller, region, location and business_category when supplied; region identifies the account region rather than personal residence. TikTok comments use platform_default selection, which can change between fetches; keep the same video and options when following cursors. Amazon review variant is readable text. Facebook profiles preserve cover_url, following and created_at when supplied; likes_count and followers are distinct and follower totals may be rounded. Endpoint-specific normalized payload, not one universal post/profile schema. Many lists use items/count/cursor; a null cursor means no usable next cursor was supplied, not proof that all history was retrieved. Check has_more and warnings where present. Social full-profile bundles use posts_cursor and posts_pagination.next_params; retain all returned next parameters. YouTube channel bundles instead use recent_videos, cursor and recent_videos_pagination. Inspect complete/partial/legs where supplied for bounded or failed components. Optional model-derived fields are labelled, not source facts.
credits_used:
type: integer
credits_remaining:
type: integer
request_id:
type: string
cached:
type: boolean
stale:
type: boolean
description: True only for an explicitly labelled, zero-credit reference snapshot served after a temporary upstream failure.
age_seconds:
type: integer
minimum: 0
description: Age of a stale snapshot since its original retrieval; not reset by outage recovery.
fetched_at:
type: string
format: date-time
description: Original retrieval time of a stale snapshot, in UTC.
synthetic:
type: boolean
description: Present and true only on the explicitly requested /sandbox surface. Synthetic responses are representative and charged 0 credits; production /v1 never returns them.
degraded:
type: boolean
description: Reserved for sandbox compatibility. Production /v1 reports upstream failure as an error and never serves a representative fallback.
securitySchemes:
ApiKeyHeader:
type: apiKey
in: header
name: x-api-key
description: Your API key (`mn_…`), from the console. The recommended style.
BearerKey:
type: http
scheme: bearer
description: The same key as a Bearer token, for clients that only expose an Authorization field. Keys are never accepted in the query string — URLs leak into logs and referrers.