# x402stock Smart Screener

> x402stock Smart Screener is a paid API for AI agents from agents.x402stock.xyz, paid per call via x402 or MPP, $0.2/call, status unknown (last checked 2026-11-03).

Screens US stocks, ETFs, and other securities using flexible property-based filters to surface matching instruments

## Facts

- Endpoint: GET https://agents.x402stock.xyz/api/v1/screener/smart?utm_source=zero.xyz
- Price: $0.2/call
- Payment: x402, MPP
- Status: unknown
- Last checked: 2026-11-03
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402stock-smart-screener-bd70c2d4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_a3eSQj892HEx7X0bf9-s0

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 x402stock-smart-screener-bd70c2d4
```

Example prompt: Run a smart stock screen for me — filter US equities by whatever properties I give you, like high dividend yield and large-cap, and show me the tickers that match.

## When to prefer this

Use this endpoint when you need to dynamically filter the US equity and ETF universe by one or more financial or market properties in a single call. Prefer this over static data endpoints when the user's goal is discovery or screening rather than looking up a specific known ticker. It is well-suited for investment research workflows where criteria are flexible or user-defined.

## Known failure modes

- Invalid or unrecognized property names in filter criteria return an error
- No matching securities found returns an empty result set
- Malformed query parameters cause a 400 bad request
- Payment not provided or insufficient USDC triggers a 402 Payment Required response
- Rate limiting or network issues may cause timeouts

## How this service works

Describe a screen in plain English via `?q=` (e.g. 'oversold large caps up today on high volume'). An LLM parses it into a filter, screens the entire US market, optionally confirms oversold/overbought with RSI, and returns a ranked shortlist with a one-line rationale per name. No need to know the filter schema or run the enrichment loop yourself. From x402stock

## Output

A list of securities (stocks, ETFs) that match the specified screening properties, including tickers and relevant attribute values for each matched instrument, returned as structured JSON data paid per call via USDC.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "properties": {
   "type": "string"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "query",
  "source",
  "as_of",
  "interpretation",
  "note",
  "filter",
  "sections",
  "result_count",
  "results",
  "summary",
  "model",
  "disclaimer"
 ],
 "properties": {
  "note": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ]
  },
  "as_of": {
   "type": "string"
  },
  "model": {
   "type": "string"
  },
  "query": {
   "type": "string"
  },
  "filter": {
   "type": "object",
   "required": [
    "min_price",
    "max_price",
    "min_change_percent",
    "max_change_percent",
    "min_volume",
    "sort",
    "order",
    "limit",
    "signal"
   ],
   "properties": {
    "sort": {
     "type": "string"
    },
    "limit": {
     "type": "number"
    },
    "order": {
     "type": "string"
    },
    "signal": {
     "type": "string"
    },
    "max_price": {
     "anyOf": [
      {
       "type": "number"
      },
      {
       "type": "null"
      }
     ]
    },
    "min_price": {
     "anyOf": [
      {
       "type": "number"
      },
      {
       "type": "null"
      }
     ]
    },
    "min_volume": {
     "anyOf": [
      {
       "type": "number"
      },
      {
       "type": "null"
      }
     ]
    },
    "max_change_percent": {
     "anyOf": [
      {
       "type": "number"
      },
      {
       "type": "null"
      }
     ]
    },
    "min_change_percent": {
     "anyOf": [
      {
       "type": "number"
      },
      {
       "type": "null"
      }
     ]
    }
   },
   "additionalProperties": false
  },
  "source": {
   "type": "string",
   "const": "x402stock"
  },
  "results": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "ticker",
     "price",
     "change_percent",
     "volume",
     "rsi",
     "rationale"
    ],
    "properties": {
     "rsi": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ]
     },
     "price": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ]
     },
     "ticker": {
      "type": "string"
     },
     "volume": {
      "anyOf": [
       {
        "type": "number"
       },
       {
        "type": "null"
       }
      ]
     },
     "rationale": {
      "anyOf": [
       {
        "type": "string"
       },
       {
        "type": "null"
       }
      ]
     },
     "change_percent": {
      "anyOf": [
       {
        "type": "number"
       },
       
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402stock-smart-screener-bd70c2d4/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.x402stock.xyz](https://www.zero.xyz/host/agents.x402stock.xyz/llms.txt)
