{
 "openapi": "3.1.0",
 "info": {
  "title": "Top 100,000 websites census",
  "version": "2026-09-30",
  "summary": "Of the top 99,993 Tranco domains, 78,997 answered over HTTPS; 8.9% publish a security.txt; 7,305 block GPTBot and 6,404 block ClaudeBot; 8,873 publish an llms.txt and 58 an A2A agent card. Fetched 2026-09-30.",
  "description": "The 99,993 highest-ranked domains in the Tranco list (list pulled 2026-09-29) were fetched once over HTTPS on 2026-09-30, with robots.txt, security.txt (both locations), llms.txt and the A2A agent card. 78,997 answered with a website. Lists and lookup pages are ordered by Tranco rank. Free: every record, feed, badge, aggregate and the first 50 rows of every gap list. Paid with x402 (USDC on Base, no account or key): 14 operations; an unpaid request answers 402 with the terms, pay and resend with X-PAYMENT. Prices here equal the amounts in the 402 challenges and in /.well-known/x402.",
  "termsOfService": "https://top100k.agentexchange.work/terms",
  "contact": {
   "name": "Agent Exchange",
   "url": "https://agentexchange.work"
  },
  "license": {
   "name": "CC BY 4.0",
   "url": "https://creativecommons.org/licenses/by/4.0/"
  },
  "x-payment": {
   "protocol": "x402",
   "versions": [
    1,
    2
   ],
   "network": "eip155:8453",
   "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
   "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
   "facilitator": "https://facilitator.payai.network"
  },
  "x-guidance": "Read GET https://top100k.agentexchange.work/site/<domain>.json first: it lists the gap lists the domain is on and every offer with its price. Free samples before paying: /leads/<list>.top.json. Who buys the lists: vendors who sell the missing control."
 },
 "servers": [
  {
   "url": "https://top100k.agentexchange.work"
  }
 ],
 "tags": [
  {
   "name": "paid",
   "description": "x402-paid (USDC on Base)"
  },
  {
   "name": "free",
   "description": "no payment"
  }
 ],
 "paths": {
  "/site/{domain}.json": {
   "get": {
    "operationId": "domainRecord",
    "summary": "Census record of one website domain (CC BY 4.0, CORS): checks, fixes, gap_lists and offers",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "registrable domain from the census list, lower-case, no scheme"
     }
    ]
   }
  },
  "/site/{domain}.xml": {
   "get": {
    "operationId": "domainFeed",
    "summary": "Atom feed of one domain: census record plus every change found by the live re-checks",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "registrable domain from the census list, lower-case, no scheme"
     }
    ]
   }
  },
  "/site/{domain}.svg": {
   "get": {
    "operationId": "domainBadge",
    "summary": "SVG badge of the record (security.txt, accessibility statement, AI-crawler stance)",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "registrable domain from the census list, lower-case, no scheme"
     }
    ]
   }
  },
  "/site/{domain}/live.json": {
   "get": {
    "operationId": "liveRecheck",
    "summary": "Live re-check of one domain right now, diffed against the census record (0.01 USD in USDC)",
    "description": "Live re-check of one website domain right now: HTTPS, HSTS, security.txt, robots.txt verdicts for AI crawlers and assistants, llms.txt, privacy and accessibility links, diffed against the census record",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "0.010000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "10000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "parameters": [
     {
      "name": "domain",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      },
      "description": "registrable domain from the census list, lower-case, no scheme"
     }
    ],
    "responses": {
     "200": {
      "description": "{ domain, checked_at, census_record, live, changed[], payment }",
      "content": {
       "application/json": {}
      }
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     },
     "404": {
      "description": "domain not in the census"
     }
    }
   }
  },
  "/listings": {
   "get": {
    "operationId": "listings",
    "summary": "Current listings and terms (free; /listings.json for JSON)",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   },
   "post": {
    "operationId": "listUrl",
    "summary": "List one https URL on this host for 30 days (1.00 USD in USDC)",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "1.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "1000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "url",
         "name"
        ],
        "properties": {
         "url": {
          "type": "string",
          "format": "uri"
         },
         "name": {
          "type": "string",
          "maxLength": 80
         },
         "description": {
          "type": "string",
          "maxLength": 300
         },
         "payTo": {
          "type": "string"
         }
        }
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "listing created: { id, url, name, expires }"
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/leads/all.json": {
   "get": {
    "operationId": "leadsBundle",
    "summary": "All gap lists of this census in one JSON file (5.00 USD in USDC)",
    "description": "All 5 gap lists of the 2026-09-30 Top 100,000 websites census in one JSON file (21,753 rows across lists): expired-security-txt (918), blocks-assistants (2,957), blocks-gptbot (7,305), http-only (3,800), redirects-off-domain (6,773). Each list as { title, count, by_state, columns, rows[][] }. Free samples first: https://top100k.agentexchange.work/leads/<list>.top.json.",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "5.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "5000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "responses": {
     "200": {
      "description": "JSON { census, date, lists: { <slug>: { title, count, by_state, columns, rows } } }",
      "content": {
       "application/json": {}
      }
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/watch": {
   "get": {
    "operationId": "watchTerms",
    "summary": "Terms of the change webhook (free)",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   },
   "post": {
    "operationId": "createWatch",
    "summary": "Change webhook for 30 days (1.00 USD in USDC)",
    "description": "Webhook for 30 days: after each 6-hourly live re-check, POST the changes it found to your https callback. Scope: one gap list (domains that entered or left it), one domain, or every change on this census (99,993 websites). Body JSON { callback, list? , domain? }; status at https://top100k.agentexchange.work/watch/<id>.json. Free alternative: the Atom feeds.",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "1.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "1000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "required": [
         "callback"
        ],
        "properties": {
         "callback": {
          "type": "string",
          "format": "uri"
         },
         "list": {
          "type": "string",
          "enum": [
           "expired-security-txt",
           "blocks-assistants",
           "blocks-gptbot",
           "http-only",
           "redirects-off-domain"
          ]
         },
         "domain": {
          "type": "string"
         }
        }
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Watch created: { id, status_url, expires_at }"
     },
     "400": {
      "description": "Invalid callback or scope"
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/watch/{id}.json": {
   "get": {
    "operationId": "watchStatus",
    "summary": "Status of one watch: scope, expiry, deliveries",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    },
    "parameters": [
     {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
       "type": "string"
      }
     }
    ]
   }
  },
  "/leads": {
   "get": {
    "operationId": "gapLists",
    "summary": "Index of the 5 gap lists (who is missing which control)",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/leads/expired-security-txt.top.json": {
   "get": {
    "operationId": "leads_expired_security_txt_top",
    "summary": "Top-100k websites with an expired security.txt: first 50 rows and counts by state (free, CORS)",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/leads/expired-security-txt.xml": {
   "get": {
    "operationId": "leads_expired_security_txt_feed",
    "summary": "Top-100k websites with an expired security.txt: Atom feed of websites entering or leaving the list",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/leads/expired-security-txt.csv": {
   "get": {
    "operationId": "leads_expired_security_txt_csv",
    "summary": "Top-100k websites with an expired security.txt: the full list as CSV, 918 rows (1.00 USD in USDC)",
    "description": "Top-100k websites with an expired security.txt: 918 websites (0.9% of the 99,993 in the 2026-09-30 census) whose record lacks security.txt Expires line (RFC 9116). Full list as CSV, header row, every cell quoted. Columns: domain, name, type, city, state, tranco_rank, reachable, http_only, https_status, final_host, hsts, security_txt, privacy_link, accessibility_link, robots_gptbot, robots_chatgpt_user, robots_claude_user, llms_txt, title. CC BY 4.0 data, filtered; the first 50 rows are free at https://top100k.agentexchange.work/leads/expired-security-txt.top.json. Every list of this census in one file: GET https://top100k.agentexchange.work/leads/all.json for 5.00 USDC (5 lists).",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "1.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "1000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "responses": {
     "200": {
      "description": "CSV",
      "content": {
       "text/csv": {}
      }
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/leads/expired-security-txt.json": {
   "get": {
    "operationId": "leads_expired_security_txt_json",
    "summary": "Top-100k websites with an expired security.txt: the full list as JSON, 918 rows (1.00 USD in USDC)",
    "description": "Top-100k websites with an expired security.txt: 918 websites (0.9% of the 99,993 in the 2026-09-30 census) whose record lacks security.txt Expires line (RFC 9116). Full list as JSON { list, title, count, by_state, columns, rows[][] }. Columns: domain, name, type, city, state, tranco_rank, reachable, http_only, https_status, final_host, hsts, security_txt, privacy_link, accessibility_link, robots_gptbot, robots_chatgpt_user, robots_claude_user, llms_txt, title. CC BY 4.0 data, filtered; the first 50 rows are free at https://top100k.agentexchange.work/leads/expired-security-txt.top.json. Every list of this census in one file: GET https://top100k.agentexchange.work/leads/all.json for 5.00 USDC (5 lists).",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "1.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "1000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "responses": {
     "200": {
      "description": "JSON",
      "content": {
       "application/json": {}
      }
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/leads/blocks-assistants.top.json": {
   "get": {
    "operationId": "leads_blocks_assistants_top",
    "summary": "Top-100k websites blocking both ChatGPT-User and Claude-User: first 50 rows and counts by state (free, CORS)",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/leads/blocks-assistants.xml": {
   "get": {
    "operationId": "leads_blocks_assistants_feed",
    "summary": "Top-100k websites blocking both ChatGPT-User and Claude-User: Atom feed of websites entering or leaving the list",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/leads/blocks-assistants.csv": {
   "get": {
    "operationId": "leads_blocks_assistants_csv",
    "summary": "Top-100k websites blocking both ChatGPT-User and Claude-User: the full list as CSV, 2,957 rows (1.00 USD in USDC)",
    "description": "Top-100k websites blocking both ChatGPT-User and Claude-User: 2,957 websites (3.0% of the 99,993 in the 2026-09-30 census) whose record lacks robots.txt verdicts for ChatGPT-User and Claude-User. Full list as CSV, header row, every cell quoted. Columns: domain, name, type, city, state, tranco_rank, reachable, http_only, https_status, final_host, hsts, security_txt, privacy_link, accessibility_link, robots_gptbot, robots_chatgpt_user, robots_claude_user, llms_txt, title. CC BY 4.0 data, filtered; the first 50 rows are free at https://top100k.agentexchange.work/leads/blocks-assistants.top.json. Every list of this census in one file: GET https://top100k.agentexchange.work/leads/all.json for 5.00 USDC (5 lists).",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "1.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "1000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "responses": {
     "200": {
      "description": "CSV",
      "content": {
       "text/csv": {}
      }
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/leads/blocks-assistants.json": {
   "get": {
    "operationId": "leads_blocks_assistants_json",
    "summary": "Top-100k websites blocking both ChatGPT-User and Claude-User: the full list as JSON, 2,957 rows (1.00 USD in USDC)",
    "description": "Top-100k websites blocking both ChatGPT-User and Claude-User: 2,957 websites (3.0% of the 99,993 in the 2026-09-30 census) whose record lacks robots.txt verdicts for ChatGPT-User and Claude-User. Full list as JSON { list, title, count, by_state, columns, rows[][] }. Columns: domain, name, type, city, state, tranco_rank, reachable, http_only, https_status, final_host, hsts, security_txt, privacy_link, accessibility_link, robots_gptbot, robots_chatgpt_user, robots_claude_user, llms_txt, title. CC BY 4.0 data, filtered; the first 50 rows are free at https://top100k.agentexchange.work/leads/blocks-assistants.top.json. Every list of this census in one file: GET https://top100k.agentexchange.work/leads/all.json for 5.00 USDC (5 lists).",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "1.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "1000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "responses": {
     "200": {
      "description": "JSON",
      "content": {
       "application/json": {}
      }
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/leads/blocks-gptbot.top.json": {
   "get": {
    "operationId": "leads_blocks_gptbot_top",
    "summary": "Top-100k websites blocking GPTBot: first 50 rows and counts by state (free, CORS)",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/leads/blocks-gptbot.xml": {
   "get": {
    "operationId": "leads_blocks_gptbot_feed",
    "summary": "Top-100k websites blocking GPTBot: Atom feed of websites entering or leaving the list",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/leads/blocks-gptbot.csv": {
   "get": {
    "operationId": "leads_blocks_gptbot_csv",
    "summary": "Top-100k websites blocking GPTBot: the full list as CSV, 7,305 rows (1.00 USD in USDC)",
    "description": "Top-100k websites blocking GPTBot: 7,305 websites (7.3% of the 99,993 in the 2026-09-30 census) whose record lacks robots.txt verdict for GPTBot. Full list as CSV, header row, every cell quoted. Columns: domain, name, type, city, state, tranco_rank, reachable, http_only, https_status, final_host, hsts, security_txt, privacy_link, accessibility_link, robots_gptbot, robots_chatgpt_user, robots_claude_user, llms_txt, title. CC BY 4.0 data, filtered; the first 50 rows are free at https://top100k.agentexchange.work/leads/blocks-gptbot.top.json. Every list of this census in one file: GET https://top100k.agentexchange.work/leads/all.json for 5.00 USDC (5 lists).",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "1.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "1000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "responses": {
     "200": {
      "description": "CSV",
      "content": {
       "text/csv": {}
      }
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/leads/blocks-gptbot.json": {
   "get": {
    "operationId": "leads_blocks_gptbot_json",
    "summary": "Top-100k websites blocking GPTBot: the full list as JSON, 7,305 rows (1.00 USD in USDC)",
    "description": "Top-100k websites blocking GPTBot: 7,305 websites (7.3% of the 99,993 in the 2026-09-30 census) whose record lacks robots.txt verdict for GPTBot. Full list as JSON { list, title, count, by_state, columns, rows[][] }. Columns: domain, name, type, city, state, tranco_rank, reachable, http_only, https_status, final_host, hsts, security_txt, privacy_link, accessibility_link, robots_gptbot, robots_chatgpt_user, robots_claude_user, llms_txt, title. CC BY 4.0 data, filtered; the first 50 rows are free at https://top100k.agentexchange.work/leads/blocks-gptbot.top.json. Every list of this census in one file: GET https://top100k.agentexchange.work/leads/all.json for 5.00 USDC (5 lists).",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "1.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "1000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "responses": {
     "200": {
      "description": "JSON",
      "content": {
       "application/json": {}
      }
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/leads/http-only.top.json": {
   "get": {
    "operationId": "leads_http_only_top",
    "summary": "Top-100k domains answering only over plain HTTP: first 50 rows and counts by state (free, CORS)",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/leads/http-only.xml": {
   "get": {
    "operationId": "leads_http_only_feed",
    "summary": "Top-100k domains answering only over plain HTTP: Atom feed of websites entering or leaving the list",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/leads/http-only.csv": {
   "get": {
    "operationId": "leads_http_only_csv",
    "summary": "Top-100k domains answering only over plain HTTP: the full list as CSV, 3,800 rows (1.00 USD in USDC)",
    "description": "Top-100k domains answering only over plain HTTP: 3,800 websites (3.8% of the 99,993 in the 2026-09-30 census) whose record lacks HTTPS. Full list as CSV, header row, every cell quoted. Columns: domain, name, type, city, state, tranco_rank, reachable, http_only, https_status, final_host, hsts, security_txt, privacy_link, accessibility_link, robots_gptbot, robots_chatgpt_user, robots_claude_user, llms_txt, title. CC BY 4.0 data, filtered; the first 50 rows are free at https://top100k.agentexchange.work/leads/http-only.top.json. Every list of this census in one file: GET https://top100k.agentexchange.work/leads/all.json for 5.00 USDC (5 lists).",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "1.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "1000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "responses": {
     "200": {
      "description": "CSV",
      "content": {
       "text/csv": {}
      }
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/leads/http-only.json": {
   "get": {
    "operationId": "leads_http_only_json",
    "summary": "Top-100k domains answering only over plain HTTP: the full list as JSON, 3,800 rows (1.00 USD in USDC)",
    "description": "Top-100k domains answering only over plain HTTP: 3,800 websites (3.8% of the 99,993 in the 2026-09-30 census) whose record lacks HTTPS. Full list as JSON { list, title, count, by_state, columns, rows[][] }. Columns: domain, name, type, city, state, tranco_rank, reachable, http_only, https_status, final_host, hsts, security_txt, privacy_link, accessibility_link, robots_gptbot, robots_chatgpt_user, robots_claude_user, llms_txt, title. CC BY 4.0 data, filtered; the first 50 rows are free at https://top100k.agentexchange.work/leads/http-only.top.json. Every list of this census in one file: GET https://top100k.agentexchange.work/leads/all.json for 5.00 USDC (5 lists).",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "1.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "1000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "responses": {
     "200": {
      "description": "JSON",
      "content": {
       "application/json": {}
      }
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/leads/redirects-off-domain.top.json": {
   "get": {
    "operationId": "leads_redirects_off_domain_top",
    "summary": "Top-100k homepages that redirect to another domain: first 50 rows and counts by state (free, CORS)",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/leads/redirects-off-domain.xml": {
   "get": {
    "operationId": "leads_redirects_off_domain_feed",
    "summary": "Top-100k homepages that redirect to another domain: Atom feed of websites entering or leaving the list",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/leads/redirects-off-domain.csv": {
   "get": {
    "operationId": "leads_redirects_off_domain_csv",
    "summary": "Top-100k homepages that redirect to another domain: the full list as CSV, 6,773 rows (1.00 USD in USDC)",
    "description": "Top-100k homepages that redirect to another domain: 6,773 websites (6.8% of the 99,993 in the 2026-09-30 census) whose record lacks Homepage served on the listed domain. Full list as CSV, header row, every cell quoted. Columns: domain, name, type, city, state, tranco_rank, reachable, http_only, https_status, final_host, hsts, security_txt, privacy_link, accessibility_link, robots_gptbot, robots_chatgpt_user, robots_claude_user, llms_txt, title. CC BY 4.0 data, filtered; the first 50 rows are free at https://top100k.agentexchange.work/leads/redirects-off-domain.top.json. Every list of this census in one file: GET https://top100k.agentexchange.work/leads/all.json for 5.00 USDC (5 lists).",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "1.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "1000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "responses": {
     "200": {
      "description": "CSV",
      "content": {
       "text/csv": {}
      }
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/leads/redirects-off-domain.json": {
   "get": {
    "operationId": "leads_redirects_off_domain_json",
    "summary": "Top-100k homepages that redirect to another domain: the full list as JSON, 6,773 rows (1.00 USD in USDC)",
    "description": "Top-100k homepages that redirect to another domain: 6,773 websites (6.8% of the 99,993 in the 2026-09-30 census) whose record lacks Homepage served on the listed domain. Full list as JSON { list, title, count, by_state, columns, rows[][] }. Columns: domain, name, type, city, state, tranco_rank, reachable, http_only, https_status, final_host, hsts, security_txt, privacy_link, accessibility_link, robots_gptbot, robots_chatgpt_user, robots_claude_user, llms_txt, title. CC BY 4.0 data, filtered; the first 50 rows are free at https://top100k.agentexchange.work/leads/redirects-off-domain.top.json. Every list of this census in one file: GET https://top100k.agentexchange.work/leads/all.json for 5.00 USDC (5 lists).",
    "tags": [
     "paid"
    ],
    "x-payment-info": {
     "price": {
      "mode": "fixed",
      "currency": "USD",
      "amount": "1.000000"
     },
     "protocols": [
      {
       "x402": {
        "version": 1,
        "scheme": "exact",
        "network": "eip155:8453",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "payTo": "0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c",
        "amount_atomic": "1000000",
        "facilitator": "https://facilitator.payai.network"
       }
      }
     ]
    },
    "responses": {
     "200": {
      "description": "JSON",
      "content": {
       "application/json": {}
      }
     },
     "402": {
      "description": "Payment required: x402 requirements in the JSON body (v1) and in the PAYMENT-REQUIRED header (v2). Sign an EIP-3009 USDC authorization for the amount to payTo and resend the same request with X-PAYMENT; the response carries PAYMENT-RESPONSE.",
      "content": {
       "application/json": {
        "schema": {
         "type": "object",
         "properties": {
          "x402Version": {
           "type": "integer"
          },
          "error": {
           "type": "string"
          },
          "accepts": {
           "type": "array",
           "items": {
            "type": "object"
           }
          }
         }
        }
       }
      }
     }
    }
   }
  },
  "/findings.json": {
   "get": {
    "operationId": "findings",
    "summary": "All aggregates of the census",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/live.json": {
   "get": {
    "operationId": "liveTotals",
    "summary": "Re-check totals (last run, domains re-checked, changes)",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/trending.json": {
   "get": {
    "operationId": "trending",
    "summary": "The 100 most fetched pages of the last 7 days by crawler family",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/changes.xml": {
   "get": {
    "operationId": "changesFeed",
    "summary": "Atom feed of the last 100 changes found by the 6-hourly re-checks",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/.well-known/x402": {
   "get": {
    "operationId": "manifest",
    "summary": "x402 manifest: every paid route with the exact terms of its 402",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  },
  "/.well-known/agent-card.json": {
   "get": {
    "operationId": "agentCard",
    "summary": "A2A agent card",
    "tags": [
     "free"
    ],
    "responses": {
     "200": {
      "description": "OK"
     }
    }
   }
  }
 }
}