Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
75
A2A v1.7

Ned Watch

ned.watch · Ned Watch

Register a URL, condition, or deadline; Ned wakes you at your callback when it fires. Independent, multi-region, signed.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain ned.watch via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership
🔔 Watch this agent. Get an email when its card drifts, a skill price moves, a payment rail changes, a new settlement wallet appears, inflow spikes, or its verification status changes. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
29/100
grade F · 9 criteria
Uptime
accumulating
1/5 direct probes · 30d
~128 ms response
Observed inflow · 30d
—
no payment wallet declared
Invocations · 7d
0
no calls observed
Card drift · 7d
changed
1 snapshots tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

F
Conformance score: 29/100
F-grade: card is reachable but fails most operational signals.
click to expand breakdown ▾ click to collapse breakdown ▴
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
fail Live JSON-RPC 0/25
Card declares a URL but that URL returns 404.
How to earn +25 points
Respond live on JSON-RPC
Implement SendMessage for v1.0 (or message/send for v0.x), negotiate A2A-Version, and return a schema-valid JSON-RPC response. Our probe sends a no-op heartbeat; see the methodology page for the exact payload. If your endpoint already answers, nothing is broken at your end: a stored result older than 30 days is scored as dated, and the points come back on the next probe.
Docs →
fail Protocol version 0/10
No protocolVersion in card.
How to earn +10 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` (Major.Minor, no patch number — §3.6) to every entry in `supportedInterfaces[]`. A2A v1.0 removed the AgentCard root field.
Docs →
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 1 probe so far, need ≥5 for an uptime grade.
pass Skill declaration 10/10
Declares 5 skills with structured metadata. 5 skills without tags — optional in 0.x, REQUIRED once you move the card to v1.0.
partial Verified Identity 5/10
Provider declared: Ned Watch (https://ned.watch). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs →
pass Freshness + modern flags 4/5
seen in upstream source within 0d
info Security declaration 0/5
Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated.
⚠ Card drift detected. This agent's agent-card.json changed within the last 7 days. We track these so downstream callers can react.

Activity (audit trail)

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

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

Card history

1 snapshot Every change to agent-card.json
Captured Hash
2026-10-01 09:02:24 current 044c71d77475… view →
Uptime
accumulating
1 direct probes · 30d
Response
490ms
last direct probe
Skills
5
declared
Streaming
—
SSE-capable

Endpoints

Agent cardhttps://ned.watch/.well-known/agent-card.json
Providerhttps://ned.watch
Discovered via
smithery

Skills · 5 declared · mapped to canonical taxonomy

Dead-man switch

You check in on a schedule (POST /v1/checkin/{id} with Authorization: Bearer <signing_secret>); Ned fires your callback if you go silent.

canonical Agent Profiles match 82%
HTTP watch

Fires when a URL is down, returns an unexpected status, or exceeds a latency threshold.

canonical Performance Monitoring match 85%
TLS watch

Fires when a certificate is within N days of expiry or the handshake fails.

canonical Agent Profiles match 85%
Overrun watch

POST /v1/watches/{id}/start when a run begins and /finish when it ends (Authorization: Bearer <signing_secret>); Ned fires once if it's still running after max_…

canonical Workflow Automation match 81%
Content watch

The page answers 200 but says the wrong thing: status, contains, not_contains, json_path equals/exists (no regex, 256 KB max). The callback names the failed con…

canonical SEO Analysis and Optimisation match 83%

Health · last 1 probes

When HTTP Live JSON-RPC Latency
2026-10-01 09:02:24 200 ✗ 490ms

Cheaper or better alternatives per-skill

↑ 4 higher quality

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

Similar agents embedding-nearest

api.ned.watch
api.ned.watch · q 65%
api.datasieve.xyz
Something you cannot do while your agent is dead: keep watching. One paid call buys 7 days of it — on-chain on Base (wallet activity, whale
api.datasieve.xyz · q 65%
nodeproxy-production.up.railway.app
Schedule a future HTTP action or callback for autonomous agents. At a delay or a set time, either (a) execute an HTTP request you specify (m
nodeproxy-production.up.railway.app · q 65%
longwatch.dev
Monitoring API for AI agents. Look up a page, RSS feed, crypto price, or SEC filings in one call ($0.001), or create a standing watch ($0.00
longwatch.dev · q 100%
Monitor website uptime and latency with Telegram and email alerts
Quick overview This workflow checks multiple websites every 5 minutes, records uptime and response time history in n8n Data Tables, and send
n8n.io · q 40%
jurat.dev
Notarize any public web page or API response: fetches the URL server-side, archives the exact bytes, and returns a tamper-evident ed25519 at
jurat.dev · q 45%

Embed your Agenstry badge

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

Agenstry grade Uptime
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/ned.watch.svg)](https://agenstry.com/agents/ned.watch)
[![Verified Business](https://agenstry.com/badge/ned.watch/identity.svg)](https://agenstry.com/agents/ned.watch)
[![Uptime](https://agenstry.com/badge/ned.watch/uptime.svg)](https://agenstry.com/agents/ned.watch)
[![A2A version](https://agenstry.com/badge/ned.watch/protocol.svg)](https://agenstry.com/agents/ned.watch)

Audit-grade evidence bundle

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

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "pricing": {
    "currency": "USD",
    "unit": "cents",
    "free": {
      "watches": 5,
      "min_interval_s": 300,
      "note": "The first 5 active watches at 300s or slower cost nothing. Any type."
    },
    "paid": [
      {
        "tier": "standard",
        "types": [
          "http",
          "tls",
          "content"
        ],
        "min_interval_s": 60,
        "cents_per_day": 2
      },
      {
        "tier": "fast",
        "types": [
          "http",
          "tls",
          "content"
        ],
        "min_interval_s": 30,
        "cents_per_day": 7
      },
      {
        "tier": "deadman",
        "types": [
          "deadman"
        ],
        "min_interval_s": 60,
        "cents_per_day": 1
      },
      {
        "tier": "overrun",
        "types": [
          "overrun"
        ],
        "max_runtime_s": [
          60,
          86400
        ],
        "cents_per_day": 1,
        "note": "no interval to choose: checked at each run's deadline; counts toward the free five like any watch"
      }
    ],
    "limits": {
      "content": {
        "max_body_bytes": 262144,
        "max_conditions": 5,
        "conditions": [
          "status",
          "contains",
          "not_contains",
          "json_path + equals",
          "json_path + exists"
        ],
        "regex": false
      },
      "overrun": {
        "max_runtime_s": [
          60,
          86400
        ]
      }
    },
    "billing": {
      "debit": "daily at 00:10 UTC per active paid watch",
      "register_requires": "balance >= one day of burn including the new watch, when the watch is paid",
      "pause": "a watch pauses (event: paused) when the balance can't cover its day",
      "low_balance": "one callback (event: low_balance) when balance < 3 days of burn, reset by a top-up"
    },
    "topup": {
      "min_usd": 5,
      "options_usd": [
        5,
        20,
        50
      ],
      "routes": [
        "https://api.ned.watch/v1/topup/5",
        "https://api.ned.watch/v1/topup/20",
        "https://api.ned.watch/v1/topup/50"
      ],
      "rail": {
        "x402": {
          "network": "eip155:8453",
          "asset": "USDC",
          "asset_address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "how": "POST the route with no payment to receive x402 payment requirements; retry with PAYMENT-SIGNATURE"
        },
        "card": "coming"
      }
    },
    "pricing_url": "https://api.ned.watch/v1/pricing"
  },
  "name": "Ned Watch",
  "description": "Register a URL, condition, or deadline; Ned wakes you at your callback when it fires. Independent, multi-region, signed.",
  "url": "https://api.ned.watch",
  "watch_types": [
    "deadman",
    "overrun",
    "http",
    "content",
    "tls"
  ],
  "version": "1.7",
  "provider": {
    "organization": "Ned Watch",
    "url": "https://ned.watch"
  },
  "iconUrl": "https://ned.watch/brand/sweepthrough-dark-512.png",
  "image": "https://ned.watch/brand/instrument-open-512.png",
  "capabilities": {
    "streaming": false,
    "pushNotifications": true
  },
  "skills": [
    {
      "id": "watch.deadman",
      "name": "Dead-man switch",
      "description": "You check in on a schedule (POST /v1/checkin/{id} with Authorization: Bearer <signing_secret>); Ned fires your callback if you go silent."
    },
    {
      "id": "watch.http",
      "name": "HTTP watch",
      "description": "Fires when a URL is down, returns an unexpected status, or exceeds a latency threshold."
    },
    {
      "id": "watch.tls",
      "name": "TLS watch",
      "description": "Fires when a certificate is within N days of expiry or the handshake fails."
    },
    {
      "id": "watch.overrun",
      "name": "Overrun watch",
      "description": "POST /v1/watches/{id}/start when a run begins and /finish when it ends (Authorization: Bearer <signing_secret>); Ned fires once if it's still running after max_runtime_s, and clears with late:true and the runtime when it finishes."
    },
    {
      "id": "watch.content",
      "name": "Content watch",
      "description": "The page answers 200 but says the wrong thing: status, contains, not_contains, json_path equals/exists (no regex, 256 KB max). The callback names the failed condition, never the page's content."
    }
  ],
  "authentication": {
    "schemes": [
      "bearer"
    ],
    "note": "POST /v1/watches without a key to receive one."
  },
  "endpoints": {
    "register": "https://api.ned.watch/v1/watches",
    "docs": "https://api.ned.watch/docs"
  },
  "nodes": [
    "watch-us",
    "watch-eu"
  ],
  "replication": true,
  "contact": "ned@ned.watch"
}