> **For coding agents and LLMs:** This is one page from the Social Fetch docs (markdown export). For curated orientation and workflow guidance, start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for agent onboarding and crawl rules, use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for the full endpoint list with links to pages like this one, use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt); for one platform's parameters and curls, use [`/llms-{platform}.txt`](https://www.socialfetch.dev/llms-tiktok.txt); use [`/llms.json`](https://www.socialfetch.dev/llms.json) when you need structured JSON for tool registration.

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/docs/api/v1/polymarket/markets/marketidslugorconditionid/get>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/docs/api/v1/polymarket/markets/marketidslugorconditionid/get.mdx>

## API base URL and authentication

- **API origin (from OpenAPI `servers`):** `https://api.socialfetch.dev`
- **Authentication:** send `x-api-key: sfk_...` on `/v1/**` and `/v2/**` routes unless the operation is explicitly anonymous (check OpenAPI `security`, the [API reference hub](https://www.socialfetch.dev/docs/api.mdx), [`/llms.txt`](https://www.socialfetch.dev/llms.txt), or [`/llms.json`](https://www.socialfetch.dev/llms.json) for each route).
- **OpenAPI JSON:** <https://www.socialfetch.dev/openapi.json>

## Recommended docs entrypoints (this site)

- [Documentation overview](https://www.socialfetch.dev/docs.mdx) — top-level orientation (markdown).
- [Quickstart](https://www.socialfetch.dev/docs/quickstart.mdx) — authenticate with `x-api-key`, validate auth with `whoami`, and understand the JSON envelope.
- [SDK](https://www.socialfetch.dev/docs/sdk.mdx) — official TypeScript SDK guide, including `SocialFetchClient`, `Result`, and `unwrap()`.
- [Capability matrix](https://www.socialfetch.dev/docs/capability-matrix.mdx) — every operation with identifiers, pagination, outcomes, media download, credits, and its SDK method. Generated from OpenAPI, so use it for route selection instead of scanning individual pages.
- [Recipes](https://www.socialfetch.dev/docs/recipes.mdx) — copyable workflows (brand monitoring, transcripts, Ad Library, creator scoring, Reddit research) with credit callouts and SDK examples.
- [Integrations](https://www.socialfetch.dev/docs/integrations.mdx) — MCP for AI clients, n8n verified node, Apify Store Actors, Make custom app, SDK, and REST API connection paths.
- [MCP product page](https://www.socialfetch.dev/mcp) — hosted MCP overview, OAuth, Skills install.
- [MCP integration](https://www.socialfetch.dev/docs/integrations/mcp.mdx) — hosted `/mcp` server, OAuth, Cursor/VS Code/Claude install snippets, 910 endpoint tools, plus docs_search/docs_read for implementation help.
- [n8n integration](https://www.socialfetch.dev/docs/integrations/n8n.mdx) — install `n8n-nodes-socialfetch`, credentials, and workflow examples.
- [Apify integration](https://www.socialfetch.dev/docs/integrations/apify.mdx) — Store Actors under @social-fetch, PPE billing, dataset export, and quick start.
- [Make integration](https://www.socialfetch.dev/docs/integrations/make.mdx) — custom app modules for Make scenarios, API key credentials, and module catalog.
- [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt) — every documented operation with a direct link to that route's agent-readable markdown page (prefer this over parsing OpenAPI).
- [`/llms-{platform}.txt`](https://www.socialfetch.dev/llms-tiktok.txt) — per-platform endpoint files generated from OpenAPI (parameters, credits, curls).
- [`/agents.txt`](https://www.socialfetch.dev/agents.txt) — agent crawl/onboarding file with capabilities, auth rules, and allowlist.
- [`/llms.json`](https://www.socialfetch.dev/llms.json) — structured machine-readable operation inventory with parameter names, pagination, outcomes, credits, and SDK mapping.
- [API reference hub](https://www.socialfetch.dev/docs/api.mdx) — human-friendly index of operations with links into generated pages.
- [Errors](https://www.socialfetch.dev/docs/errors.mdx) — shared error envelope and HTTP status guidance.
- [Credits](https://www.socialfetch.dev/docs/credits.mdx) — metering, `402`, and planning batch jobs.
- Outcome semantics such as `found`, `not_found`, and `private` are documented in [Errors](https://www.socialfetch.dev/docs/errors.mdx) and on operation pages when present in the OpenAPI contract.

## Markdown docs convention

- Every docs page has a markdown twin: append **`.mdx`** to the docs pathname (for example `/docs/quickstart` → `/docs/quickstart.mdx`).
- Agents that send `Accept: text/markdown` on `/docs/**` HTML URLs may receive markdown directly (same URL, `Vary: Accept`).
- Published blog posts use the same convention: `/blog/{slug}` → `/blog/{slug}.mdx`, or `Accept: text/markdown` on the HTML URL (`Vary: Accept`).

---
# Get Polymarket market (https://www.socialfetch.dev/docs/api/v1/polymarket/markets/marketidslugorconditionid/get)

## Summary

Get a Polymarket market's prices, volume, rules and resolution state.

**Tags:** `Polymarket`

## HTTP

- **Method:** GET
- **Path:** `/v1/polymarket/markets/{marketIdSlugOrConditionId}`
- **Base URL:** `https://api.socialfetch.dev`

## Capability summary

- **SDK mapping:** `client.polymarket.getMarket({ marketIdSlugOrConditionId: "0x0f49db97f71c68b1e42a6d16e3de93d85dbf7d4148e3f018eb79e88554be9f75" })`
- **Accepted identifiers:** `marketIdSlugOrConditionId` (path)
- **Pagination:** none
- **Business outcome field:** `data.lookupStatus` with values `found`, `not_found`

## Credits

- **Base:** 1 credit per successful lookup.
- **Maximum on success (200):** 1 credit.
- **Failed requests (`lookup_failed`, `503`):** not charged.
- **Authoritative field:** `meta.creditsCharged`.

## Authentication

- **`x-api-key`**: API key (`sfk_...`)

## Parameters

### `marketIdSlugOrConditionId` (path)

- **Required:** yes
- **Constraints:** type `string`; minLength: 1; maxLength: 300; pattern: `^(?:0x[0-9a-fA-F]{64}|[A-Za-z0-9_]+(?:-[A-Za-z0-9_]+)*)$`
- **Description:** Market id (digits), slug, or condition id (0x and 64 hex digits).

### `locale` (query)

- **Required:** no
- **Constraints:** type `string`; enum: es, fr, de, ja, zh, ko, ru, hi, th, tr, vi, pt, it, pl, id, bn, uk, zh-hant, tl
- **Description:** Translate titles and market questions into this language. Descriptions stay in English.

## Responses (status codes)

- **200**: Polymarket market.
- **400**: Invalid request
- **401**: Missing or invalid API key
- **402**: Insufficient credits
- **500**: Unexpected or billing error
- **502**: Lookup could not be completed.
- **503**: Service temporarily unavailable; safe to retry with backoff.

## Response body (200)

Polymarket market.

### Field outline

- **data** (required) — type `object`. Endpoint-specific response payload.
  - **lookupStatus** (required) — type `string`; enum: found, not_found. `not_found` when no market has this id, slug or condition id.
  - **market** (required) — type `object`; nullable. A yes/no (or multi-outcome) market with its prices and rules.
    - **id** (required) — type `string`. Market id.
    - **slug** (required) — type `string`. Market slug.
    - **question** (required) — type `string`. The question the market asks.
    - **description** (required) — type `string`; nullable. Full resolution rules.
    - **conditionId** (required) — type `string`; nullable. Condition id (0x and 64 hex digits). Null for a market without an order book.
    - **eventId** (required) — type `string`; nullable. Id of the event the market belongs to.
    - **eventSlug** (required) — type `string`; nullable. Slug of the event the market belongs to.
    - **status** (required) — type `string`; enum: open, closed, inactive. Polymarket's own state: `open`, `closed` or `inactive`. An open event or market can carry an end date in the past.
    - **archived** (required) — type `boolean`. Whether Polymarket archived the market.
    - **groupTitle** (required) — type `string`; nullable. Label inside a multi-market event, for example a candidate name.
    - **image** (required) — type `string`; nullable. Image URL.
    - **icon** (required) — type `string`; nullable. Icon URL.
    - **outcomes** (required) — type `array`. The outcomes, in order, with their current prices.
      - _items:_
    - **winningOutcome** (required) — type `string`; nullable. Name of the outcome that won, once the market has closed with a clear winner.
    - **lastTradePrice** (required) — type `number`; nullable. Price of the last trade.
    - **bestBid** (required) — type `number`; nullable. Highest buy price on the book.
    - **bestAsk** (required) — type `number`; nullable. Lowest sell price on the book.
    - **spread** (required) — type `number`; nullable. Gap between best ask and best bid.
    - **priceChange** (required) — type `object`. Change of the leading outcome price over several windows.
      - **hour** (required) — type `number`; nullable. Price change over the last hour (probability points).
      - **day** (required) — type `number`; nullable. Price change over the last 24 hours.
      - **week** (required) — type `number`; nullable. Price change over the last 7 days.
      - **month** (required) — type `number`; nullable. Price change over the last 30 days.
      - **year** (required) — type `number`; nullable. Price change over the last 365 days.
    - **volume** (required) — type `object`. Traded volume in US dollars over several windows.
      - **total** (required). All-time traded volume in US dollars. A number, or an exact decimal string when the value has more digits than a number can hold.
      - **day** (required). Volume in the last 24 hours. A number, or an exact decimal string when the value has more digits than a number can hold.
      - **week** (required). Volume in the last 7 days. A number, or an exact decimal string when the value has more digits than a number can hold.
      - **month** (required). Volume in the last 30 days. A number, or an exact decimal string when the value has more digits than a number can hold.
      - **year** (required). Volume in the last 365 days. A number, or an exact decimal string when the value has more digits than a number can hold.
    - **liquidity** (required). Current order book liquidity in US dollars. A number, or an exact decimal string when the value has more digits than a number can hold.
    - **startsAt** (required) — type `string`; nullable. When the market opens (ISO-8601, UTC).
    - **endsAt** (required) — type `string`; nullable. Scheduled end (ISO-8601, UTC).
    - **closedAt** (required) — type `string`; nullable. When the market closed (ISO-8601, UTC).
    - **createdAt** (required) — type `string`; nullable. When the market was created (ISO-8601, UTC).
    - **updatedAt** (required) — type `string`; nullable. When the market was last changed (ISO-8601, UTC).
    - **resolution** (required) — type `object`. How and where the market resolves.
      - **source** (required) — type `string`; nullable. Where the outcome is decided, as written in the rules.
      - **umaStatus** (required) — type `string`; nullable. Oracle state: `proposed`, `disputed`, `resolved` and so on. Null before any proposal.
      - **resolvedBy** (required) — type `string`; nullable. Address of the resolver contract.
    - **negRisk** (required) — type `boolean`; nullable. Whether the market is part of a winner-takes-all group whose prices sum to about 100 percent.
    - **negRiskMarketId** (required) — type `string`; nullable. Id of the winner-takes-all group.
    - **minOrderSize** (required) — type `number`; nullable. Smallest order size in shares.
    - **tickSize** (required) — type `number`; nullable. Smallest price step.
    - **fees** (required) — type `object`. Trading fees on a market.
      - **enabled** (required) — type `boolean`; nullable. Whether trading fees apply.
      - **type** (required) — type `string`; nullable. Fee family, for example `politics_fees`.
      - **makerBaseFee** (required) — type `number`; nullable. Base fee for makers, in basis points.
      - **takerBaseFee** (required) — type `number`; nullable. Base fee for takers, in basis points.
      - **makerRebatesFeeShareBps** (required) — type `number`; nullable. Share of fees paid back to makers, in basis points.
      - **schedule** (required) — type `object`; nullable. How trading fees are worked out on a market.
    - **cryptoMarketConfig** (required) — type `object`; nullable. Settings of a short-lived up-or-down market on a crypto or commodity price.
      - **id** (required) — type `string`; nullable. Configuration id, for example `xau-15m`.
      - **asset** (required) — type `string`; nullable. Asset the market tracks, for example `btc` or `xau`.
      - **duration** (required) — type `string`; nullable. Length of each window, for example `15m`.
      - **twapEnabled** (required) — type `boolean`; nullable. Whether the settlement price is a time-weighted average.
      - **twapLookbackSeconds** (required) — type `integer`; nullable. Seconds the average looks back.
    - **acceptingOrders** (required) — type `boolean`; nullable. Whether the order book accepts orders.
    - **isUserCreated** (required) — type `boolean`. Whether a user rather than Polymarket created it.
    - **sportsMarketType** (required) — type `string`; nullable. Kind of sports market, for example `moneyline`. Null for other markets.
    - **line** (required) — type `number`; nullable. Spread or total line for a sports market.
    - **gameStartTime** (required) — type `string`; nullable. Kickoff of the game a sports market covers (ISO-8601, UTC).
    - **rewards** (required) — type `object`; nullable. Liquidity rewards offered on a market.
      - **dailyRate** (required) — type `number`; nullable. Liquidity rewards paid per day, in US dollars.
      - **minSize** (required) — type `number`; nullable. Smallest order size that earns rewards, in shares.
      - **maxSpread** (required) — type `number`; nullable. Widest spread from the midpoint that earns rewards.
- **meta** (required) — type `object`. Metadata describing the request and billing outcome.
  - **requestId** (required) — type `string`; minLength: 1. Unique request identifier for tracing this API call.
  - **creditsCharged** (required) — type `integer`; minimum: 0. Credits charged for this request.
  - **version** (required) — type `string`; enum: v1. Public API version that served the response.

### Example JSON (found)

```json
{
  "data": {
    "lookupStatus": "found",
    "market": {
      "id": "559652",
      "slug": "will-gavin-newsom-win-the-2028-democratic-presidential-nomination-568",
      "question": "Will Gavin Newsom win the 2028 Democratic presidential nomination?",
      "description": "This market will resolve to “Yes” if the named individual wins and accepts the 2028 nomination of the Democratic Party for U.S. president. Otherwise, this market will resolve to “No”.\n\nThe resolution source for this market will be a consensus of official Democratic Party sources.\n\nAny replacement of the democratic nom…",
      "conditionId": "0x0f49db97f71c68b1e42a6d16e3de93d85dbf7d4148e3f018eb79e88554be9f75",
      "eventId": "30829",
      "eventSlug": "democratic-presidential-nominee-2028",
      "status": "open",
      "archived": false,
      "groupTitle": "Gavin Newsom",
      "image": "https://polymarket-upload.s3.us-east-2.amazonaws.com/will-gavin-newsom-win-the-2028-us-presidential-election-x9lPL7_gXn--.png",
      "icon": "https://polymarket-upload.s3.us-east-2.amazonaws.com/will-gavin-newsom-win-the-2028-us-presidential-election-x9lPL7_gXn--.png",
      "outcomes": [
        {
          "name": "Yes",
          "tokenId": "54533043819946592547517511176940999955633860128497669742211153063842200957669",
          "price": 0.1485
        }
      ],
      "winningOutcome": null,
      "lastTradePrice": 0.149,
      "bestBid": 0.148,
      "bestAsk": 0.149,
      "spread": 0.001,
      "priceChange": {
        "hour": null,
        "day": -0.0065,
        "week": -0.0195,
        "month": -0.012,
        "year": -0.2265
      },
      "volume": {
        "total": 28147074.624752,
        "day": 12531.922848,
        "week": 47542.28326799999,
        "month": 280383.658582,
        "year": 25204343.37186701
      },
      "liquidity": 584950.22506,
      "startsAt": "2025-07-11T18:35:56.805Z",
      "endsAt": "2028-11-08T04:59:00.000Z",
      "closedAt": null,
      "createdAt": "2025-07-03T20:36:58.884Z",
      "updatedAt": "2026-11-04T12:05:58.687Z",
      "resolution": {
        "source": null,
        "umaStatus": null,
        "resolvedBy": "0x2F5e3684cb1F318ec51b00Edba38d79Ac2c0aA9d"
      },
      "negRisk": true,
      "negRiskMarketId": "0x2c3d7e0eee6f058be3006baabf0d54a07da254ba47fe6e3e095e7990c7814700",
      "minOrderSize": 5,
      "tickSize": 0.001,
      "fees": {
        "enabled": true,
        "type": "politics_fees",
        "makerBaseFee": 1000,
        "takerBaseFee": 1000,
        "makerRebatesFeeShareBps": null,
        "schedule": {
          "rate": 0.04,
          "exponent": 1,
          "takerOnly": true,
          "rebateRate": 0.25
        }
      },
      "cryptoMarketConfig": null,
      "acceptingOrders": true,
      "isUserCreated": false,
      "sportsMarketType": null,
      "line": null,
      "gameStartTime": null,
      "rewards": {
        "dailyRate": 400,
        "minSize": 200,
        "maxSpread": 5.5
      }
    }
  },
  "meta": {
    "requestId": "req_e2a5f3e8-688f-4a3c-9c55-69cff3d201d7",
    "creditsCharged": 1,
    "version": "v1"
  }
}
```

### Machine-readable error codes

When an error JSON body is returned, it may include one of these `error.code` values (derived from the OpenAPI schemas for this operation; additional codes may exist at runtime):

- `bad_request`

## Error handling & retries

Interpret HTTP status codes using the descriptions below. Do not assume a JSON body unless the OpenAPI schema defines one for that status.

- **400**: Invalid request **Retry:** Fix the request; retrying the same invalid payload will not help.
- **401**: Missing or invalid API key **Retry:** Fix the API key first; retrying without changes will not help.
- **402**: Insufficient credits **Retry:** Do not retry without resolving billing/credits (retrying the same request will not help).
- **500**: Unexpected or billing error
- **502**: Lookup could not be completed. **Retry:** May be transient; a few retries with backoff are reasonable.
- **503**: Service temporarily unavailable; safe to retry with backoff. **Retry:** Usually safe to retry with exponential backoff and jitter.

### Suggested client defaults

- Send the API key using the `x-api-key` header on every request.
- On `503` (and sometimes `502`), retry with backoff; cap retries and surface a clear error to the user.
- On `402`, surface an actionable billing message rather than blind retries.

## Examples

### TypeScript SDK

```typescript
import { SocialFetchClient } from "@socialfetch/sdk";

const client = new SocialFetchClient({
  apiKey: process.env.SOCIALFETCH_API_KEY!,
});

const result = await client.polymarket.getMarket({
  marketIdSlugOrConditionId: "0x0f49db97f71c68b1e42a6d16e3de93d85dbf7d4148e3f018eb79e88554be9f75",
});

if (!result.ok) {
  console.error(result.error);
} else {
  console.log(result.value.data);
}
```

### Node.js

```javascript
const response = await fetch(
  "https://api.socialfetch.dev/v1/polymarket/markets/0x0f49db97f71c68b1e42a6d16e3de93d85dbf7d4148e3f018eb79e88554be9f75",
  {
    headers: {
      "x-api-key": "YOUR_API_KEY"
    }
  }
);

const data = await response.json();
console.log(data);
```

### cURL

```bash
curl "https://api.socialfetch.dev/v1/polymarket/markets/0x0f49db97f71c68b1e42a6d16e3de93d85dbf7d4148e3f018eb79e88554be9f75" \
  -H "x-api-key: YOUR_API_KEY"
```

### Python

```python
import requests

response = requests.get(
    "https://api.socialfetch.dev/v1/polymarket/markets/0x0f49db97f71c68b1e42a6d16e3de93d85dbf7d4148e3f018eb79e88554be9f75",
    headers={"x-api-key": "YOUR_API_KEY"},
)
data = response.json()
print(data)
```