# market2000.xyz Pattern Screener

> market2000.xyz Pattern Screener is a paid API for AI agents from market2000.xyz, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-15).

Scans up to 50 tickers simultaneously and ranks them by how closely their recent price action matches historical patterns, returning similarity scores and top analog dates.

## Facts

- Endpoint: GET https://market2000.xyz/screen
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/market2000-xyz-pattern-screener-9e56a687
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_nMFs5lKXEeH1Cclf6-w5_

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 market2000-xyz-pattern-screener-9e56a687
```

Example prompt: Scan AAPL, MSFT, GOOGL, SPY, QQQ, BTC-USD, and GLD for the period March 1 2025 through June 1 2025 using daily bars and L2 distance, then rank them by how closely their price action matches any historical pattern — best match first.

## When to prefer this

Use this endpoint when you need to sweep a universe of symbols (up to 50) in a single API call and get a ranked leaderboard of pattern matches rather than analyzing one ticker at a time. It is the most efficient option for portfolio monitoring agents, quant screeners, and watchlist sweeps where relative ranking across symbols matters more than deep per-ticker analysis.

## Known failure modes

- Too many tickers supplied (>50): endpoint may reject or truncate the list
- Invalid date format (not YYYY-MM-DD): returns a validation error
- Ticker not found or no price history available: individual ticker entry has status=error with reason
- Insufficient historical data for the requested date range or timeframe: status=error per ticker
- Invalid metric or sort_by enum value: request rejected with parameter error
- Payment failure or insufficient USDC balance for the $0.25 per-call fee

## How this service works

An origin the crawlers already index. We count what AI agents try to buy, what they are refused, and what the AI companies take without sending anyone back. Sold per call in USDC.

## Output

A JSON object containing the number of tickers successfully screened and a ranked array of results sorted ascending by similarity score (lower = better match), each entry including the ticker symbol, similarity distance, query window return (decimal), top matching historical analog start date, and a status field indicating success or error for that ticker.

## 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",
    "queryParams"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "tickers",
      "start_date",
      "end_date"
     ],
     "properties": {
      "metric": {
       "enum": [
        "l1",
        "l2"
       ],
       "type": "string",
       "description": "Distance metric (default l2)"
      },
      "sort_by": {
       "enum": [
        "similarity",
        "return"
       ],
       "type": "string",
       "description": "Sort results by similarity (default) or query_return"
      },
      "tickers": {
       "type": "string",
       "description": "Comma-separated list of asset symbols, max 50 (e.g. AAPL,MSFT,GOOGL,BTC-USD)"
      },
      "end_date": {
       "type": "string",
       "description": "Query window end, exclusive (YYYY-MM-DD)"
      },
      "timeframe": {
       "type": "string",
       "description": "Bar size: 1d (default), 1h, 30m, 15m"
      },
      "start_date": {
       "type": "string",
       "description": "Query window start, inclusive (YYYY-MM-DD)"
      }
     }
    }
   }
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "start_date",
      "end_date",
      "timeframe",
      "screened",
      "results"
     ],
     "properties": {
      "results": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "ticker",
         "status"
        ],
        "properties": {
         "error": {
          "type": "string",
          "description": "Reason for failure (only present when status=error)"
         },
         "status": {
          "enum": [
           "ok",
           "error"
          ],
          "type": "string"
         },
         "ticker": {
          "type": "string"
         },
         "similarity": {
          "type": "number",
          "description": "Best match distance score (lower = closer)"
         },
         "query_return": {
          "type": "number",
          "description": "Return o
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "results": [
   {
    "status": "ok",
    "ticker": "AAPL",
    "similarity": 0.041,
    "query_return": 0.043,
    "top_match_start": "2020-03-23"
   },
   {
    "status": "ok",
    "ticker": "MSFT",
    "similarity": 0.078,
    "query_return": 0.031,
    "top_match_start": "2018-12-24"
   }
  ],
  "end_date": "2025-06-01",
  "screened": 5,
  "timeframe": "1d",
  "start_date": "2025-03-01"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/market2000-xyz-pattern-screener-9e56a687/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from market2000.xyz](https://www.zero.xyz/host/market2000.xyz/llms.txt)
