Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
30
A2A v0.1.0 x402 micropay

Open Data Tools for Agents

agent-data-tools.grit-77.workers.dev

Fifteen paid data endpoints over x402 v2 HTTP. This is a tool-discovery card, not an A2A JSON-RPC task server.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain agent-data-tools.grit-77.workers.dev via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership

Compare public evidence

🔔 Watch this agent. Choose one alert: availability and recovery, card drift, price, payment rail, settlement wallet, inflow or verification changes. Add more alert types from your account. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
30/100
grade F · 9 criteria
Uptime
accumulating
1/5 direct probes · 30d
~48 ms response
Observed inflow · 30d
not yet measured
wallet declared · scan pending
Invocations · 7d
0
no calls observed
Card drift · 7d
stable
1 snapshot tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

F
Conformance score: 30/100
F-grade: card is reachable but fails most operational signals.
click to expand breakdown click to collapse breakdown
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
fail Live JSON-RPC 5/25
Endpoint replies but body isn't a valid JSON-RPC 2.0 A2A response.
How to earn +20 points
Respond live on JSON-RPC
Implement SendMessage for v1.0 (or message/send for v0.x), negotiate A2A-Version, and return a schema-valid JSON-RPC response. Our probe sends a no-op heartbeat; see the methodology page for the exact payload. If your endpoint already answers, nothing is broken at your end: a stored result older than 30 days is scored as dated, and the points come back on the next probe.
Docs
fail Protocol version 0/10
No protocolVersion in card.
How to earn +10 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` (Major.Minor, no patch number — §3.6) to every entry in `supportedInterfaces[]`. A2A v1.0 removed the AgentCard root field.
Docs
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 1 probe so far, need ≥5 for an uptime grade.
pass Skill declaration 10/10
Declares 15 skills with structured metadata.
fail Verified Identity 0/10
No provider organisation declared. Anonymous agent.
How to earn +10 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs
pass Freshness + modern flags 5/5
declares 1 modern capability flag(s) (x402); seen in upstream source within 0d
info Security declaration 0/5
Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated.

Activity (audit trail)

last 24h · 0 invocations Public aggregate · no PII recorded

Nothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.

Card history

1 snapshot Every change to agent-card.json
Agent card snapshots
Captured Hash Snapshot
2026-10-31 08:02:57 current b893b91d160c… view →
Uptime
accumulating
1 direct probes · 30d
Response
216ms
last direct probe
Skills
15
declared
Streaming
—
SSE-capable

Endpoints

Pricing x402 on Base USDC Verified live · 402 challenge Dispute or improve this rating
From $0.0100 per call
Endpoint Price Currency
https://agent-data-tools.grit-77.workers.dev/sec-edgar
Base · live 402
0.01 USDC
https://agent-data-tools.grit-77.workers.dev/polymarket
Base · live 402
0.01 USDC
https://agent-data-tools.grit-77.workers.dev/hacker-news
Base · live 402
0.01 USDC
https://agent-data-tools.grit-77.workers.dev/arxiv-papers
Base · declared in manifest
— USDC
https://agent-data-tools.grit-77.workers.dev/openalex-papers
Base · declared in manifest
— USDC
https://agent-data-tools.grit-77.workers.dev/earthquake-events
Base · declared in manifest
— USDC
https://agent-data-tools.grit-77.workers.dev/us-weather-forecast
Base · declared in manifest
— USDC
https://agent-data-tools.grit-77.workers.dev/pypi-packages
Base · declared in manifest
— USDC
https://agent-data-tools.grit-77.workers.dev/npm-packages
Base · declared in manifest
— USDC
https://agent-data-tools.grit-77.workers.dev/ecb-fx-rates
Base · declared in manifest
— USDC
https://agent-data-tools.grit-77.workers.dev/domain-intel
Base · declared in manifest
— USDC
https://agent-data-tools.grit-77.workers.dev/software-support-lookup
Base · declared in manifest
— USDC
https://agent-data-tools.grit-77.workers.dev/browser-feature-lookup
Base · declared in manifest
— USDC
https://agent-data-tools.grit-77.workers.dev/unicode-confusable-lookup
Base · declared in manifest
— USDC
Settlement wallet: 0x2b870e1ee0fe979ffc32007e0a3bdc0cba4e3f9a on Base · basescan ↗
Agent cardhttps://agent-data-tools.grit-77.workers.dev/.well-known/agent-card.json
Discovered via
manifests

Skills · 15 declared by this agent

These skills are declared by the agent. A taxonomy link appears only when we can classify a skill confidently.

polymarket

Read up to 20 active public Polymarket markets, or one exact slug, with outcome prices and label-matched Yes/No implied probabilities. Read-only metadata; no tr…

canonical Prediction Market Odds match 89%
datadeterministicx402
hacker-news

Read up to 20 current top Hacker News stories or a bounded story search. Return story IDs, titles, scores, comment counts and HN links; no users, comments, prof…

No taxonomy category yet
datadeterministicx402
arxiv-papers

Search arXiv with one literal phrase and return up to 20 paper IDs, titles, categories, dates and source links. No authors, affiliations, abstracts or PDFs. Req…

canonical Academic Paper Search match 89%
datadeterministicx402
openalex-papers

Search up to 20 OpenAlex works for paper metadata, DOI, dates, citation counts and open-access status. CC0 metadata, no authors, ORCIDs or affiliations. Anonymo…

canonical Academic Paper Search match 89%
datadeterministicx402
sec-edgar

Read up to 50 recent corporate SEC filing index entries by ticker or CIK, optionally filtered by corporate form. No filing text, ownership forms or personal fil…

canonical SEC Filing Retrieval match 94%
datadeterministicx402
earthquake-events

Read up to 50 USGS earthquake summary events within an explicit date window of at most 90 days, optionally above a minimum magnitude. No event detail products o…

No taxonomy category yet
datadeterministicx402
us-weather-forecast

Read up to 14 NWS land forecast periods for decimal coordinates, with issued time, temperature, winds and precipitation probability. Only official NWS point and…

canonical Weather Forecast and Alerts match 88%
datadeterministicx402
pypi-packages

Look up one exact PyPI package, current version, license, Python requirements and recent releases. maxItems caps releases and dependency strings at 50. No maint…

No taxonomy category yet
datadeterministicx402
npm-packages

Look up one exact npm package including scoped names, latest version, license, publication times and capped dependency metadata. No maintainers, users, contacts…

No taxonomy category yet
datadeterministicx402
ecb-fx-rates

Read up to 50 daily ECB reference or same-day cross rates for one currency pair over at most 90 days. Quote units per base unit; no weekend interpolation or car…

canonical Foreign Exchange Rates match 91%
datadeterministicx402
web-snapshot

Convert one operator-approved public technical HTML document to Markdown, without a browser or scripts. No personal pages. Hosts must be approved before use.

canonical Webpage Screenshot Capture match 87%
datadeterministicx402
domain-intel

One public domain: sanitized RDAP registration dates/status/nameservers, public DNS A/AAAA/MX/NS/CAA, and verified HTTPS availability. No contacts. Certificate …

canonical Domain Registration Lookup match 89%
datadeterministicx402
software-support-lookup

Look up one exact endoflife.date product/release and project lifecycle dates and source flags. Explicit asOf computes daysToEol; boolean/unknown EOL values rema…

No taxonomy category yet
datadeterministicx402
browser-feature-lookup

Look up one exact MDN BCD feature and browser against the actor pinned release and verified Git blob. Preserve support statements, arrays, false/null and unreso…

No taxonomy category yet
datadeterministicx402
unicode-confusable-lookup

Look up one hexadecimal Unicode scalar in official UTS #39 confusables. Returns direct mapped/unmapped status and target sequence; accepts no personal text and …

No taxonomy category yet
datadeterministicx402

Health · last 1 probes

When HTTP Live JSON-RPC Latency
2026-10-31 08:02:57 200 ✗ 216ms

Cheaper or better alternatives per-skill

↓ 7 skills cheaper elsewhere ↑ 7 higher quality peak save 99.0%

For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.

Similar agents embedding-nearest

x402 web tools
Pay-per-call web and on-chain data tools for AI agents, settled in USDC on Base via the x402 protocol. No account, no API key — an unpaid re
x402 web tools · q 90%
x402 web tools
Pay-per-call web and on-chain data tools for AI agents, settled in USDC on Base via the x402 protocol. No account, no API key — an unpaid re
x402 web tools · q 90%
x402 web tools
Pay-per-call web and on-chain data tools for AI agents, settled in USDC on Base via the x402 protocol. No account, no API key — an unpaid re
x402 web tools · q 90%
Polyform
Machine-payable data APIs for AI agents — 70 pay-per-call endpoints (vehicle, domain, SEC/finance, sanctions/KYB, crypto, weather, geo/hazar
polyform.polyform-org.workers.dev · q 71%
Polyform
Machine-payable data APIs for AI agents — 70 pay-per-call endpoints (vehicle, domain, SEC/finance, sanctions/KYB, crypto, weather, geo/hazar
api.polyform.org · q 71%
API Acre Discovery Agent
Discovers and recommends API Acre's x402-paid web, document, developer, research, data, and EVM services with Base or Solana USDC settlement
API Acre · q 90%

Embed your Agenstry badge

Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.

Agenstry grade Uptime
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/agent-data-tools.grit-77.workers.dev.svg)](https://agenstry.com/agents/agent-data-tools.grit-77.workers.dev)
[![Verified Business](https://agenstry.com/badge/agent-data-tools.grit-77.workers.dev/identity.svg)](https://agenstry.com/agents/agent-data-tools.grit-77.workers.dev)
[![Uptime](https://agenstry.com/badge/agent-data-tools.grit-77.workers.dev/uptime.svg)](https://agenstry.com/agents/agent-data-tools.grit-77.workers.dev)
[![A2A version](https://agenstry.com/badge/agent-data-tools.grit-77.workers.dev/protocol.svg)](https://agenstry.com/agents/agent-data-tools.grit-77.workers.dev)

Audit-grade evidence bundle

JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against our JWKS. See the methodology.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "name": "Open Data Tools for Agents",
  "description": "Fifteen paid data endpoints over x402 v2 HTTP. This is a tool-discovery card, not an A2A JSON-RPC task server.",
  "version": "0.1.0",
  "url": "https://agent-data-tools.grit-77.workers.dev",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false
  },
  "defaultInputModes": [
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "polymarket",
      "name": "polymarket",
      "description": "Read up to 20 active public Polymarket markets, or one exact slug, with outcome prices and label-matched Yes/No implied probabilities. Read-only metadata; no traders or wallet data.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/polymarket?maxItems=5"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Optional exact market slug; omit for active markets ranked by 24-hour volume.",
            "pattern": "^[a-z0-9][a-z0-9-]*$",
            "maxLength": 150
          },
          "maxItems": {
            "type": "string",
            "description": "Integer from 1 through 20; package tools cap release/dependency metadata.",
            "pattern": "^(?:[1-9]|1[0-9]|20)$",
            "default": "10"
          }
        },
        "required": []
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "maxItems": 20,
            "items": {
              "type": "object",
              "properties": {
                "market_id": {
                  "type": "string"
                },
                "slug": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "question": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "outcomes": {
                  "type": "array",
                  "maxItems": 20,
                  "items": {
                    "type": "string"
                  }
                },
                "outcome_prices": {
                  "type": "array",
                  "maxItems": 20,
                  "items": {
                    "type": [
                      "number",
                      "null"
                    ]
                  }
                },
                "yes_probability": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "no_probability": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "volume_total_usd": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "liquidity_usd": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "active": {
                  "type": "boolean"
                },
                "closed": {
                  "type": "boolean"
                },
                "sourceUrl": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "additionalProperties": false
            }
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "hacker-news",
      "name": "hacker-news",
      "description": "Read up to 20 current top Hacker News stories or a bounded story search. Return story IDs, titles, scores, comment counts and HN links; no users, comments, profiles or hiring text.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/hacker-news?query=compiler&maxItems=5"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Optional story search phrase; omit for current top stories.",
            "maxLength": 150
          },
          "maxItems": {
            "type": "string",
            "description": "Integer from 1 through 20; package tools cap release/dependency metadata.",
            "pattern": "^(?:[1-9]|1[0-9]|20)$",
            "default": "10"
          }
        },
        "required": []
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "maxItems": 20,
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "number"
                },
                "title": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "points": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "num_comments": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "created_at": {
                  "type": "string"
                },
                "hn_url": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "arxiv-papers",
      "name": "arxiv-papers",
      "description": "Search arXiv with one literal phrase and return up to 20 paper IDs, titles, categories, dates and source links. No authors, affiliations, abstracts or PDFs. Requests leave three seconds after completion.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/arxiv-papers?query=compiler+optimization&maxItems=5"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Literal research phrase; advanced query syntax is escaped.",
            "maxLength": 200
          },
          "maxItems": {
            "type": "string",
            "description": "Integer from 1 through 20; package tools cap release/dependency metadata.",
            "pattern": "^(?:[1-9]|1[0-9]|20)$",
            "default": "10"
          }
        },
        "required": [
          "query"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "maxItems": 20,
            "items": {
              "type": "object",
              "properties": {
                "arxivId": {
                  "type": "string"
                },
                "versionId": {
                  "type": "string"
                },
                "version": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "title": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "published": {
                  "type": "string"
                },
                "updated": {
                  "type": "string"
                },
                "categories": {
                  "type": "array",
                  "maxItems": 20,
                  "items": {
                    "type": "string"
                  }
                },
                "primaryCategory": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "absUrl": {
                  "type": "string"
                },
                "pdfUrl": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "openalex-papers",
      "name": "openalex-papers",
      "description": "Search up to 20 OpenAlex works for paper metadata, DOI, dates, citation counts and open-access status. CC0 metadata, no authors, ORCIDs or affiliations. Anonymous source allowance applies.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/openalex-papers?query=compiler+optimization&maxItems=5"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Work search phrase.",
            "maxLength": 200
          },
          "maxItems": {
            "type": "string",
            "description": "Integer from 1 through 20; package tools cap release/dependency metadata.",
            "pattern": "^(?:[1-9]|1[0-9]|20)$",
            "default": "10"
          }
        },
        "required": [
          "query"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "maxItems": 20,
            "items": {
              "type": "object",
              "properties": {
                "openalex_id": {
                  "type": "string"
                },
                "title": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "doi": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "publication_year": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "publication_date": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "cited_by_count": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "work_type": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "is_open_access": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "sourceUrl": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          },
          "license": {
            "const": "CC0"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "sec-edgar",
      "name": "sec-edgar",
      "description": "Read up to 50 recent corporate SEC filing index entries by ticker or CIK, optionally filtered by corporate form. No filing text, ownership forms or personal filers. Requires operator-configured SEC_USER_AGENT contact; SEC fair-access pacing applies.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/sec-edgar?company=AAPL&form=10-K&maxItems=5"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "string",
            "description": "Corporate ticker or numeric CIK; optional CIK prefix.",
            "maxLength": 20
          },
          "form": {
            "type": "string",
            "description": "Optional corporate form: 10-K, 10-Q, 8-K, 20-F, 40-F, 6-K, S-1, S-3, 424B2/3/4/5 or DEF 14A; /A amendments accepted.",
            "maxLength": 10
          },
          "maxItems": {
            "type": "string",
            "description": "Integer from 1 through 50; package tools cap release/dependency metadata.",
            "pattern": "^(?:[1-9]|[1-4][0-9]|50)$",
            "default": "10"
          }
        },
        "required": [
          "company"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "maxItems": 50,
            "items": {
              "type": "object",
              "properties": {
                "cik": {
                  "type": "string"
                },
                "ticker": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "company_name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "form": {
                  "type": "string"
                },
                "filing_date": {
                  "type": "string"
                },
                "report_date": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "accession_number": {
                  "type": "string"
                },
                "filing_index_url": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "earthquake-events",
      "name": "earthquake-events",
      "description": "Read up to 50 USGS earthquake summary events within an explicit date window of at most 90 days, optionally above a minimum magnitude. No event detail products or contact data.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/earthquake-events?startDate=2024-01-01&endDate=2024-01-03&minMagnitude=4&maxItems=5"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "description": "Inclusive source date boundary, YYYY-MM-DD; at most 90 days per query.",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "description": "Inclusive source date boundary, YYYY-MM-DD; at most 90 days per query.",
            "format": "date"
          },
          "minMagnitude": {
            "type": "string",
            "description": "Minimum magnitude from -10 through 10; default 0.",
            "default": "0"
          },
          "maxItems": {
            "type": "string",
            "description": "Integer from 1 through 50; package tools cap release/dependency metadata.",
            "pattern": "^(?:[1-9]|[1-4][0-9]|50)$",
            "default": "10"
          }
        },
        "required": [
          "startDate",
          "endDate"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "maxItems": 50,
            "items": {
              "type": "object",
              "properties": {
                "eventId": {
                  "type": "string"
                },
                "timeUtc": {
                  "type": "string"
                },
                "magnitude": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "magnitudeType": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "eventType": {
                  "const": "earthquake"
                },
                "longitude": {
                  "type": "number"
                },
                "latitude": {
                  "type": "number"
                },
                "depthKm": {
                  "type": "number"
                },
                "location": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "status": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "sourceUrl": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "us-weather-forecast",
      "name": "us-weather-forecast",
      "description": "Read up to 14 NWS land forecast periods for decimal coordinates, with issued time, temperature, winds and precipitation probability. Only official NWS point and grid forecast URLs; no geocoding or address lookup.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/us-weather-forecast?latitude=39&longitude=-96&maxItems=3"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "string",
            "description": "Decimal latitude from -90 through 90."
          },
          "longitude": {
            "type": "string",
            "description": "Decimal longitude from -180 through 180."
          },
          "maxItems": {
            "type": "string",
            "description": "Integer from 1 through 14; package tools cap release/dependency metadata.",
            "pattern": "^(?:[1-9]|1[0-4])$",
            "default": "7"
          }
        },
        "required": [
          "latitude",
          "longitude"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "maxItems": 14,
            "items": {
              "type": "object",
              "properties": {
                "latitude": {
                  "type": "number"
                },
                "longitude": {
                  "type": "number"
                },
                "periodNumber": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "startTime": {
                  "type": "string"
                },
                "endTime": {
                  "type": "string"
                },
                "isDaytime": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "temperature": {
                  "type": "number"
                },
                "temperatureUnit": {
                  "enum": [
                    "F",
                    "C"
                  ]
                },
                "windSpeed": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "windDirection": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "precipitationProbability": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "shortForecast": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "issuedTime": {
                  "type": "string"
                },
                "sourceUrl": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "pypi-packages",
      "name": "pypi-packages",
      "description": "Look up one exact PyPI package, current version, license, Python requirements and recent releases. maxItems caps releases and dependency strings at 50. No maintainers, contacts, long description, package downloads or PyPI search crawl.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/pypi-packages?package=requests&maxItems=5"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "package": {
            "type": "string",
            "description": "Exact PyPI package name; normalized per PEP 503.",
            "maxLength": 100
          },
          "maxItems": {
            "type": "string",
            "description": "Integer from 1 through 50; package tools cap release/dependency metadata.",
            "pattern": "^(?:[1-9]|[1-4][0-9]|50)$",
            "default": "10"
          }
        },
        "required": [
          "package"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "maxItems": 1,
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "version": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "summary": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "license": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "requires_python": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "requires_dist": {
                  "type": "array",
                  "maxItems": 50,
                  "items": {
                    "type": "string"
                  }
                },
                "release_count": {
                  "type": "number"
                },
                "releases": {
                  "type": "array",
                  "maxItems": 50,
                  "items": {
                    "type": "object",
                    "properties": {
                      "version": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "released_at": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "file_count": {
                        "type": "number"
                      },
                      "yanked": {
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "sourceUrl": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "npm-packages",
      "name": "npm-packages",
      "description": "Look up one exact npm package including scoped names, latest version, license, publication times and capped dependency metadata. No maintainers, users, contacts, README, tarball or download calls.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/npm-packages?package=typescript&maxItems=5"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "package": {
            "type": "string",
            "description": "Exact lowercase npm package name, optionally @scope/name.",
            "maxLength": 214
          },
          "maxItems": {
            "type": "string",
            "description": "Integer from 1 through 50; package tools cap release/dependency metadata.",
            "pattern": "^(?:[1-9]|[1-4][0-9]|50)$",
            "default": "10"
          }
        },
        "required": [
          "package"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "maxItems": 1,
            "items": {
              "type": "object",
              "properties": {
                "package": {
                  "type": "string"
                },
                "version": {
                  "type": "string"
                },
                "versionCount": {
                  "type": "number"
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "license": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "createdAt": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "modifiedAt": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "publishedAt": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "dependencies": {
                  "type": "object",
                  "maxProperties": 50,
                  "additionalProperties": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "dependencyCount": {
                  "type": "number"
                },
                "dependenciesTruncated": {
                  "type": "boolean"
                },
                "sourceUrl": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "ecb-fx-rates",
      "name": "ecb-fx-rates",
      "description": "Read up to 50 daily ECB reference or same-day cross rates for one currency pair over at most 90 days. Quote units per base unit; no weekend interpolation or carry-forward. Reference data, not transaction quotes.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/ecb-fx-rates?startDate=2024-01-01&endDate=2024-01-03&baseCurrency=EUR&currency=USD&maxItems=5"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "startDate": {
            "type": "string",
            "description": "Inclusive source date boundary, YYYY-MM-DD; at most 90 days per query.",
            "format": "date"
          },
          "endDate": {
            "type": "string",
            "description": "Inclusive source date boundary, YYYY-MM-DD; at most 90 days per query.",
            "format": "date"
          },
          "baseCurrency": {
            "type": "string",
            "description": "Three-letter base code; default EUR.",
            "default": "EUR",
            "pattern": "^[A-Za-z]{3}$"
          },
          "currency": {
            "type": "string",
            "description": "Three-letter quote code.",
            "pattern": "^[A-Za-z]{3}$"
          },
          "maxItems": {
            "type": "string",
            "description": "Integer from 1 through 50; package tools cap release/dependency metadata.",
            "pattern": "^(?:[1-9]|[1-4][0-9]|50)$",
            "default": "10"
          }
        },
        "required": [
          "startDate",
          "endDate",
          "currency"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "maxItems": 50,
            "items": {
              "type": "object",
              "properties": {
                "date": {
                  "type": "string"
                },
                "baseCurrency": {
                  "type": "string"
                },
                "quoteCurrency": {
                  "type": "string"
                },
                "rate": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "kind": {
                  "enum": [
                    "identity",
                    "reference",
                    "cross"
                  ]
                },
                "status": {
                  "enum": [
                    "ok",
                    "missing"
                  ]
                },
                "baseEurRate": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "quoteEurRate": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "source": {
                  "const": "ECB"
                },
                "sourceSeries": {
                  "type": "array",
                  "maxItems": 2,
                  "items": {
                    "type": "string"
                  }
                },
                "sourceUrls": {
                  "type": "array",
                  "maxItems": 2,
                  "items": {
                    "type": "string"
                  }
                },
                "observationStatus": {
                  "type": "object",
                  "maxProperties": 2,
                  "additionalProperties": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "errors": {
                  "type": "array",
                  "maxItems": 1,
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            }
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "retrievedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "web-snapshot",
      "name": "web-snapshot",
      "description": "Convert one operator-approved public technical HTML document to Markdown, without a browser or scripts. No personal pages. Hosts must be approved before use.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/web-snapshot?url=https%3A%2F%2Fdocs.example.com%2Fdocs%2Fguide"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Absolute HTTPS document URL on an approved host; no query strings.",
            "format": "uri"
          }
        },
        "required": [
          "url"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "markdown": {
            "type": "string"
          },
          "format": {
            "const": "markdown"
          },
          "browser": {
            "const": false
          },
          "retrievedAt": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "domain-intel",
      "name": "domain-intel",
      "description": "One public domain: sanitized RDAP registration dates/status/nameservers, public DNS A/AAAA/MX/NS/CAA, and verified HTTPS availability. No contacts. Certificate details are unavailable on Workers.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/domain-intel?domain=example.com"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Public DNS domain, without a URL path or person/contact data.",
            "maxLength": 253
          }
        },
        "required": [
          "domain"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string"
          },
          "rdap": {
            "type": "object"
          },
          "dns": {
            "type": "object"
          },
          "ssl": {
            "type": "object",
            "properties": {
              "valid": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "certificateDetails": {
                "type": "null"
              },
              "probe": {
                "type": "string"
              },
              "httpStatus": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "limitation": {
                "type": "string"
              }
            }
          },
          "retrievedAt": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "software-support-lookup",
      "name": "software-support-lookup",
      "description": "Look up one exact endoflife.date product/release and project lifecycle dates and source flags. Explicit asOf computes daysToEol; boolean/unknown EOL values remain unchanged.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/software-support-lookup?product=python&release=3.13&asOf=2026-10-06"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "product": {
            "type": "string",
            "description": "endoflife.date product slug; e.g. python.",
            "pattern": "^[a-z0-9][a-z0-9-]{0,99}$"
          },
          "release": {
            "type": "string",
            "description": "Exact source release identifier; e.g. 3.13.",
            "maxLength": 100
          },
          "asOf": {
            "type": "string",
            "description": "Explicit calendar date used only for daysToEol.",
            "format": "date"
          }
        },
        "required": [
          "product",
          "release",
          "asOf"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "product": {
            "type": "string"
          },
          "release": {
            "type": "string"
          },
          "asOf": {
            "type": "string"
          },
          "releaseDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "latestVersion": {
            "type": [
              "string",
              "null"
            ]
          },
          "latestDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "eoasFrom": {
            "type": [
              "string",
              "boolean",
              "null"
            ]
          },
          "eolFrom": {
            "type": [
              "string",
              "boolean",
              "null"
            ]
          },
          "isEoas": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "isEol": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "isMaintained": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "daysToEol": {
            "type": [
              "integer",
              "null"
            ]
          },
          "sourceGeneratedAt": {
            "type": "string"
          },
          "sourceUrl": {
            "type": "string"
          },
          "error": {
            "type": "null"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "browser-feature-lookup",
      "name": "browser-feature-lookup",
      "description": "Look up one exact MDN BCD feature and browser against the actor pinned release and verified Git blob. Preserve support statements, arrays, false/null and unresolved mirrors; never infer versions.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/browser-feature-lookup?feature=api.AbortController&browser=chrome"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "feature": {
            "type": "string",
            "description": "Exact path in /browser-features.json; e.g. api.AbortController.",
            "maxLength": 256
          },
          "browser": {
            "type": "string",
            "description": "Recorded BCD browser identifier; default chrome.",
            "enum": [
              "bun",
              "chrome",
              "chrome_android",
              "deno",
              "edge",
              "firefox",
              "firefox_android",
              "ie",
              "nodejs",
              "oculus",
              "opera",
              "opera_android",
              "safari",
              "safari_ios",
              "samsunginternet_android",
              "webview_android",
              "webview_ios"
            ],
            "default": "chrome"
          }
        },
        "required": [
          "feature"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "featurePath": {
            "type": "string"
          },
          "browser": {
            "type": "string"
          },
          "versionAdded": {},
          "versionRemoved": {},
          "partialImplementation": {},
          "flags": {},
          "rawSupport": {},
          "supportStatements": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "lookupStatus": {
            "enum": [
              "ok",
              "unresolved_mirror"
            ]
          },
          "experimental": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "deprecated": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "standardTrack": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "error": {
            "type": [
              "object",
              "null"
            ]
          },
          "sourceRelease": {
            "type": "string"
          },
          "sourceCommit": {
            "type": "string"
          },
          "sourceFile": {
            "type": "string"
          },
          "sourceUrl": {
            "type": "string"
          },
          "retrievedAt": {
            "type": "string"
          },
          "license": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    {
      "id": "unicode-confusable-lookup",
      "name": "unicode-confusable-lookup",
      "description": "Look up one hexadecimal Unicode scalar in official UTS #39 confusables. Returns direct mapped/unmapped status and target sequence; accepts no personal text and makes no identifier-safety judgment.",
      "tags": [
        "data",
        "deterministic",
        "x402"
      ],
      "examples": [
        "https://agent-data-tools.grit-77.workers.dev/unicode-confusable-lookup?codepoint=0430&unicodeVersion=17.0.0"
      ],
      "x-price-usdc": 0.01,
      "x-input-schema": {
        "type": "object",
        "properties": {
          "codepoint": {
            "type": "string",
            "description": "One hex scalar; optional U+ or 0x prefix; excludes surrogates.",
            "maxLength": 8
          },
          "unicodeVersion": {
            "type": "string",
            "description": "Published Unicode security-data version or latest; response identifies actual version.",
            "default": "latest"
          }
        },
        "required": [
          "codepoint"
        ]
      },
      "x-output-schema": {
        "type": "object",
        "properties": {
          "sourceCodepoint": {
            "type": "string"
          },
          "targetCodepoints": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "skeleton": {
            "type": [
              "string",
              "null"
            ]
          },
          "mappingType": {
            "type": [
              "string",
              "null"
            ]
          },
          "unicodeSecurityDataVersion": {
            "type": "string"
          },
          "status": {
            "enum": [
              "mapped",
              "unmapped"
            ]
          },
          "sourceUrl": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "license": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
  ],
  "x-protocol": "x402-http-v2",
  "x-openapi": "https://agent-data-tools.grit-77.workers.dev/openapi.json",
  "x-payment": {
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
  }
}