> ## Documentation Index
> Fetch the complete documentation index at: https://api.polymarketanalytics.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Market 360

> Market Quality & Structure Endpoint

**Platform:** Polymarket\
**Endpoint:** `POST /v2/semantic/retrieve/parameterized`\
**Authentication:** Bearer token

## Query parameters

All requests use `agent_id` `575` (Market 360). Set filters inside `params` in the playground — all values must be strings.

| Parameter | Type | Description |
| - | - | - |
| `condition_id` | String | Market condition ID. Use `"ALL"` for all markets. |
| `min_volume_24h` | String | Minimum 24-hour trading volume. |
| `min_liquidity_percentile` | String | Minimum liquidity percentile. |
| `volume_trend` | String | `Spiking`, `Normal`, `Declining`, `Dying Interest`, `No Trades`, or `ALL`. |
| `min_top1_wallet_pct` | String | Minimum share of exposure held by the top wallet. |
| `max_unique_traders_7d` | String | Maximum unique traders in the last 7 days. |

## Example Request

```bash cURL theme={null}
curl --request POST \
  --url https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
  "agent_id": 575,
  "params": {
    "condition_id": "ALL",
    "min_volume_24h": "0",
    "min_liquidity_percentile": "0",
    "volume_trend": "ALL",
    "min_top1_wallet_pct": "0",
    "max_unique_traders_7d": "0"
  },
  "pagination": {
    "limit": 10,
    "offset": 0
  },
  "formatter_config": {
    "format_type": "raw"
  }
}'
```

```python Python theme={null}
import requests

response = requests.post(
    "https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized",
    headers={"Authorization": "Bearer YOUR_TOKEN"},
    json={
    "agent_id": 575,
    "params": {
        "condition_id": "ALL",
        "min_volume_24h": "0",
        "min_liquidity_percentile": "0",
        "volume_trend": "ALL",
        "min_top1_wallet_pct": "0",
        "max_unique_traders_7d": "0"
    },
    "pagination": {
        "limit": 10,
        "offset": 0
    },
    "formatter_config": {
        "format_type": "raw"
    }
}
)

print(response.json())
```

```javascript JavaScript theme={null}
const response = await fetch("https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_TOKEN",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "agent_id": 575,
  "params": {
    "condition_id": "ALL",
    "min_volume_24h": "0",
    "min_liquidity_percentile": "0",
    "volume_trend": "ALL",
    "min_top1_wallet_pct": "0",
    "max_unique_traders_7d": "0"
  },
  "pagination": {
    "limit": 10,
    "offset": 0
  },
  "formatter_config": {
    "format_type": "raw"
  }
})
});

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

## Example Response

```json theme={null}
{
  "timestamp": "",
  "params": {
    "condition_id": "ALL",
    "max_unique_traders_7d": "0",
    "min_liquidity_percentile": "0",
    "min_top1_wallet_pct": "0",
    "min_volume_24h": "0",
    "volume_trend": "ALL"
  },
  "pagination": {
    "limit": 200,
    "offset": 0,
    "has_more": true
  },
  "data": {
    "results": [
      {
        "condition_id": "0x24fb7c2d95c93a68018e6c4a90d88043bb67d32fd1454924cef8ebdd550228f3",
        "created_at": "2026-02-09T16:53:53.025942Z",
        "current_volume_24h": "44646247.155082",
        "current_volume_7d": "116971972.905561",
        "end_date": "2026-03-31T00:00:00Z",
        "liquidity_percentile": "100.00",
        "liquidity_risk_flag": false,
        "liquidity_tier": "Top 5%",
        "market_active": true,
        "market_closed": false,
        "net_pnl": "102441.064396",
        "no_avg_pnl": "-13.643443",
        "peak_hour_trades": 391,
        "profit_loss_ratio": "2.43",
        "question": "Will Israel launch a major ground offensive in Lebanon by March 31?",
        "slug": "will-israel-launch-a-major-ground-offensive-in-lebanon-by-march-31",
        "snapshot_time": "2026-03-25T18:00:00.010272Z",
        "squeeze_risk_flag": false,
        "top10_wallet_pct": "65.45",
        "top1_wallet_pct": "18.28",
        "top3_wallet_pct": "36.24",
        "trade_concentration_flag": false,
        "trades_per_hour_avg": "213.08",
        "unique_traders_7d": 4941,
        "updated_at": "2026-03-25T18:00:00.010272Z",
        "volume_collapse_risk_flag": false,
        "volume_ratio_24h_to_7d": "267.18",
        "volume_trend": "Spiking",
        "whale_control_flag": false,
        "winning_side": "Yes",
        "yes_avg_pnl": "44.593246"
      }
    ]
  },
  "request_id": ""
}
```


## OpenAPI

````yaml /api-reference/polymarket-market-360.openapi.json POST /api/v2/semantic/retrieve/parameterized
openapi: 3.1.0
info:
  title: Falcon API — Market 360
  version: 1.0.0
servers:
  - url: https://narrative.agent.heisenberg.so
    description: Production
security:
  - bearerAuth: []
paths:
  /api/v2/semantic/retrieve/parameterized:
    post:
      tags:
        - Polymarket
      summary: Market 360
      description: >-
        Market quality and structure insights with filters for volume,
        liquidity, and trader concentration.
      operationId: polymarketMarket360
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PolymarketMarket360Request'
            examples:
              default:
                summary: All markets with default filters
                value:
                  agent_id: 575
                  params:
                    condition_id: ALL
                    min_volume_24h: '0'
                    min_liquidity_percentile: '0'
                    volume_trend: ALL
                    min_top1_wallet_pct: '0'
                    max_unique_traders_7d: '0'
                  pagination:
                    limit: 10
                    offset: 0
                  formatter_config:
                    format_type: raw
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PolymarketMarket360Response'
        '400':
          description: Bad request — check params
        '401':
          description: Unauthorized — check your Bearer token
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl --request POST \
              --url https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized \
              --header 'Authorization: Bearer YOUR_TOKEN' \
              --header 'Content-Type: application/json' \
              --data '{
              "agent_id": 575,
              "params": {
                "condition_id": "ALL",
                "min_volume_24h": "0",
                "min_liquidity_percentile": "0",
                "volume_trend": "ALL",
                "min_top1_wallet_pct": "0",
                "max_unique_traders_7d": "0"
              },
              "pagination": { "limit": 10, "offset": 0 },
              "formatter_config": { "format_type": "raw" }
            }'
        - lang: python
          label: Python
          source: |-
            import requests

            response = requests.post(
                "https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized",
                headers={"Authorization": "Bearer YOUR_TOKEN"},
                json={
                    "agent_id": 575,
                    "params": {
                        "condition_id": "ALL",
                        "min_volume_24h": "0",
                        "min_liquidity_percentile": "0",
                        "volume_trend": "ALL",
                        "min_top1_wallet_pct": "0",
                        "max_unique_traders_7d": "0",
                    },
                    "pagination": {"limit": 10, "offset": 0},
                    "formatter_config": {"format_type": "raw"},
                },
            )

            print(response.json())
        - lang: javascript
          label: JavaScript
          source: |-
            const response = await fetch(
              "https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized",
              {
                method: "POST",
                headers: {
                  Authorization: "Bearer YOUR_TOKEN",
                  "Content-Type": "application/json",
                },
                body: JSON.stringify({
                  agent_id: 575,
                  params: {
                    condition_id: "ALL",
                    min_volume_24h: "0",
                    min_liquidity_percentile: "0",
                    volume_trend: "ALL",
                    min_top1_wallet_pct: "0",
                    max_unique_traders_7d: "0",
                  },
                  pagination: { limit: 10, offset: 0 },
                  formatter_config: { format_type: "raw" },
                }),
              }
            );

            const data = await response.json();
components:
  schemas:
    PolymarketMarket360Request:
      type: object
      required:
        - params
      properties:
        agent_id:
          type: integer
          enum:
            - 575
          default: 575
          x-default: 575
          description: Market 360 agent ID.
        params:
          $ref: '#/components/schemas/PolymarketMarket360Params'
        pagination:
          $ref: '#/components/schemas/PolymarketMarket360Pagination'
        formatter_config:
          $ref: '#/components/schemas/PolymarketMarket360FormatterConfig'
    PolymarketMarket360Response:
      type: object
      readOnly: true
      properties:
        timestamp:
          type: string
          readOnly: true
        params:
          $ref: '#/components/schemas/PolymarketMarket360ResponseParams'
        pagination:
          type: object
          readOnly: true
          properties:
            limit:
              type: integer
              readOnly: true
            offset:
              type: integer
              readOnly: true
            has_more:
              type: boolean
              readOnly: true
        data:
          type: object
          readOnly: true
          properties:
            results:
              type: array
              readOnly: true
              items:
                type: object
                readOnly: true
                additionalProperties: true
        request_id:
          type: string
          readOnly: true
    PolymarketMarket360Params:
      type: object
      description: Filter parameters. All values must be strings.
      additionalProperties: false
      properties:
        condition_id:
          type: string
          default: ALL
          description: Market condition ID. Use "ALL" for all markets ranked by 24h volume.
        min_volume_24h:
          type: string
          default: '0'
          description: Minimum 24-hour trading volume.
        min_liquidity_percentile:
          type: string
          default: '0'
          description: Minimum liquidity percentile relative to active markets.
        volume_trend:
          type: string
          enum:
            - Spiking
            - Normal
            - Declining
            - Dying Interest
            - No Trades
            - ALL
          default: ALL
          description: Filter by recent volume momentum.
        min_top1_wallet_pct:
          type: string
          default: '0'
          description: Minimum percentage of exposure held by the largest wallet.
        max_unique_traders_7d:
          type: string
          default: '0'
          description: Maximum unique traders in the last 7 days.
    PolymarketMarket360Pagination:
      type: object
      properties:
        limit:
          type: integer
          minimum: 1
          maximum: 200
          default: 10
          description: Maximum number of records returned per request.
        offset:
          type: integer
          minimum: 0
          default: 0
          description: Number of records to skip before returning results.
    PolymarketMarket360FormatterConfig:
      type: object
      properties:
        format_type:
          type: string
          enum:
            - raw
          default: raw
          description: Output format. Use "raw" for structured JSON.
    PolymarketMarket360ResponseParams:
      type: object
      readOnly: true
      properties:
        condition_id:
          type: string
          readOnly: true
        min_volume_24h:
          type: string
          readOnly: true
        min_liquidity_percentile:
          type: string
          readOnly: true
        volume_trend:
          type: string
          readOnly: true
        min_top1_wallet_pct:
          type: string
          readOnly: true
        max_unique_traders_7d:
          type: string
          readOnly: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Your Falcon API key from the dashboard

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.