x402 List

x402 Protocol Service Directory

○

AgisHub

AI

payment-ready 2026-09-20, probe currently failing

One server, every tool your agent needs — no API key, no signup. 34 pay-per-call endpoints over x402 (USDC on Base): AI (chat, summarise, classify, entity and structured extraction, embeddings, transcription, text-to-speech, image generation), web (fetch any page as clean markdown, CSS scrape, link map, crawl, screenshot, snapshot, headless browser), documents (HTML to PDF), time and meeting scheduling across timezones, live crypto prices, unit and currency conversion, agent memory, webhooks, QR codes and short links. The same catalogue is free over MCP.

Pay from $0.001 to $0.10 per request in USDC on Base, settled onchain via the x402 protocol, no signup, no API key needed.

measured since 2026-07-12 (start of our harvest window) · $3.91 all-time · settled via coinbase

BASE URL https://api.agishub.com │ WEBSITE https://agishub.com │ ENDPOINTS 67 │ NETWORK Base │ ASSET USDC │ MEMBER SINCE 2026-08-31 │ MONITORED SINCE 2026-08-31

VERDICT

ranking generation 3

mixed 73/100 #134 of 162 in AI by measured score

What the score read on this service: status offline, 84% uptime 30d, 742ms response p95, x402 compliance 13 of 13, $0.001 price against the category, on-chain traction measured. Each of those is measured, and each is published in full below.

The score comes from our own monitoring, never from reviews, operator claims, or a language model: reliability, x402 compliance, price against the category, a deterministic risk flag, and a small on-chain traction term, weighted by ranking generation 3. It is not placement anyone can buy: the paid verify tier is reported beside it and is not one of its inputs. Every component below stays published and read-only.

It is a score inside AI, and only there: price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, which here means 162 listings, this one among them. That set is wider than the 162 the position above is counted against, because a listing we have measured too little of to rank still sits in the field the price and the speed are normalized over. The same service in a different field would read differently. The same engine answers GET /api/v1/best, and asked for a different pool (the whole directory, or another filter) it returns a different number for this service under this same ranking generation. Neither is more correct: they answer different questions, and the methodology states which is which.

Bands on the 0 to 100 measured score: strong at 93 and above, solid from 75, mixed from 55, weak below 55. Price and speed are scored against the whole category field, every listing in it that carries no danger flag, the scored service included, so the score places a service in its own field.

ALTERNATIVES IN AI

Other AI services in this directory, ordered by the same measured score. The figures are ours: 30-day uptime from our own probes, 30-day settlement volume read on-chain (a conservative undercount, and null where we cannot measure it, never a zero).

Ranked alternative x402 services in the same category, with band, measured score, 30-day uptime and 30-day on-chain settlement volume
SERVICE BAND SCORE UPTIME 30D VOL 30D
Otto AI strong 95 100% $56.13
NetIntel strong 94 100% $16.76
x402engine strong 93 100% $28.00
GlianaAI solid 93 100% $68.10
Agent402.tools solid 92 99.7% $138.77
5 of 161 other ranked services in AI · see the whole category

ASSESSMENT

updated 4h ago

The parts the verdict above is computed from, each with its proof. Click any chip. Measured values stay read-only; unknown is honest, and an unknown is never counted as a zero.

reliability 84%
uptime · latest daily rollup
-
uptime 7d
0%
uptime 30d
84%
uptime 90d
84%
response p95
742ms
avg response
386ms
total checks
699

Measured on the unpaid 402 handshake, not the paid call. A service can 402 correctly and still fail after payment.

compliance A (13/13), stale (probe failing)

13 of 13 x402 conformance checks pass. Full checklist below.

jump to compliance checklist

price $0.001 to $0.10 (p11 in AI)
price (min)
$0.001
price (max)
$0.10
category percentile (min)
p11 in AI
category percentile (max)
p54 in AI
endpoints / prices
67 / 10
model
tiered
stability
0%
risk clean

No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.

domain age
-
registrar
-
hosting
custom
domain created
---

Identity facts, not a risk score.

traction $2.96 30d · 4 buyers · top buyer 99% (address, not entity)
volume 30d
$2.96
buyers 30d
4
settlements 30d
90
measured since
2026-07-12 (start of our harvest window)
last settlement
2026-09-27
top buyer share
99% of 30d volume (address, not entity)
trend 7d vs 30d
0.00x the 30d daily rate
networks
eip155:8453
volume all-time
$3.91
settlements all-time
142
median settlement 30d
$0.02
max settlement 30d
$0.10
settled via
coinbase ($2.96, 90 tx)

Conservative undercount: only USDC settlements via facilitators we measure are counted. A measured floor, not an estimate.

Top buyer share is part of the ranking score: a higher share lowers the traction part of the score, by up to half when one address holds all 30d volume.

CHANGES

3 in 30d

Payout, price, and schema changes detected on this service's x402 wire. A payout rotation at an unchanged price shows up here even when nothing else moves. Full feed at /changes.

changes schema changed 14d ago (3 in 30d)

schema changed · 14d ago

endpoint added POST /v1/audio-speak

endpoint added POST /v1/audio-transcribe

endpoint added POST /v1/browser-automate

endpoint added POST /v1/chat

endpoint added POST /v1/classify

endpoint added POST /v1/crawl

endpoint added POST /v1/crawl-map

endpoint added POST /v1/crypto-price

endpoint added POST /v1/currency-convert

endpoint added POST /v1/date-calculate

endpoint added POST /v1/embed

endpoint added POST /v1/extract

endpoint added POST /v1/extract-structured

endpoint added POST /v1/generate-image

endpoint added POST /v1/links

endpoint added POST /v1/meeting-slots

endpoint added POST /v1/memory-search

endpoint added POST /v1/memory-store

endpoint added POST /v1/pdf

endpoint added POST /v1/qr-generate

endpoint added POST /v1/scrape

endpoint added POST /v1/screenshot

endpoint added POST /v1/shorten

endpoint added POST /v1/snapshot

endpoint added POST /v1/summarize

endpoint added POST /v1/time-convert

endpoint added POST /v1/time-holiday

endpoint added POST /v1/time-now

endpoint added POST /v1/time-offset

endpoint added POST /v1/timezones

endpoint added POST /v1/units-convert

endpoint added POST /v1/web-scraper

endpoint added POST /v1/webhook-send

endpoint added POST /v1/webhook-status

schema added POST /v1/audio-speak exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/audio-transcribe exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/browser-automate exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/chat exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/classify exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/crawl exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/crawl-map exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/crypto-price exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/currency-convert exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/date-calculate exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/embed exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/extract exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/extract-structured exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/generate-image exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/links exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/meeting-slots exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/memory-search exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/memory-store exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/pdf exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/qr-generate exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/scrape exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/screenshot exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/shorten exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/snapshot exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/summarize exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/time-convert exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/time-holiday exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/time-now exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/time-offset exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/timezones exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/units-convert exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/web-scraper exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/webhook-send exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

schema added POST /v1/webhook-status exact eip155:8453 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 USDC 2 300 {"name":"USD Coin","version":"2"}

payout address changed · 21d ago

payout removed 0xF41DaF0BA8D5f5915d927e005b2EB2dEd7b6feCF

payout added 0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d

price changed · 21d ago

GET /paid/browser-automate · eip155:8453 · USDC: 10000 → 100000

GET /paid/chat · eip155:8453 · USDC: 3000 → 20000

GET /paid/classify · eip155:8453 · USDC: 2000 → 20000

GET /paid/crypto-price · eip155:8453 · USDC: 1000 → 10000

GET /paid/embed · eip155:8453 · USDC: 1000 → 10000

GET /paid/generate-image · eip155:8453 · USDC: 10000 → 100000

GET /paid/links · eip155:8453 · USDC: 2000 → 30000

GET /paid/memory-search · eip155:8453 · USDC: 1000 → 10000

GET /paid/pdf · eip155:8453 · USDC: 8000 → 50000

GET /paid/scrape · eip155:8453 · USDC: 4000 → 30000

GET /paid/screenshot · eip155:8453 · USDC: 6000 → 30000

GET /paid/shorten · eip155:8453 · USDC: 1000 → 10000

GET /paid/snapshot · eip155:8453 · USDC: 8000 → 50000

GET /paid/summarize · eip155:8453 · USDC: 3000 → 20000

GET /paid/web-scraper · eip155:8453 · USDC: 4000 → 30000

GET /paid/webhook-status · eip155:8453 · USDC: 1000 → 10000

Amounts are on-wire atomic units in the named asset.

see all changes for this service

WHAT IT DOES

ai-derived

No AI synthesis has been produced for this service yet.

ENDPOINTS

Service endpoints with HTTP method, path, description, pricing, and network
METHOD PATH DESCRIPTION PRICE NETWORK ASSET 402 CHANNEL
GET /paid/browser-automate $0.10 Base USDC header
GET /paid/chat $0.02 Base USDC header
GET /paid/classify $0.02 Base USDC header
GET /paid/convert-batch $0.001 Base USDC header
GET /paid/convert-currency $0.001 Base USDC header
GET /paid/convert-timezone $0.001 Base USDC header
GET /paid/convert-units $0.001 Base USDC header
GET /paid/crypto-price $0.01 Base USDC header
GET /paid/date-math $0.001 Base USDC header
GET /paid/embed $0.01 Base USDC header
GET /paid/extract-entities $0.003 Base USDC header
GET /paid/extract-json $0.006 Base USDC header
GET /paid/find-meeting-slots $0.02 Base USDC header
GET /paid/generate-image $0.10 Base USDC header
GET /paid/is-holiday $0.001 Base USDC header
GET /paid/links $0.03 Base USDC header
GET /paid/lookup-timezone $0.001 Base USDC header
GET /paid/memory-search $0.01 Base USDC header
GET /paid/memory-upsert $0.001 Base USDC header
GET /paid/now-in $0.001 Base USDC header
GET /paid/pdf $0.05 Base USDC header
GET /paid/qr-code $0.001 Base USDC header
GET /paid/scrape $0.03 Base USDC header
GET /paid/screenshot $0.03 Base USDC header
GET /paid/shorten $0.01 Base USDC header
GET /paid/snapshot $0.05 Base USDC header
GET /paid/summarize $0.02 Base USDC header
GET /paid/transcribe $0.006 Base USDC header
GET /paid/tts $0.005 Base USDC header
GET /paid/tz-offset $0.001 Base USDC header
GET /paid/web-scraper $0.03 Base USDC header
GET /paid/webhook-relay $0.002 Base USDC header
GET /paid/webhook-status $0.01 Base USDC header
POST /v1/audio-speak $0.05 Base USDC header
POST /v1/audio-transcribe $0.05 Base USDC header
POST /v1/browser-automate $0.10 Base USDC header
POST /v1/chat $0.02 Base USDC header
POST /v1/classify $0.02 Base USDC header
POST /v1/crawl $0.10 Base USDC header
POST /v1/crawl-map $0.05 Base USDC header
POST /v1/crypto-price $0.01 Base USDC header
POST /v1/currency-convert $0.01 Base USDC header
POST /v1/date-calculate $0.01 Base USDC header
POST /v1/embed $0.01 Base USDC header
POST /v1/extract $0.02 Base USDC header
POST /v1/extract-structured $0.05 Base USDC header
POST /v1/generate-image $0.10 Base USDC header
POST /v1/links $0.03 Base USDC header
POST /v1/meeting-slots $0.10 Base USDC header
POST /v1/memory-search $0.01 Base USDC header
POST /v1/memory-store $0.01 Base USDC header
POST /v1/pdf $0.05 Base USDC header
POST /v1/qr-generate $0.01 Base USDC header
POST /v1/scrape $0.03 Base USDC header
POST /v1/screenshot $0.03 Base USDC header
POST /v1/shorten $0.01 Base USDC header
POST /v1/snapshot $0.05 Base USDC header
POST /v1/summarize $0.02 Base USDC header
POST /v1/time-convert $0.01 Base USDC header
POST /v1/time-holiday $0.01 Base USDC header
POST /v1/time-now $0.01 Base USDC header
POST /v1/time-offset $0.01 Base USDC header
POST /v1/timezones $0.01 Base USDC header
POST /v1/units-convert $0.01 Base USDC header
POST /v1/web-scraper $0.03 Base USDC header
POST /v1/webhook-send $0.02 Base USDC header
POST /v1/webhook-status $0.01 Base USDC header
67 endpoints

REQUEST / RESPONSE EXAMPLE

An unpaid request to GET /paid/browser-automate returns HTTP 402 with the payment terms. Settle onchain via your facilitator, then retry with the X-Payment header.

// request
curl -i 'https://api.agishub.com/paid/browser-automate'
// 402 response (captured by monitor) · 34 payloads · click to expand
[
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/audio-speak",
      "mimeType": "",
      "description": "Convert text into spoken audio (returned base64-encoded MP3), in several languages."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "lang": "en",
              "text": "AgisHub sells agent capabilities per call."
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Convert text into spoken audio (returned base64-encoded MP3), in several languages."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "text"
                  ],
                  "properties": {
                    "lang": {
                      "enum": [
                        "en",
                        "es",
                        "fr",
                        "zh",
                        "jp",
                        "kr"
                      ],
                      "type": "string",
                      "description": "Language of the text (default 'en')."
                    },
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The text to convert to spoken audio."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/audio-transcribe",
      "mimeType": "",
      "description": "Transcribe an audio file (given by public URL) to text. Handles mp3, wav, m4a, ogg and more."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "audio_url": "https://github.com/ggerganov/whisper.cpp/raw/master/samples/jfk.wav"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Transcribe an audio file (given by public URL) to text. Handles mp3, wav, m4a, ogg and more."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "audio_url"
                  ],
                  "properties": {
                    "audio_url": {
                      "type": "string",
                      "format": "uri",
                      "description": "Public URL of an audio file (mp3, wav, m4a, ogg, ...) to transcribe to text."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "100000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/browser-automate",
      "mimeType": "",
      "description": "Drive a headless browser: open a URL and run an ordered list of steps — click, type, press keys, wait, extract text and screenshot. For flows the plain scraper can't reach (logins, forms, multi-step pages)."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://example.com",
              "steps": [
                {
                  "ms": 1,
                  "text": "AgisHub sells agent capabilities per call.",
                  "action": "click",
                  "selector": "h1"
                }
              ]
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Drive a headless browser: open a URL and run an ordered list of steps — click, type, press keys, wait, extract text and "
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "Starting URL to open in a headless browser."
                    },
                    "steps": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "action"
                        ],
                        "properties": {
                          "ms": {
                            "type": "integer",
                            "maximum": 10000,
                            "minimum": 0,
                            "description": "Milliseconds to wait (wait, when no selector given)."
                          },
                          "text": {
                            "type": "string",
                            "description": "Text to type (type), or key to press (press, e.g. 'Enter')."
                          },
                          "action": {
                            "enum": [
                              "click",
                              "type",
                              "press",
                              "wait",
                              "extract_text",
                              "screenshot"
                            ],
                            "type": "string",
                            "description": "What to do."
                          },
                          "selector": {
                            "type": "string",
                            "description": "CSS selector (for click/type/wait-for/extract_text)."
                          }
                        },
                        "additionalProperties": false
                      },
                      "maxItems": 20,
                      "description": "Ordered actions to perform after the page loads."
                    },
                    "screenshot": {
                      "type": "boolean",
                      "description": "Also return a final full-page PNG screenshot (base64)."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "20000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/chat",
      "mimeType": "",
      "description": "Ask a general-purpose LLM a question or give it an instruction, with an optional system prompt. No external API key required."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "prompt": "What is the x402 protocol?",
              "system": "You are a concise assistant."
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Ask a general-purpose LLM a question or give it an instruction, with an optional system prompt. No external API key requ"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "prompt"
                  ],
                  "properties": {
                    "prompt": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The user's message or question for the assistant."
                    },
                    "system": {
                      "type": "string",
                      "description": "Optional system instruction to steer the assistant's behaviour/persona."
                    },
                    "max_tokens": {
                      "type": "integer",
                      "maximum": 2048,
                      "minimum": 0,
                      "description": "Maximum tokens to generate (default 512).",
                      "exclusiveMinimum": true
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "20000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/classify",
      "mimeType": "",
      "description": "Classify a text into exactly one of the candidate labels you provide (e.g. sentiment, topic, intent)."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "text": "AgisHub sells agent capabilities per call.",
              "labels": [
                "positive",
                "negative"
              ]
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Classify a text into exactly one of the candidate labels you provide (e.g. sentiment, topic, intent)."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "text",
                    "labels"
                  ],
                  "properties": {
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The text to classify."
                    },
                    "labels": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1
                      },
                      "maxItems": 20,
                      "minItems": 2,
                      "description": "Candidate labels to choose from, e.g. ['positive','negative','neutral']."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "100000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/crawl",
      "mimeType": "",
      "description": "Crawl multiple pages of a site, respecting link depth and domain limits. Returns async job_id; results include markdown or HTML per page. Use it to fetch and process many pages of content at once."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://example.com",
              "limit": 5
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Crawl multiple pages of a site, respecting link depth and domain limits. Returns async job_id; results include markdown "
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "Root domain URL to crawl (e.g., https://example.com)."
                    },
                    "limit": {
                      "type": "integer",
                      "maximum": 100,
                      "minimum": 0,
                      "description": "Maximum pages to crawl (default 100, max 100 per call). Returns 202 with job_id for async processing. For larger sites, issue several calls: each one is priced the same, so 1.000 pages cost ten calls.",
                      "exclusiveMinimum": true
                    },
                    "formats": {
                      "type": "array",
                      "items": {
                        "enum": [
                          "markdown",
                          "html"
                        ],
                        "type": "string"
                      },
                      "description": "Output formats per page (default ['markdown']). 'html' adds raw HTML."
                    },
                    "max_depth": {
                      "type": "integer",
                      "maximum": 10,
                      "minimum": 0,
                      "description": "Maximum link depth from root (default 2, max 10). Depth 0 = root only, depth 1 = root + direct children.",
                      "exclusiveMinimum": true
                    },
                    "same_domain": {
                      "type": "boolean",
                      "description": "Only crawl URLs on the same domain (default true). Subdomain links are excluded when false."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/crawl-map",
      "mimeType": "",
      "description": "Discover all URLs reachable from a domain within a link depth limit. Returns a flat list of absolute URLs, respects robots.txt crawl delays. Use it to map a site's structure before crawling."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://example.com",
              "limit": 5
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Discover all URLs reachable from a domain within a link depth limit. Returns a flat list of absolute URLs, respects robo"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "Root domain URL to map (e.g., https://example.com)."
                    },
                    "limit": {
                      "type": "integer",
                      "maximum": 200,
                      "minimum": 0,
                      "description": "Maximum URLs to return (default 100, max 200 per call). Respects robots.txt crawl-delay.",
                      "exclusiveMinimum": true
                    },
                    "search": {
                      "type": "string",
                      "description": "Optional regex or plain string to filter results (case-insensitive)."
                    },
                    "include_subdomains": {
                      "type": "boolean",
                      "description": "Include URLs from subdomains (default false, same domain only)."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/crypto-price",
      "mimeType": "",
      "description": "Get live USD spot prices for one or more cryptocurrencies by ticker symbol (e.g. BTC, ETH, SOL)."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "symbols": "BTC,ETH"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Get live USD spot prices for one or more cryptocurrencies by ticker symbol (e.g. BTC, ETH, SOL)."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "symbols"
                  ],
                  "properties": {
                    "symbols": {
                      "type": "string",
                      "description": "Comma-separated ticker symbols, e.g. 'BTC,ETH,SOL'. Prices are returned in USD."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/currency-convert",
      "mimeType": "",
      "description": "Convert an amount between currencies using live daily exchange rates (ISO 4217 codes, e.g. USD, EUR, GBP, JPY). Returns the converted amount and the rate used."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "to": "EUR",
              "from": "USD",
              "amount": 1
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Convert an amount between currencies using live daily exchange rates (ISO 4217 codes, e.g. USD, EUR, GBP, JPY). Returns "
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "amount",
                    "from",
                    "to"
                  ],
                  "properties": {
                    "to": {
                      "type": "string",
                      "maxLength": 3,
                      "minLength": 3,
                      "description": "Target currency ISO 4217 code, e.g. 'EUR', 'JPY'."
                    },
                    "from": {
                      "type": "string",
                      "maxLength": 3,
                      "minLength": 3,
                      "description": "Source currency ISO 4217 code, e.g. 'USD', 'EUR'."
                    },
                    "amount": {
                      "type": "number",
                      "description": "The amount of money to convert."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/date-calculate",
      "mimeType": "",
      "description": "Timezone-aware date arithmetic: add or subtract a duration to a datetime (days are calendar-based and DST-safe; hours and minutes are absolute), or compute the difference between two datetimes that may be in different zones."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "datetime": "2026-12-25",
              "timezone": "Europe/Madrid",
              "operation": {
                "type": "add",
                "unit": "seconds",
                "amount": 1,
                "to_datetime": "2026-12-25",
                "to_timezone": "Europe/Madrid"
              }
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Timezone-aware date arithmetic: add or subtract a duration to a datetime (days are calendar-based and DST-safe; hours an"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "datetime",
                    "timezone",
                    "operation"
                  ],
                  "properties": {
                    "datetime": {
                      "type": "string",
                      "description": "Base datetime: ISO 8601 or natural language."
                    },
                    "timezone": {
                      "type": "string",
                      "description": "IANA timezone the base datetime is in."
                    },
                    "operation": {
                      "type": "object",
                      "required": [
                        "type"
                      ],
                      "properties": {
                        "type": {
                          "enum": [
                            "add",
                            "diff"
                          ],
                          "type": "string",
                          "description": "'add' to shift the datetime by a duration, or 'diff' to measure the gap between two datetimes."
                        },
                        "unit": {
                          "enum": [
                            "seconds",
                            "minutes",
                            "hours",
                            "days",
                            "weeks"
                          ],
                          "type": "string",
                          "description": "For type 'add': one of seconds, minutes, hours, days, weeks."
                        },
                        "amount": {
                          "type": "number",
                          "description": "For type 'add': how much to shift. Use a negative number to subtract."
                        },
                        "to_datetime": {
                          "type": "string",
                          "description": "For type 'diff': the second datetime (ISO 8601 or natural language)."
                        },
                        "to_timezone": {
                          "type": "string",
                          "description": "For type 'diff': the IANA timezone of to_datetime (defaults to the base timezone)."
                        }
                      },
                      "description": "What to compute: { type:'add', amount, unit } to add/subtract a duration, or { type:'diff', to_datetime, to_timezone? } for the difference between two datetimes.",
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/embed",
      "mimeType": "",
      "description": "Turn text into a numeric embedding vector for semantic search, RAG and similarity. Multilingual."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "text": "AgisHub sells agent capabilities per call."
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Turn text into a numeric embedding vector for semantic search, RAG and similarity. Multilingual."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "text"
                  ],
                  "properties": {
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Text to embed into a numeric vector for semantic search / RAG."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "20000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/extract",
      "mimeType": "",
      "description": "Extract named entities from text — people, organizations, locations, dates and miscellaneous — returned as structured JSON."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "text": "AgisHub sells agent capabilities per call."
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Extract named entities from text — people, organizations, locations, dates and miscellaneous — returned as structured JS"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "text"
                  ],
                  "properties": {
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The text to extract named entities from."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/extract-structured",
      "mimeType": "",
      "description": "AI-powered structured extraction: give a URL plus a natural-language prompt and/or a JSON Schema, and get back clean structured JSON (e.g. product name, price, rating). Renders the page in a headless browser first, so it works on SPAs."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://example.com",
              "prompt": "What is the x402 protocol?"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "AI-powered structured extraction: give a URL plus a natural-language prompt and/or a JSON Schema, and get back clean str"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "Full http/https URL of the page to extract data from."
                    },
                    "prompt": {
                      "type": "string",
                      "description": "Natural-language instruction of what to extract, e.g. 'the product name, price and rating'. Provide this and/or a schema."
                    },
                    "schema": {
                      "type": "object",
                      "description": "Optional JSON Schema object describing the exact shape of the data to return. When given, the output is constrained to it.",
                      "additionalProperties": {}
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "100000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/generate-image",
      "mimeType": "",
      "description": "Generate an image from a text prompt (returned base64-encoded PNG)."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "steps": 8,
              "prompt": "What is the x402 protocol?"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Generate an image from a text prompt (returned base64-encoded PNG)."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "prompt"
                  ],
                  "properties": {
                    "steps": {
                      "type": "integer",
                      "maximum": 8,
                      "minimum": 1,
                      "description": "Diffusion steps (1-8, default 4). More = higher quality but slower."
                    },
                    "prompt": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Text description of the image to generate."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "30000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/links",
      "mimeType": "",
      "description": "Return every hyperlink on a JavaScript-rendered page as a list of absolute URLs, with options to keep only visible links or only same-site links. Backed by a headless browser. Use it to map a site or seed a crawler."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://example.com",
              "visible_only": true
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Return every hyperlink on a JavaScript-rendered page as a list of absolute URLs, with options to keep only visible links"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "Full http/https URL of the page to read links from."
                    },
                    "visible_only": {
                      "type": "boolean",
                      "description": "Return only links visible in the rendered layout (default false)."
                    },
                    "exclude_external": {
                      "type": "boolean",
                      "description": "Drop links pointing to other domains, keeping only same-site links (default false)."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "100000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/meeting-slots",
      "mimeType": "",
      "description": "Find working-hour time slots that overlap across participants in different timezones for a meeting of a given duration, excluding weekends and (when a country is given per participant) that person's public holidays."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "duration": 30,
              "date_range": {
                "end": "2026-12-31",
                "start": "2026-12-25"
              },
              "participants": [
                {
                  "country": "ES",
                  "timezone": "Europe/Madrid",
                  "working_hours": {
                    "end": "17:00",
                    "start": "09:00"
                  }
                }
              ]
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Find working-hour time slots that overlap across participants in different timezones for a meeting of a given duration, "
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "participants",
                    "duration",
                    "date_range"
                  ],
                  "properties": {
                    "duration": {
                      "type": "number",
                      "description": "Meeting duration in minutes."
                    },
                    "date_range": {
                      "type": "object",
                      "required": [
                        "start",
                        "end"
                      ],
                      "properties": {
                        "end": {
                          "type": "string",
                          "description": "Last date to search \"YYYY-MM-DD\"."
                        },
                        "start": {
                          "type": "string",
                          "description": "First date to search \"YYYY-MM-DD\"."
                        }
                      },
                      "description": "Inclusive date window to search, e.g. { \"start\":\"2026-07-13\", \"end\":\"2026-07-17\" }.",
                      "additionalProperties": false
                    },
                    "participants": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "timezone"
                        ],
                        "properties": {
                          "country": {
                            "type": "string",
                            "description": "ISO 3166-1 alpha-2 code (e.g. 'US', 'ES') to exclude that person's public holidays."
                          },
                          "timezone": {
                            "type": "string",
                            "description": "Participant's IANA timezone, e.g. 'Europe/Madrid'."
                          },
                          "working_hours": {
                            "type": "object",
                            "required": [
                              "start",
                              "end"
                            ],
                            "properties": {
                              "end": {
                                "type": "string",
                                "description": "Local end time \"HH:mm\" (24h), e.g. \"17:00\"."
                              },
                              "start": {
                                "type": "string",
                                "description": "Local start time \"HH:mm\" (24h), e.g. \"09:00\"."
                              }
                            },
                            "description": "This participant's local working hours. Defaults to 09:00-17:00.",
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "minItems": 1,
                      "description": "The people to meet. Each participant is { timezone (IANA, required), working_hours? { start, end }, country? (ISO alpha-2) }."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/memory-search",
      "mimeType": "",
      "description": "Semantically search a memory collection (namespace) and return the most relevant stored entries. The retrieval half of RAG."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "query": "What is the x402 protocol?",
              "namespace": "demo"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Semantically search a memory collection (namespace) and return the most relevant stored entries. The retrieval half of R"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "namespace",
                    "query"
                  ],
                  "properties": {
                    "query": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Natural-language query; returns the most semantically similar stored entries."
                    },
                    "top_k": {
                      "type": "integer",
                      "maximum": 20,
                      "minimum": 1,
                      "description": "How many results to return (default 5)."
                    },
                    "namespace": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The namespace to search within (the same key used on upsert)."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/memory-store",
      "mimeType": "",
      "description": "Store a piece of text in a persistent, searchable memory collection (namespace). Embedded and indexed for later semantic recall."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "text": "AgisHub sells agent capabilities per call.",
              "namespace": "demo"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Store a piece of text in a persistent, searchable memory collection (namespace). Embedded and indexed for later semantic"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "namespace",
                    "text"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Optional stable id to update an existing entry; auto-generated if omitted."
                    },
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The text/content to store and make searchable."
                    },
                    "namespace": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Your collection key — groups and isolates your memories. Treat it like a secret: anyone with it can read/write this collection."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/pdf",
      "mimeType": "",
      "description": "Render a public URL or a raw HTML string into a PDF document, returned base64-encoded. Backed by a headless browser. Use for invoices, reports, receipts and any HTML-to-PDF need."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://example.com"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Render a public URL or a raw HTML string into a PDF document, returned base64-encoded. Backed by a headless browser. Use"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "Public http/https URL to render to PDF. Provide this OR html."
                    },
                    "html": {
                      "type": "string",
                      "description": "Raw HTML string to render to PDF. Provide this OR url."
                    },
                    "format": {
                      "enum": [
                        "A4",
                        "Letter",
                        "Legal",
                        "A3",
                        "A5",
                        "Tabloid"
                      ],
                      "type": "string",
                      "description": "Paper size (default A4)."
                    },
                    "landscape": {
                      "type": "boolean",
                      "description": "Landscape orientation (default false = portrait)."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/qr-generate",
      "mimeType": "",
      "description": "Generate a QR code for any text or URL. Returns an inline SVG plus a data URI, with selectable size, quiet-zone margin and error-correction level."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "size": 8,
              "text": "AgisHub sells agent capabilities per call."
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Generate a QR code for any text or URL. Returns an inline SVG plus a data URI, with selectable size, quiet-zone margin a"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "text"
                  ],
                  "properties": {
                    "size": {
                      "type": "integer",
                      "maximum": 40,
                      "minimum": 0,
                      "description": "Pixel size of each QR module/cell in the SVG (default 6).",
                      "exclusiveMinimum": true
                    },
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Text or URL to encode in the QR code."
                    },
                    "margin": {
                      "type": "integer",
                      "maximum": 20,
                      "minimum": 0,
                      "description": "Quiet-zone margin around the code, in cells (default 4)."
                    },
                    "ec_level": {
                      "enum": [
                        "L",
                        "M",
                        "Q",
                        "H"
                      ],
                      "type": "string",
                      "description": "Error-correction level: L(7%), M(15%), Q(25%), H(30%). Default M."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "30000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/scrape",
      "mimeType": "",
      "description": "Extract specific elements from a JavaScript-rendered page by CSS selector. Give a list of selectors (e.g. 'h1', '.price', 'a.product') and get back the text and attributes of every match. Backed by a headless browser, so it works on SPAs and JS-heavy pages."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://example.com",
              "selectors": [
                "h1"
              ]
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Extract specific elements from a JavaScript-rendered page by CSS selector. Give a list of selectors (e.g. 'h1', '.price'"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "url",
                    "selectors"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "Full http/https URL of the page to scrape."
                    },
                    "selectors": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "minLength": 1
                      },
                      "maxItems": 20,
                      "minItems": 1,
                      "description": "CSS selectors to extract, e.g. ['h1', 'a.product', '.price']. Returns the text and attributes of every match per selector."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "30000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/screenshot",
      "mimeType": "",
      "description": "Capture a PNG screenshot of any public URL — full page or just the viewport, at a chosen size — returned base64-encoded. Backed by a headless browser."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://example.com",
              "full_page": true
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Capture a PNG screenshot of any public URL — full page or just the viewport, at a chosen size — returned base64-encoded."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "Public http/https URL to capture."
                    },
                    "width": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Viewport width in pixels (default 1280).",
                      "exclusiveMinimum": true
                    },
                    "height": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Viewport height in pixels (default 800).",
                      "exclusiveMinimum": true
                    },
                    "full_page": {
                      "type": "boolean",
                      "description": "Capture the entire scrollable page instead of just the viewport (default false)."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/shorten",
      "mimeType": "",
      "description": "Shorten a long URL into a compact api.agishub.com/s/<code> link that redirects to the original. Codes are stored for a year."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://example.com"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Shorten a long URL into a compact api.agishub.com/s/<code> link that redirects to the original. Codes are stored for a y"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "The long http/https URL to shorten."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "50000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/snapshot",
      "mimeType": "",
      "description": "Capture several representations of a page in one call — rendered HTML plus a PNG screenshot by default, and optionally Markdown and the accessibility tree. Backed by a headless browser. Saves round-trips when an agent needs both the content and a visual of a page."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://example.com",
              "formats": [
                "html"
              ]
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Capture several representations of a page in one call — rendered HTML plus a PNG screenshot by default, and optionally M"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "Full http/https URL to capture."
                    },
                    "width": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Viewport width in pixels (default 1280).",
                      "exclusiveMinimum": true
                    },
                    "height": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Viewport height in pixels (default 800).",
                      "exclusiveMinimum": true
                    },
                    "formats": {
                      "type": "array",
                      "items": {
                        "enum": [
                          "html",
                          "screenshot",
                          "markdown",
                          "accessibilityTree"
                        ],
                        "type": "string"
                      },
                      "description": "Which representations to return (default ['html','screenshot']). Add 'markdown' and/or 'accessibilityTree' as needed."
                    },
                    "full_page": {
                      "type": "boolean",
                      "description": "Capture the full scrollable page in the screenshot instead of just the viewport (default false)."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "20000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/summarize",
      "mimeType": "",
      "description": "Summarize a block of text into a short abstract, with an optional target length. No external API key required."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "text": "AgisHub sells agent capabilities per call.",
              "max_words": 60
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Summarize a block of text into a short abstract, with an optional target length. No external API key required."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "text"
                  ],
                  "properties": {
                    "text": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The text to summarize."
                    },
                    "max_words": {
                      "type": "integer",
                      "maximum": 400,
                      "minimum": 0,
                      "description": "Approximate maximum length of the summary, in words (default ~80).",
                      "exclusiveMinimum": true
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/time-convert",
      "mimeType": "",
      "description": "Convert a specific date/time from one IANA timezone to another (single or batch). Accepts ISO 8601 or natural language ('next Tuesday 3pm'). Returns the converted datetime with UTC offset, zone abbreviation and DST flag."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "to": "America/New_York",
              "from": "Europe/Madrid",
              "datetime": "2026-12-25"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Convert a specific date/time from one IANA timezone to another (single or batch). Accepts ISO 8601 or natural language ("
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "datetime",
                    "from",
                    "to"
                  ],
                  "properties": {
                    "to": {
                      "type": "string",
                      "description": "Target IANA timezone."
                    },
                    "from": {
                      "type": "string",
                      "description": "Source IANA timezone."
                    },
                    "datetime": {
                      "type": "string",
                      "description": "ISO 8601 or natural language, e.g. \"2026-07-09T15:30\" or \"next Tuesday 3pm\"."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/time-holiday",
      "mimeType": "",
      "description": "Check whether a given date is a public holiday in a country (identified by its ISO 3166-1 alpha-2 code), and return the holiday name if so. Backed by an authoritative public-holiday dataset."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "date": "2026-12-25",
              "country_code": "ES"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Check whether a given date is a public holiday in a country (identified by its ISO 3166-1 alpha-2 code), and return the "
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "date",
                    "country_code"
                  ],
                  "properties": {
                    "date": {
                      "type": "string",
                      "description": "Date \"YYYY-MM-DD\"."
                    },
                    "country_code": {
                      "type": "string",
                      "description": "ISO country code, e.g. \"US\", \"ES\", \"IN\"."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/time-now",
      "mimeType": "",
      "description": "Get the current local time in an IANA timezone, including the UTC offset, zone abbreviation and whether DST is in effect. Use whenever you need to know what time it is 'now' somewhere."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "timezone": "Europe/Madrid"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Get the current local time in an IANA timezone, including the UTC offset, zone abbreviation and whether DST is in effect"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "timezone"
                  ],
                  "properties": {
                    "timezone": {
                      "type": "string",
                      "description": "IANA timezone, e.g. 'Europe/Madrid', 'Asia/Kolkata'."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/time-offset",
      "mimeType": "",
      "description": "Get the exact UTC offset of an IANA timezone at a given instant, DST-aware. Correctly handles fractional offsets such as India +05:30 and Nepal +05:45."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "instant": "2026-12-25T10:00:00Z",
              "timezone": "Europe/Madrid"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Get the exact UTC offset of an IANA timezone at a given instant, DST-aware. Correctly handles fractional offsets such as"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "timezone"
                  ],
                  "properties": {
                    "instant": {
                      "type": "string",
                      "description": "ISO 8601 or natural language. Defaults to now."
                    },
                    "timezone": {
                      "type": "string",
                      "description": "IANA timezone."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/timezones",
      "mimeType": "",
      "description": "List or search valid IANA timezone identifiers by city/region/country, and resolve a city/country name to its timezone(s). Use it to discover the exact identifier to pass to the other tools."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "query": "Madrid"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "List or search valid IANA timezone identifiers by city/region/country, and resolve a city/country name to its timezone(s"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "properties": {
                    "query": {
                      "type": "string",
                      "description": "Case-insensitive substring filter."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/units-convert",
      "mimeType": "",
      "description": "Convert a value between units of the same category: length, mass, volume, speed, area, digital storage, time, and temperature (Celsius/Fahrenheit/Kelvin)."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "to": "mi",
              "from": "km",
              "value": 1
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Convert a value between units of the same category: length, mass, volume, speed, area, digital storage, time, and temper"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "value",
                    "from",
                    "to"
                  ],
                  "properties": {
                    "to": {
                      "type": "string",
                      "description": "Target unit in the SAME category as 'from', e.g. 'mi', 'km', 'lb', 'F'."
                    },
                    "from": {
                      "type": "string",
                      "description": "Source unit, e.g. 'km', 'mi', 'kg', 'lb', 'C', 'F', 'GB', 'm/s'."
                    },
                    "value": {
                      "type": "number",
                      "description": "The numeric value to convert."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "30000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/web-scraper",
      "mimeType": "",
      "description": "Fetch any public web page and return its main content as clean, token-efficient Markdown (title, description, headings, links, lists). Set render:true to execute JavaScript first for single-page apps or JS-heavy pages that would otherwise come back empty. Built for RAG and for agents that need to read the contents of a URL."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://example.com",
              "render": true
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Fetch any public web page and return its main content as clean, token-efficient Markdown (title, description, headings, "
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "Full http/https URL of the page to extract."
                    },
                    "render": {
                      "type": "boolean",
                      "description": "Render JavaScript with a headless browser before extracting (default false). Enable for SPAs / JS-heavy pages that return empty content otherwise. Slower."
                    },
                    "max_chars": {
                      "type": "integer",
                      "minimum": 0,
                      "description": "Truncate the markdown to at most this many characters (sets truncated:true).",
                      "exclusiveMinimum": true
                    },
                    "include_links": {
                      "type": "boolean",
                      "description": "Keep hyperlinks in the markdown output (default true)."
                    },
                    "include_images": {
                      "type": "boolean",
                      "description": "Keep images as markdown (default false)."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "20000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/webhook-send",
      "mimeType": "",
      "description": "Deliver a webhook (POST/PUT/PATCH a JSON payload to a URL) with guaranteed, retried delivery. Returns immediately with a job_id; AgisHub keeps retrying in the background until it succeeds."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://example.com",
              "payload": "{\"event\":\"demo\",\"ok\":true}"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Deliver a webhook (POST/PUT/PATCH a JSON payload to a URL) with guaranteed, retried delivery. Returns immediately with a"
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "url"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri",
                      "description": "Public http/https URL to deliver the webhook to."
                    },
                    "method": {
                      "enum": [
                        "POST",
                        "PUT",
                        "PATCH"
                      ],
                      "type": "string",
                      "description": "HTTP method (default POST)."
                    },
                    "headers": {
                      "type": "object",
                      "description": "Optional extra request headers, e.g. an auth token.",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "payload": {
                      "description": "JSON body to POST to the target (object, array, string or number)."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x23Fc725e8EAa1c58900C6507Ba89be99a6DFc75d",
        "amount": "10000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.agishub.com/v1/webhook-status",
      "mimeType": "",
      "description": "Check the delivery status of a webhook job (queued / retrying / delivered / failed) by its job_id."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "job_id": "job_01HZX3K2QW"
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "result": "Check the delivery status of a webhook job (queued / retrying / delivered / failed) by its job_id."
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input",
            "output"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "type": "object",
                  "required": [
                    "job_id"
                  ],
                  "properties": {
                    "job_id": {
                      "type": "string",
                      "description": "The job_id returned by webhook_relay."
                    }
                  },
                  "additionalProperties": false
                },
                "type": {
                  "enum": [
                    "http"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type",
                "example"
              ],
              "properties": {
                "type": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              },
              "additionalProperties": false
            }
          }
        }
      }
    },
    "x402Version": 2
  }
]

OVER TIME

All charts use the 30d selector; each series spans only the dates it has data for. Every series is also served as JSON at /api/v1/services/agishub/price, /scores, /volume and /buyers. On-chain volume and distinct buyers are measured over the service's settlement address and are a conservative undercount (only settlements that reach a measured facilitator are counted). The on-chain series roll up hourly, so the latest day can be up to about an hour behind; distinct buyers are counted per payout address, so a service that settles to more than one address is an upper bound.

UPTIME
08-31 · uptime 61.9% · 102ms avg09-01 · uptime 0.0%09-02 · uptime 0.0%09-03 · uptime 0.0%09-04 · uptime 0.0%09-05 · uptime 0.0%09-06 · uptime 0.0%09-07 · uptime 0.0%09-08 · uptime 90.5% · 185ms avg09-09 · uptime 0.0%09-10 · uptime 0.0%09-11 · uptime 0.0%09-12 · uptime 0.0%09-13 · uptime 0.0%09-14 · uptime 0.0%09-20 · uptime 82.3% · 78ms avg09-21 · uptime 0.0%09-22 · uptime 0.0%09-23 · uptime 0.0%09-24 · uptime 0.0%09-25 · uptime 0.0%09-26 · uptime 0.0%09-27 · uptime 0.0%09-28 · uptime 0.0%08-31 · uptime 61.9% · 102ms avg09-01 · uptime 0.0%09-02 · uptime 0.0%09-03 · uptime 0.0%09-04 · uptime 0.0%09-05 · uptime 0.0%09-06 · uptime 0.0%09-07 · uptime 0.0%09-08 · uptime 90.5% · 185ms avg09-09 · uptime 0.0%09-10 · uptime 0.0%09-11 · uptime 0.0%09-12 · uptime 0.0%09-13 · uptime 0.0%09-14 · uptime 0.0%09-15 · uptime 100.0% · 485ms avg09-16 · uptime 100.0% · 506ms avg09-17 · uptime 100.0% · 529ms avg09-18 · uptime 100.0% · 443ms avg09-19 · uptime 100.0% · 356ms avg09-20 · uptime 82.3% · 78ms avg09-21 · uptime 0.0%09-22 · uptime 0.0%09-23 · uptime 0.0%09-24 · uptime 0.0%09-25 · uptime 0.0%09-26 · uptime 0.0%09-27 · uptime 0.0%09-28 · uptime 0.0%08-3109-28
30D UPTIME 83.8%
RESPONSE TIME
08-31 · 102ms avg08-31 · 102ms avg09-01 · 0ms avg09-01 · 0ms avg09-02 · 0ms avg09-02 · 0ms avg09-03 · 0ms avg09-03 · 0ms avg09-04 · 0ms avg09-04 · 0ms avg09-05 · 0ms avg09-05 · 0ms avg09-06 · 0ms avg09-06 · 0ms avg09-07 · 0ms avg09-07 · 0ms avg09-08 · 185ms avg09-08 · 185ms avg09-09 · 0ms avg09-09 · 0ms avg09-10 · 0ms avg09-10 · 0ms avg09-11 · 0ms avg09-11 · 0ms avg09-12 · 0ms avg09-12 · 0ms avg09-13 · 0ms avg09-13 · 0ms avg09-14 · 0ms avg09-14 · 0ms avg09-15 · 485ms avg09-15 · 485ms avg09-16 · 506ms avg09-16 · 506ms avg09-17 · 529ms avg09-17 · 529ms avg09-18 · 443ms avg09-18 · 443ms avg09-19 · 356ms avg09-19 · 356ms avg09-20 · 78ms avg09-20 · 78ms avg09-21 · 0ms avg09-21 · 0ms avg09-22 · 0ms avg09-22 · 0ms avg09-23 · 0ms avg09-23 · 0ms avg09-24 · 0ms avg09-24 · 0ms avg09-25 · 0ms avg09-25 · 0ms avg09-26 · 0ms avg09-26 · 0ms avg09-27 · 0ms avg09-27 · 0ms avg09-28 · 0ms avg09-28 · 0ms avg08-3109-28
AVG RESP 386ms
PRICE (captured 402, USD)
08-31 · $0.00209-08 · $0.0109-15 · $0.0109-29 · $0.01$0.0108-3109-29

Median across 67 endpoints. Use the selector to isolate one.

SUB-SCORES (uptime + x402 compliance)
08-31 uptime: 65.0% compliance: 100% checks09-01 uptime: 52.0% compliance: 100% checks09-02 uptime: 44.8% compliance: 100% checks09-03 uptime: 38.2% compliance: 100% checks09-04 uptime: 34.2% compliance: 100% checks09-05 uptime: 31.0% compliance: 100% checks09-06 uptime: 28.3% compliance: 100% checks09-07 uptime: 26.0% compliance: 100% checks09-08 uptime: 68.5% compliance: 100% checks09-09 uptime: 64.0% compliance: 100% checks09-10 uptime: 62.7% compliance: 100% checks09-11 uptime: 61.0% compliance: 100% checks09-12 uptime: 58.9% compliance: 100% checks09-13 uptime: 57.4% compliance: 100% checks09-14 uptime: 56.0% compliance: 100% checks09-15 uptime: 70.3% compliance: 100% checks09-16 uptime: 78.7% compliance: 100% checks09-17 uptime: 83.3% compliance: 100% checks09-18 uptime: 86.3% compliance: 100% checks09-19 uptime: 87.9% compliance: 100% checks09-20 uptime: 88.1% compliance: 100% checks09-21 uptime: 87.5% compliance: 100% checks09-22 uptime: 86.9% compliance: 100% checks09-23 uptime: 86.4% compliance: 100% checks09-24 uptime: 85.9% compliance: 100% checks09-25 uptime: 85.4% compliance: 100% checks09-26 uptime: 84.9% compliance: 100% checks09-27 uptime: 84.4% compliance: 100% checks09-28 uptime: 84.1% compliance: 100% checks09-29 uptime: 84.0% compliance: 100% checksuptimecompliance08-3109-29

checklist grew 11->14 on 2026-07-28; a step here is a metric change, not a regression

PILLARS OVER TIME (measured)

Measured site and economics pillars from the assessment history, so the latest value shown elsewhere on this page reads as a point on a trend rather than a permanent state.

VOLUME (on-chain settlement, USD)
09-01 · $0.0609-02 · $0.0009-07 · $0.9709-08 · $109-09 · $0.0509-11 · $0.2009-14 · $0.0109-17 · $0.0209-19 · $0.2009-27 · $0.00peak $109-0109-27
DISTINCT BUYERS
09-01 · 1 buyer09-02 · 1 buyer09-07 · 1 buyer09-08 · 1 buyer09-09 · 1 buyer09-11 · 1 buyer09-14 · 1 buyer09-17 · 2 buyers09-19 · 1 buyer09-27 · 1 buyerpeak 2 buyers09-0109-27

COMPLIANCE

13/13 checks pass · grade A · stale (probe failing)

last 402 captured 2026-09-15 · last up 2026-09-20

  • 402 payload captured
  • accepts[] array present
  • payTo address recoverable
  • payTo at accepts[0].payTo (conformant shape)
  • payTo is a valid on-chain address
  • atomic price declared
  • atomic price in a sane range
  • asset (token) address declared
  • network resolves to CAIP-2
  • payment scheme declared
  • served over HTTPS
  • declares the current x402 version (2)
  • EIP-712 domain parameters present on every EVM entry
  • x402 v2 envelope delivered in the payment-required header

SITE PILLARS

  • homepage reachable
  • openapi doc
  • pricing page
  • llms.txt
  • robots.txt
  • terms page
recent checks (18) live · click to expand
TIME STATUS RESP CAUSE
○ DOWN 251ms bad_status: unexpected HTTP 410
○ DOWN 42ms bad_status: unexpected HTTP 410
○ DOWN 57ms bad_status: unexpected HTTP 410
○ DOWN 41ms bad_status: unexpected HTTP 410
○ DOWN 53ms bad_status: unexpected HTTP 410
○ DOWN 205ms bad_status: unexpected HTTP 410
○ DOWN 54ms bad_status: unexpected HTTP 410
○ DOWN 55ms bad_status: unexpected HTTP 410
○ DOWN 146ms bad_status: unexpected HTTP 410
○ DOWN 133ms bad_status: unexpected HTTP 410
○ DOWN 124ms bad_status: unexpected HTTP 410
○ DOWN 201ms bad_status: unexpected HTTP 410
○ DOWN 38ms bad_status: unexpected HTTP 410
○ DOWN 53ms bad_status: unexpected HTTP 410
○ DOWN 51ms bad_status: unexpected HTTP 410
○ DOWN 56ms bad_status: unexpected HTTP 410
○ DOWN 35ms bad_status: unexpected HTTP 410
○ DOWN 87ms bad_status: unexpected HTTP 410

EMBED THIS BADGE

Show that AgisHub is monitored on x402-list. Paste this on your site or README, it links back to this live listing.

AgisHub listed on x402-list
status
AgisHub uptime on x402-list
live uptime
// HTML
<a href="https://x402-list.com/services/agishub?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/agishub.svg" alt="AgisHub listed on x402-list" height="28">
</a>
// Markdown
[![AgisHub on x402-list](https://x402-list.com/badge/agishub.svg)](https://x402-list.com/services/agishub?utm_source=badge&utm_medium=referral&utm_campaign=embed)
// HTML · live uptime variant
<a href="https://x402-list.com/services/agishub?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/agishub.svg?data=uptime" alt="AgisHub uptime on x402-list" height="28">
</a>

RUN THIS SERVICE?

Keep this listing accurate: propose changes to the name, description, website, category or add new endpoints to monitor. Ownership is verified with a domain proof and every change is reviewed manually; measured data stays read-only.

[ update this listing ]

Earn the verified tier: x402list pays a real call to this endpoint and, if it delivers, the service is delivery-verified. The fee covers the cost of the probe, not the badge; there is no refund if the call does not deliver. Agent and API only, no in-browser signing. See /api.

[ verify this service ($0.25) ]

To request delisting, email info@x402-list.com or update your listing at /services/agishub/update.