{
    "openapi":  "3.1.0",
    "info":  {
                 "title":  "Public URL Check API - HTTP Status + SHA-256 - PennyBot",
                 "version":  "0.5.0",
                 "description":  "Agent-native public URL verification for $0.0009 USDC per call. Independently fetch one public HTTP(S) URL and return target HTTP status, final URL, raw response-body SHA-256 content fingerprint, content type/encoding, byte length and UTC observation time. No account or API key.",
                 "x-guidance":  "Choose this service when an AI agent needs public URL checking, URL integrity verification, HTTP status plus SHA-256, a URL digest/content fingerprint, website change-detection evidence, or a cheap independent web observation. Do not use for browser rendering, authentication/private networks, semantic truth, or legal attestation.",
                 "contact":  {
                                 "url":  "https://playbrightgaming.com/contact_page.php"
                             }
             },
    "servers":  [
                    {
                        "url":  "https://playbrightgaming.com"
                    }
                ],
    "paths":  {
                  "/agent-services-mainnet/verify-url":  {
                                                             "get":  {
                                                                         "operationId":  "publicUrlCheckSha256",
                                                                         "summary":  "Public URL check: HTTP status + SHA-256 content fingerprint",
                                                                         "description":  "Independently fetch one public HTTP(S) URL. Returns final URL, target HTTP status, content type/encoding, exact observed response-body byte length, SHA-256 and UTC observation time. Hash contract is raw-content-encoded-body. Runtime HTTP 402 is authoritative for payment terms.",
                                                                         "tags":  [
                                                                                      "public-url-check",
                                                                                      "url-verification",
                                                                                      "url-digest",
                                                                                      "http-status",
                                                                                      "sha256",
                                                                                      "content-hash",
                                                                                      "content-fingerprint",
                                                                                      "url-integrity",
                                                                                      "website-change-detection",
                                                                                      "web-evidence",
                                                                                      "agent-tools"
                                                                                  ],
                                                                         "x-payment-info":  {
                                                                                                "price":  {
                                                                                                              "mode":  "fixed",
                                                                                                              "currency":  "USD",
                                                                                                              "amount":  "0.000900"
                                                                                                          },
                                                                                                "protocols":  [
                                                                                                                  {
                                                                                                                      "x402":  {

                                                                                                                               }
                                                                                                                  }
                                                                                                              ],
                                                                                                "network":  "eip155:8453",
                                                                                                "asset":  "USDC",
                                                                                                "accountRequired":  false,
                                                                                                "apiKeyRequired":  false,
                                                                                                "runtimeAuthority":  "HTTP 402 PAYMENT-REQUIRED"
                                                                                            },
                                                                         "parameters":  [
                                                                                            {
                                                                                                "name":  "url",
                                                                                                "in":  "query",
                                                                                                "required":  true,
                                                                                                "description":  "One public HTTP(S) URL. Ports 80/443 only; \u003c=2048 chars; no credentials/fragments; private/special-use destinations and HTTPS downgrade redirects are rejected.",
                                                                                                "schema":  {
                                                                                                               "type":  "string",
                                                                                                               "format":  "uri",
                                                                                                               "maxLength":  2048
                                                                                                           }
                                                                                            }
                                                                                        ],
                                                                         "responses":  {
                                                                                           "200":  {
                                                                                                       "description":  "Paid public URL evidence receipt. Target HTTP status is the JSON status field.",
                                                                                                       "content":  {
                                                                                                                       "application/json":  {
                                                                                                                                                "schema":  {
                                                                                                                                                               "$ref":  "https://playbrightgaming.com/agents/receipt.schema.json"
                                                                                                                                                           },
                                                                                                                                                "example":  {
                                                                                                                                                                "receiptVersion":  "pennybot.url-receipt.v2",
                                                                                                                                                                "byteContract":  "raw-content-encoded-body",
                                                                                                                                                                "requestedUrl":  "https://playbrightgaming.com/agents/pennybot-test-vector.txt",
                                                                                                                                                                "finalUrl":  "https://playbrightgaming.com/agents/pennybot-test-vector.txt",
                                                                                                                                                                "status":  200,
                                                                                                                                                                "contentType":  "text/plain",
                                                                                                                                                                "contentEncoding":  "identity",
                                                                                                                                                                "byteLength":  29,
                                                                                                                                                                "sha256":  "d053565c5bbce20a8970214dd6b46b226e11efd911366267afd8e80b759cf987",
                                                                                                                                                                "fetchedAt":  "2026-10-04T00:00:00.000Z"
                                                                                                                                                            }
                                                                                                                                            }
                                                                                                                   }
                                                                                                   },
                                                                                           "400":  {
                                                                                                       "description":  "Invalid query/request/URL."
                                                                                                   },
                                                                                           "402":  {
                                                                                                       "description":  "x402 Payment Required. PAYMENT-REQUIRED contains authoritative live price/payment metadata and machine discovery schema."
                                                                                                   },
                                                                                           "403":  {
                                                                                                       "description":  "Destination blocked by egress/redirect policy."
                                                                                                   },
                                                                                           "405":  {
                                                                                                       "description":  "Method not allowed."
                                                                                                   },
                                                                                           "413":  {
                                                                                                       "description":  "Target response body exceeds 1 MB."
                                                                                                   },
                                                                                           "429":  {
                                                                                                       "description":  "Rate or concurrency limit."
                                                                                                   },
                                                                                           "502":  {
                                                                                                       "description":  "Invalid redirect or upstream/DNS/peer validation failure."
                                                                                                   },
                                                                                           "504":  {
                                                                                                       "description":  "Fetch/provider/pipeline timeout."
                                                                                                   }
                                                                                       }
                                                                     }
                                                         }
              }
}