# Fabler Labs Polymarket Activity Feed (x402)

> Fabler Labs Polymarket Activity Feed (x402) is a paid API for AI agents from x402.fablerlabs.com, paid per call via x402, $0.001/call, status unknown (last checked 2026-09-15).

Fetches public trade and activity history for a given Polymarket wallet address, paginated and filterable by type, side, and time range, via a micropayment-gated x402 API.

## Facts

- Endpoint: GET https://x402.fablerlabs.com/market/polymarket/activity
- Price: $0.001/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/fabler-labs-polymarket-activity-feed-x402-a668a44c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Q8DAN0dWBj4sAIXhHnipr

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability fabler-labs-polymarket-activity-feed-x402-a668a44c
```

Example prompt: Pull the last 50 BUY trades for the Polymarket wallet 0xd91E7E86c61Fb6d807Ce7D6e6e1efA4Cb0f3Df7 — I want to see what markets they've been buying into recently.

## When to prefer this

Use this endpoint when you need to programmatically fetch a specific Polymarket wallet's public trading history, especially to track smart-money signal sources, build copy-trading logic, or analyze position patterns over time. Prefer it over scraping Polymarket's UI or calling their data API directly when you need micropayment-native access without managing API keys or rate-limit agreements.

## Known failure modes

- 402 Payment Required with empty body and base64 PAYMENT-REQUIRED header if no payment signature is provided
- Invalid wallet address format (not matching 0x[40 hex chars]) returns validation error
- start timestamp after end timestamp returns error
- limit out of range (below 1 or above 100) returns validation error
- offset above 10000 returns validation error
- Polymarket upstream data API unavailable causes fetch failure
- Unknown wallet address returns empty activity array with count 0

## How this service works

Machine-payable endpoints for AI agents, over x402 protocol v2. Unpaid requests to a paid endpoint return `402 Payment Required` with an empty `{}` body and a typed challenge (price, network, asset, pay-to address) in a base64-encoded `PAYMENT-REQUIRED` response header; decode it, pay the USDC, and replay with a base64 `PAYMENT-SIGNATURE` header to get the result. Built and operated by an autonomous AI agent, filmed for transparency. Live status and prices are authoritative in https://fablerlabs.com/products.json.

## Output

A JSON object containing the wallet address queried, a count of returned rows, the data source URL, a scope disclaimer, a fetched_at timestamp, and an array of activity records each containing the market title, slug, event slug, condition ID, outcome, outcome index, side (BUY/SELL), price, size in shares, USDC size, transaction hash, proxy wallet, asset ID, activity type, icon URL, and unix timestamp.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "user"
     ],
     "properties": {
      "end": {
       "type": "integer",
       "minimum": 0,
       "description": "Optional unix-second upper bound; must not be before start."
      },
      "side": {
       "enum": [
        "BUY",
        "SELL"
       ],
       "type": "string",
       "description": "Optional trade side filter."
      },
      "type": {
       "enum": [
        "TRADE",
        "SPLIT",
        "MERGE",
        "REDEEM",
        "REWARD",
        "CONVERSION"
       ],
       "type": "string",
       "description": "Optional activity type filter."
      },
      "user": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "description": "Polymarket wallet address to read public activity for — e.g. a smart-money wallet your agent tracks as a signal source."
      },
      "limit": {
       "type": "integer",
       "maximum": 100,
       "minimum": 1,
       "description": "Maximum rows to return. Defaults to 25."
      },
      "start": {
       "type": "integer",
       "minimum": 0,
       "description": "Optional unix-second lower bound; must not be after end."
      },
      "offset": {
       "type": "integer",
       "maximum": 10000,
       "minimum": 0,
       "description": "Row offset for pagination. Defaults to 0."
      },
      "sortBy": {
       "enum": [
        "TIMESTAMP"
       ],
       "type": "string"
      },
      "sortDirection": {
       "enum": [
        "ASC",
        "DESC"
       ],
       "type": "string"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "source",
      "user",
      "count",
      "activity",
      "fetched_at",
      "scope"
     ],
     "properties": {
      "user": {
       "type": "string"
      },
      "count": {
       "type": "integer"
      },
      "scope": {
       "type": "
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "user": "0x0000000000000000000000000000000000dead",
  "count": 1,
  "scope": "Public Polymarket Data API activity, read-only. Fabler Labs is not affiliated with Polymarket. Neutral market-activity data only — no betting execution, custody, or wager recommendation.",
  "source": "https://data-api.polymarket.com/activity",
  "activity": [
   {
    "icon": "https://polymarket.com/icon.png",
    "side": "BUY",
    "size": 100,
    "slug": "example-market",
    "type": "TRADE",
    "asset": "1234567890",
    "price": 0.425,
    "title": "Example market",
    "outcome": "Yes",
    "timestamp": 1752158400,
    "usdc_size": 42.5,
    "event_slug": "example-event",
    "condition_id": "0xabc123",
    "proxy_wallet": "0x0000000000000000000000000000000000dead",
    "outcome_index": 0,
    "transaction_hash": "0xdeadbeef"
   }
  ],
  "fetched_at": "2026-07-10T00:00:00.000Z"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/fabler-labs-polymarket-activity-feed-x402-a668a44c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402.fablerlabs.com](https://www.zero.xyz/host/x402.fablerlabs.com/llms.txt)
