NFT Alpha API documentation

Returns recent OpenSea listing, sale, bid, and offer signals for one or more currently watched NFT collection slugs; omit the body to query all watched collections.

Canonical request

$0.02 USDC per request on eip155:8453.

POST https://nft-alpha-x402.fly.dev/api/nft-signal
Content-Type: application/json

{
  "collection": "pudgypenguins"
}

Request body

The JSON body is optional. Send collection for one watched slug, collections for 1–10 watched slugs, or an empty JSON object {} (or omit the body) to query all watched collections.

Nonempty request bodies must use Content-Type: application/json; unsupported media types return 415 before any payment challenge.

{
  "type": "object",
  "properties": {
    "collection": {
      "type": "string",
      "minLength": 1,
      "maxLength": 101,
      "pattern": "^[a-z0-9][a-z0-9-]{0,100}$",
      "enum": [
        "boredapeyachtclub",
        "mutant-ape-yacht-club",
        "azuki",
        "pudgypenguins",
        "milady",
        "doodles-official",
        "degods",
        "cryptopunks"
      ],
      "description": "Currently watched OpenSea collection slug, for example pudgypenguins"
    },
    "collections": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 101,
        "pattern": "^[a-z0-9][a-z0-9-]{0,100}$",
        "enum": [
          "boredapeyachtclub",
          "mutant-ape-yacht-club",
          "azuki",
          "pudgypenguins",
          "milady",
          "doodles-official",
          "degods",
          "cryptopunks"
        ]
      },
      "minItems": 1,
      "maxItems": 10,
      "description": "Batch query 1 to 10 currently watched OpenSea collection slugs"
    }
  },
  "oneOf": [
    {
      "required": [
        "collection"
      ]
    },
    {
      "required": [
        "collections"
      ]
    },
    {
      "maxProperties": 0
    }
  ],
  "additionalProperties": false
}

Canonical paid response

{
  "ok": true,
  "results": [
    {
      "collection": "pudgypenguins",
      "window_minutes": 5,
      "activity": {
        "listings": 12,
        "sales": 9,
        "bids": 31,
        "offers": 5
      },
      "prices": {
        "avg_list": 11.2,
        "min_list": 9.8,
        "avg_sale": 12.1
      },
      "ratios": {
        "sell_through": 0.75,
        "bid_to_list": 2.58
      },
      "signals": [
        {
          "type": "BID_FRENZY",
          "detail": "2.6x bids per listing"
        }
      ],
      "signal_count": 1,
      "timestamp": "2026-08-26T12:00:00.000Z"
    }
  ],
  "meta": {
    "queried": 1,
    "with_data": 1,
    "watched_collections": [
      "boredapeyachtclub",
      "mutant-ape-yacht-club",
      "azuki",
      "pudgypenguins",
      "milady",
      "doodles-official",
      "degods",
      "cryptopunks"
    ],
    "buffered_collections": 1,
    "window_minutes": 5,
    "last_stream_event_at": "2026-08-26T12:00:00.000Z",
    "upstream_stream_status": "connected",
    "last_stream_error_at": null,
    "last_stream_error": null,
    "stream_status": "live_data_available",
    "disclaimer": "Signals describe recent buffered OpenSea activity and are not financial advice."
  }
}

Runtime status and discovery

Signals reflect recent buffered OpenSea Stream activity and are not financial advice. Check health before use. A request can return an explicit empty result with stream metadata when no recent events are buffered.