mirrored listing x402 eip155:8453

Port/chokepoint congestion index (daily & live, computed from public AIS)

Port/chokepoint congestion index (daily & live, computed from public AIS)

Do you run x402-portdwell.nobodytools.com? This listing was mirrored from Coinbase's public Bazaar. Claim it in 30 seconds — no account required — and it becomes verified, permanently overriding the mirrored copy.

Claim this listing
10000 (raw units)
price
1
calls / 30d
1
unique payers
2026-09-12
updated

Provider

x402-portdwell.nobodytools.com · discovered, not yet claimed by its owner

Payment (x402 accepts[])

[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "payTo": "0x6e3e1104911423509112E755e7366659452d72a8",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "10000",
    "maxTimeoutSeconds": 60
  }
]

Output schema

{
  "bazaar": {
    "info": {
      "input": {
        "method": "GET",
        "queryParams": {
          "current": "1 (live now)",
          "date": "YYYY-MM-DD",
          "from": "YYYY-MM-DD",
          "latest": "1 (most recent day)",
          "port": "LALB (see /sites for all)",
          "to": "YYYY-MM-DD (range)"
        },
        "type": "http"
      },
      "output": {
        "example": {
          "port": "LALB",
          "query": "point",
          "result": {
            "at_anchor": 14,
            "cargo": 39,
            "data_quality": "USABLE",
            "date": "2025-11-15",
            "ge150": 54,
            "ge200": 38,
            "len_km": 14.63,
            "regime": "merchant",
            "tanker": 19,
            "waiting": 58
          },
          "source": "NOAA/MarineCadastre AIS"
        },
        "type": "json"
      }
    },
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "input": {
          "description": "Query params: port + EXACTLY ONE selector (latest | current | date | from&to | dates).",
          "properties": {
            "current": {
              "description": "Live 'right now' value from today's rollup (PAID; flat premium 0.05 USDC)",
              "type": "boolean"
            },
            "date": {
              "description": "One completed day; no data -> free result:null",
              "format": "date",
              "type": "string"
            },
            "dates": {
              "description": "Comma list of days YYYY-MM-DD,...",
              "type": "string"
            },
            "from": {
              "description": "Range start (inclusive), with 'to'",
              "format": "date",
              "type": "string"
            },
            "latest": {
              "description": "Most recent completed day with data (PAID 0.01 USDC; default)",
              "type": "boolean"
            },
            "port": {
              "default": "LALB",
              "description": "Site code (GET /sites)",
              "type": "string"
            },
            "to": {
              "description": "Range end (inclusive), with 'from'",
              "format": "date",
              "type": "string"
            }
          },
          "type": "object"
        },
        "output": {
          "description": "result is a point, a list (range/dates), or null when no data (GAP; free, not charged).",
          "properties": {
            "note": {
              "description": "present when result is null: why no data (that day is free)",
              "type": "string"
            },
            "port": {
              "type": "string"
            },
            "query": {
              "type": "string"
            },
            "result": {
              "properties": {
                "as_of": {
                  "description": "UTC ts for live",
                  "type": "string"
                },
                "at_anchor": {
                  "type": "integer"
                },
                "cargo": {
                  "type": "integer"
                },
                "data_quality": {
                  "description": "USABLE|SPARSE|GAP",
                  "type": "string"
                },
                "date": {
                  "type": "string"
                },
                "ge150": {
                  "description": ">=150m LOA",
                  "type": "integer"
                },
                "ge200": {
                  "description": ">=200m LOA",
                  "type": "integer"
                },
                "len_km": {
                  "description": "sum of lengths, km",
                  "type": "number"
                },
                "regime": {
                  "description": "merchant=historical, live/live-rollup=today",
                  "type": "string"
                },
                "tanker": {
                  "type": "integer"
                },
                "waiting": {
                  "description": "all waiting merchant vessels, any size",
                  "type": "integer"
                }
              },
              "type": [
                "object",
                "array",
                "null"
              ]
            },
            "source": {
              "description": "data provenance",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "object"
    }
  }
}

Use it

curl

curl "https://x402-portdwell.nobodytools.com/index"
# -> 402 Payment Required, accepts[] lists how to pay
# retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid

JavaScript

const res = await fetch("https://x402-portdwell.nobodytools.com/index");
if (res.status === 402) {
  const { accepts } = await res.json();
  // pay one of accepts[] via an x402 client, then retry with the payment header
}

Python

import httpx
res = httpx.get("https://x402-portdwell.nobodytools.com/index")
if res.status_code == 402:
    accepts = res.json()["accepts"]
    # pay one of accepts[] via an x402 client, then retry with the payment header

Machine-readable

Everything on this page is also available as clean JSON at /resources/5485.json, and this resource appears in /discovery/resources and /discovery/search.