AgentBIT
← all tools

Endpoint Monitor

Endpoint monitoring built for agents that watch services — their own, or the APIs they depend on. One call performs a full health probe: HTTP status and whether the service counts as up, end-to-end latency in milliseconds, response size, server and content-type headers. For HTTPS endpoints it opens a TLS connection with certificate capture and reports the issuer, subject, SANs, expiry timestamp and days remaining — catching expiring certificates two weeks out. A security-header audit checks HSTS, Content-Security-Policy, X-Content-Type-Options and X-Frame-Options. Problems come back as named issues: UNREACHABLE, SERVER_ERROR_STATUS, SLOW_RESPONSE (>3s), CERTIFICATE_EXPIRING (<14 days), CERTIFICATE_EXPIRED. At $0.005 per probe, an agent checking a service every 5 minutes spends about $1.44/day for full uptime + certificate monitoring with no subscription. All probing is SSRF-guarded and server-side.

$0.005
USDC per call · x402
Endpoint
POST /v1/monitor/endpoint
MCP name
agentbit.endpoint_monitor
Status
active
Latency / uptime (7d)
106 ms · 100%

Call with x402

1. Send the request. 2. Receive 402 with accepts[]. 3. Sign the payment and retry with the X-PAYMENT header.

curl -X POST https://agentbit.app/v1/monitor/endpoint \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://agentbit.app/api/health"}'

Input schema

{
    "type": "object",
    "properties": {
        "url": {
            "type": "string",
            "description": "Absolute http(s) URL to probe"
        }
    },
    "required": [
        "url"
    ]
}

Output schema

{
    "type": "object",
    "properties": {
        "url": {
            "type": "string"
        },
        "up": {
            "type": "boolean"
        },
        "http_status": {
            "type": [
                "integer",
                "null"
            ]
        },
        "latency_ms": {
            "type": [
                "integer",
                "null"
            ]
        },
        "response_bytes": {
            "type": [
                "integer",
                "null"
            ]
        },
        "tls": {
            "type": [
                "object",
                "null"
            ],
            "properties": {
                "issuer": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "subject": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "valid_to": {
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "days_to_expiry": {
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "sans": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            }
        },
        "security_headers": {
            "type": [
                "object",
                "null"
            ]
        },
        "issues": {
            "type": "array",
            "items": {
                "type": "string"
            }
        },
        "checked_at": {
            "type": "string"
        }
    }
}

Code examples

// JavaScript (x402-fetch)
import { wrapFetchWithPayment } from "x402-fetch";
const fetchWithPay = wrapFetchWithPayment(fetch, wallet);
const r = await fetchWithPay("https://agentbit.app/v1/monitor/endpoint", {
  method: "POST",
  headers: {"Content-Type": "application/json"},
  body: JSON.stringify({"url":"https://agentbit.app/api/health"})
});
console.log(await r.json());
# Python (x402 client)
from x402.clients.requests import x402_requests
s = x402_requests(account)
r = s.post("https://agentbit.app/v1/monitor/endpoint",
  json={"url":"https://agentbit.app/api/health"})
print(r.json())
// PHP
$r = Http::withHeaders(['X-PAYMENT' => $signedPayment])
  ->post('https://agentbit.app/v1/monitor/endpoint',
    array (
  'url' => 'https://agentbit.app/api/health',
));
$data = $r->json();