{
  "automatic_evidence_credit": false,
  "captures": [],
  "change_log": [
    {
      "after_hash": "8d033c7a75eb260ac5edbdf782da259b76d5c0e0114bcb43e8be6dc6ae90854d",
      "before_hash": "eb27d2b0bfee5a326bedb8841bbce6a02f4451a6d0f57fa60fa1915e2f919978",
      "diff": {
        "changes": [
          {
            "compatibility_class": "NON_BREAKING",
            "fact": "skill added",
            "kind": "SKILL_ADDED",
            "path": "skills[check-my-setup]",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "NON_BREAKING",
            "fact": "skill added",
            "kind": "SKILL_ADDED",
            "path": "skills[receipt-verify]",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "NON_BREAKING",
            "fact": "skill added",
            "kind": "SKILL_ADDED",
            "path": "skills[watch]",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "skill description changed",
            "kind": "SKILL_DESCRIPTION_CHANGED",
            "path": "skills[best].description",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "skill name changed",
            "kind": "SKILL_NAME_CHANGED",
            "path": "skills[check].name",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "skill description changed",
            "kind": "SKILL_DESCRIPTION_CHANGED",
            "path": "skills[check].description",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "skill description changed",
            "kind": "SKILL_DESCRIPTION_CHANGED",
            "path": "skills[report].description",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "NON_BREAKING",
            "fact": "capability added",
            "kind": "CAPABILITY_ADDED",
            "path": "capabilities.extendedAgentCard",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "NON_BREAKING",
            "fact": "capability added",
            "kind": "CAPABILITY_ADDED",
            "path": "capabilities.pushNotifications",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "NON_BREAKING",
            "fact": "protocol version changed",
            "kind": "PROTOCOL_VERSION_CHANGED",
            "path": "protocolVersion",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "description changed",
            "kind": "DESCRIPTION_CHANGED",
            "path": "description",
            "security_relevant_field": false
          }
        ],
        "classified": true,
        "counts_by_class": {
          "BREAKING": 0,
          "INFO": 5,
          "NON_BREAKING": 6
        },
        "taxonomy_version": "1.0.0",
        "total": 11,
        "truncated": false
      },
      "entry_sha256": "b2963dd2faf09282900943e845042443089379dad1e8dafa0f79522040368eb4",
      "evidence_class": "MANIFEST_CHANGE",
      "labels": [
        "MANIFEST_CHANGED"
      ],
      "observed_at_utc": "2026-11-12T18:39:30Z",
      "previous_entry_sha256": "a1632048df76246214c1ed542ce0cc6caecdfe872e01ea2e6b462785115f1219",
      "receipt_id": "5ca42100-d730-5d10-8c2a-f766505d9580",
      "receipt_url": "https://www.gaipagents.com/v1/free/receipts/5ca42100-d730-5d10-8c2a-f766505d9580",
      "sequence": 82930,
      "target_id": "obs_f1354efb2461ce768f0f8cc7",
      "target_kind": "A2A_CARD",
      "target_locator": "https://botsrated.com/.well-known/agent-card.json"
    },
    {
      "after_hash": "eb27d2b0bfee5a326bedb8841bbce6a02f4451a6d0f57fa60fa1915e2f919978",
      "before_hash": "d343b3710d712dd7bca68b2961aaa6d486276ea678785e3d0b529bec0d6c166f",
      "diff": {
        "changes": [
          {
            "compatibility_class": "BREAKING",
            "fact": "skill removed",
            "kind": "SKILL_REMOVED",
            "path": "skills[history]",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "skill name changed",
            "kind": "SKILL_NAME_CHANGED",
            "path": "skills[check].name",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "skill name changed",
            "kind": "SKILL_NAME_CHANGED",
            "path": "skills[preflight].name",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "skill description changed",
            "kind": "SKILL_DESCRIPTION_CHANGED",
            "path": "skills[preflight].description",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "description changed",
            "kind": "DESCRIPTION_CHANGED",
            "path": "description",
            "security_relevant_field": false
          }
        ],
        "classified": true,
        "counts_by_class": {
          "BREAKING": 1,
          "INFO": 4,
          "NON_BREAKING": 0
        },
        "taxonomy_version": "1.0.0",
        "total": 5,
        "truncated": false
      },
      "entry_sha256": "4c233b9056010152ebf445e4b626eae76b336a75209b93425cd15aba804fba7d",
      "evidence_class": "MANIFEST_CHANGE",
      "labels": [
        "MANIFEST_CHANGED"
      ],
      "observed_at_utc": "2026-11-11T17:51:06Z",
      "previous_entry_sha256": "b3e8ff36f7a79c5fbdd7a0d6cb97cf1c06fc022904e9991cd7a3ab8781cea9f7",
      "receipt_id": "c33308b0-22a2-5557-99c8-b671b01620ab",
      "receipt_url": "https://www.gaipagents.com/v1/free/receipts/c33308b0-22a2-5557-99c8-b671b01620ab",
      "sequence": 81609,
      "target_id": "obs_f1354efb2461ce768f0f8cc7",
      "target_kind": "A2A_CARD",
      "target_locator": "https://botsrated.com/.well-known/agent-card.json"
    },
    {
      "after_hash": "d343b3710d712dd7bca68b2961aaa6d486276ea678785e3d0b529bec0d6c166f",
      "before_hash": "a50f572284f0c08eb23e872f1f01b5f4c5f30dede8c9913fa340262ab347e876",
      "diff": {
        "changes": [
          {
            "compatibility_class": "NON_BREAKING",
            "fact": "skill added",
            "kind": "SKILL_ADDED",
            "path": "skills[history]",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "skill description changed",
            "kind": "SKILL_DESCRIPTION_CHANGED",
            "path": "skills[check].description",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "skill description changed",
            "kind": "SKILL_DESCRIPTION_CHANGED",
            "path": "skills[report].description",
            "security_relevant_field": false
          },
          {
            "compatibility_class": "INFO",
            "fact": "description changed",
            "kind": "DESCRIPTION_CHANGED",
            "path": "description",
            "security_relevant_field": false
          }
        ],
        "classified": true,
        "counts_by_class": {
          "BREAKING": 0,
          "INFO": 3,
          "NON_BREAKING": 1
        },
        "taxonomy_version": "1.0.0",
        "total": 4,
        "truncated": false
      },
      "entry_sha256": "0e50d87d14effb0da0f79c40520ffead2141bc0ed1be42830ad8da570e0c9fbc",
      "evidence_class": "MANIFEST_CHANGE",
      "labels": [
        "MANIFEST_CHANGED"
      ],
      "observed_at_utc": "2026-11-09T10:46:43Z",
      "previous_entry_sha256": "9e75489af66ce8f7210862647f3de819fabf5c57242909f715cf81cc568b80f7",
      "receipt_id": "a6df5153-7153-5c2e-a032-20c5434c9301",
      "receipt_url": "https://www.gaipagents.com/v1/free/receipts/a6df5153-7153-5c2e-a032-20c5434c9301",
      "sequence": 76819,
      "target_id": "obs_f1354efb2461ce768f0f8cc7",
      "target_kind": "A2A_CARD",
      "target_locator": "https://botsrated.com/.well-known/agent-card.json"
    }
  ],
  "check_outcomes": {
    "ask": {
      "changed_since": "https://www.gaipagents.com/v1/free/observatory/changed-since?url=<endpoint>",
      "changes_and_reachability": "https://www.gaipagents.com/v1/free/changes/subscribe?url=<endpoint>",
      "conformance": "https://www.gaipagents.com/v1/free/conformance/check?url=<endpoint>"
    },
    "published": false,
    "why": "Outcomes of GAIP's own checks (whether the endpoint answered, HTTP status, response time, conformance findings) are given only to a caller who asks about the URL, never on a public page, list or feed. The same applies to every target."
  },
  "conformance": {
    "findings": "GIVEN_TO_CALLER_ONLY",
    "meaning": "The rule catalogue this manifest was read against at the observed time. The finding codes go only to a caller who checks the URL (check_outcomes.ask.conformance).",
    "observed_at_utc": "2026-11-12T18:39:30Z",
    "protocol": "A2A",
    "rule_catalogue_route": "/v1/free/knowledge/conformance-rules",
    "rule_catalogue_version": "1.0.0"
  },
  "corrections": {
    "contact": "https://www.gaipagents.com/contact",
    "exclusion": "https://www.gaipagents.com/v1/free/observatory/corrections/exclusion",
    "opt_out": "POST kind OPT_OUT to the route; the target is withdrawn from public view at once (a pause). The site's owner makes it permanent at https://www.gaipagents.com/v1/free/observatory/corrections/exclusion.",
    "queued_for_review": 0,
    "route": "https://www.gaipagents.com/v1/free/observatory/corrections"
  },
  "declared_derivations": {
    "data_appetite": null,
    "dependency_domains": [],
    "last_observed_at_utc": "2026-11-12T18:39:30Z",
    "meaning": "Derived by GAIP from what this agent declared, at the stated time: the categories of data its tools' input fields ask for (counts, by keyword rules gaip.data-appetite-rules.v1), the outside domains its declarations point to, and the operator as the agent itself publishes it. Facts about declarations, not an assessment of the agent or its operator.",
    "operator": {
      "as_published": "BotsRated",
      "source_kind": "card_provider_organization"
    },
    "rules_version": "gaip.data-appetite-rules.v1",
    "schema_version": "gaip.declared-derivations.v1"
  },
  "latest": {
    "baseline_at_utc": "2026-10-26T12:19:10Z",
    "manifest_sha256": "8d033c7a75eb260ac5edbdf782da259b76d5c0e0114bcb43e8be6dc6ae90854d",
    "observed_at_utc": "2026-11-12T18:39:30Z"
  },
  "metadata_signals": {
    "meaning": "Pattern rules are published only as aggregate rates across all observed targets (see the summary), never per party. GAIP issues no overall verdict and does not rank parties.",
    "overall_verdict": null,
    "per_target_results": null,
    "published": "AGGREGATE_ONLY_IN_SUMMARY",
    "rules": [
      {
        "rationale": "Zero-width, bidirectional-control and Unicode tag characters are not visible to a human reader but are read by language models. GAIP reports whether any occur; many have ordinary uses.",
        "rule_id": "OBS-SIG-001",
        "title": "Invisible or bidirectional-control Unicode characters in names or descriptions"
      },
      {
        "rationale": "Tool and skill descriptions are read by models. GAIP reports whether a description contains phrases shaped like instructions to a model (the patterns in GAIP's public conformance rule catalogue, plus the phrases listed in the Observatory method). Such phrases can be benign.",
        "rule_id": "OBS-SIG-002",
        "title": "Instruction-like text in descriptions"
      },
      {
        "rationale": "When a description refers to a tool name that only a different observed server publishes, a model using both servers may connect the two. GAIP reports whether such a reference occurs; shared names are common and often coincidental.",
        "rule_id": "OBS-SIG-003",
        "title": "Description names a tool published by a different observed server"
      },
      {
        "rationale": "Declared OAuth scopes whose names contain wildcard or whole-account wording (*, all, admin, root, full) request wide access by name. GAIP reports whether such a scope name is declared; it does not know what the scope grants.",
        "rule_id": "OBS-SIG-004",
        "title": "Declared authorization scopes with broad-access wording"
      }
    ],
    "third_party_scanners": [
      {
        "name": "Snyk agent-scan (formerly Invariant Labs mcp-scan)",
        "status": "NOT_RUN",
        "url": "https://github.com/snyk/agent-scan"
      },
      {
        "name": "Cisco AI Defense MCP Scanner",
        "status": "NOT_RUN",
        "url": "https://github.com/cisco-ai-defense/mcp-scanner"
      }
    ]
  },
  "method": "https://www.gaipagents.com/observatory",
  "notice": "Facts observed by GAIP at the stated time (UTC); they may be out of date. This is not an assessment of safety, quality, security, legality or trustworthiness of any party, and not a recommendation. To request a correction, add a right of reply or opt out, POST to https://www.gaipagents.com/v1/free/observatory/corrections or use https://www.gaipagents.com/contact.",
  "price_gbp": 0,
  "schema_version": "gaip.observatory.v1.target",
  "silent_changes_last_30_days": {
    "days": 30,
    "entries_read_at_most": 200,
    "kinds": [
      "tool_descriptions_reworded",
      "tools_added",
      "tools_removed"
    ],
    "line": "In the last 30 days its declared tools or interface changed with no declared version change in 1 week: 2026-W46 (2026-11-09, 2026-11-11, 2026-11-12); kinds: tool descriptions re-worded, tools added, tools removed.",
    "meaning": "Weeks (ISO) in which GAIP recorded a change to the agent's declared tools or interface (tools added or removed, descriptions re-worded, input or output schema, behaviour labels, sign-in, terms or prices, endpoint host) and no declared version (registry or card version, serverInfo.version) moved that week. A week whose version movement is not recorded is not counted. Dated facts from the public change log; not an assessment of the agent.",
    "weeks": [
      {
        "dates": [
          "2026-11-09",
          "2026-11-11",
          "2026-11-12"
        ],
        "kinds": [
          "tool_descriptions_reworded",
          "tools_added",
          "tools_removed"
        ],
        "week": "2026-W46"
      }
    ],
    "weeks_with_silent_changes": 1
  },
  "snapshot": {
    "capabilities": {
      "extendedAgentCard": false,
      "pushNotifications": true,
      "streaming": false
    },
    "description": "Monitor the MCP servers and paid APIs (x402 sellers) your agents already use: signed measurements and change history. Built for humans. Built for bots. Factual measurements of paid x402 agent services and remote MCP servers, refreshed automatically by unpaid checks; every test result is backed by a ",
    "name": "BotsRated",
    "parts": [
      "agent_card"
    ],
    "protocol": "A2A",
    "protocolVersion": null,
    "provider": {
      "organization": "BotsRated",
      "url": "https://botsrated.com/"
    },
    "public_copy": "Text excerpts of at most 300 characters; input schemas and security schemes as SHA-256 and size only.",
    "scopes": [],
    "security": null,
    "securitySchemes": null,
    "skills": [
      {
        "description": "Pre-pay check of one host: measured facts, freshness and receipt links. Shares the first 25 free checks per client per UTC day with HTTP GET /v1/check and the MCP check tool. One quota, not a new allowance. After that, returns the existing HTTP x402 payment instructions ($0.01). This skill does not ",
        "id": "check",
        "name": "Check",
        "tags": [
          "x402",
          "check"
        ]
      },
      {
        "description": "Checks one stored receipt's ed25519 signature. Same check as GET /v1/verify. Free. A match covers that record only.",
        "id": "receipt-verify",
        "name": "Receipt verify",
        "tags": [
          "receipt",
          "verify"
        ]
      },
      {
        "description": "Free email watch. Same limits as watch_free and POST /v1/alerts/subscribe: 1 covered host, email only, 30 days, up to 3 active watches per client. Optional A2A push config on the message; pushes are change-only. The confirmation email is the existing alerts email. No x402 payment.",
        "id": "watch",
        "name": "Watch",
        "tags": [
          "watch",
          "email"
        ]
      },
      {
        "description": "Dependency-watch report. Same as check_mcp_setup and POST /v1/dependency-watch/report: up to 50 hosts or an mcp.json. Nothing is fetched or stored.",
        "id": "check-my-setup",
        "name": "Check my setup",
        "tags": [
          "mcp",
          "setup"
        ]
      },
      {
        "description": "Latest stored unpaid probe of an x402 seller or remote MCP server host, with freshness and receipt link. Not charged. 1000 per client IP per UTC day, then 429; 25000 per key per UTC day.",
        "id": "preflight",
        "name": "Preflight",
        "tags": [
          "x402",
          "measurements"
        ]
      },
      {
        "description": "Top matching covered x402 sellers and remote MCP servers for a need, each with a factual reason and page URL. Uses 1 of the free daily checks.",
        "id": "find",
        "name": "Find (Free)",
        "tags": [
          "x402",
          "mcp",
          "search",
          "free"
        ]
      },
      {
        "description": "How many sellers are covered, sources, probe schedule.",
        "id": "coverage",
        "name": "Coverage (Free)",
        "tags": [
          "x402",
          "free"
        ]
      },
      {
        "description": "Real sample of check, report or best for a fixed example.",
        "id": "sample",
        "name": "Sample Paid Response (Free)",
        "tags": [
          "x402",
          "free"
        ]
      },
      {
        "description": "Full receipt history. First 3 per client per UTC day free over HTTP. This skill returns HTTP payment instructions and does not take a payment on A2A.",
        "id": "report",
        "name": "Report ($0.002, x402)",
        "tags": [
          "x402",
          "paid"
        ]
      },
      {
        "description": "Top 3 covered providers for a task, with matching routes and the numbers behind the order. Also returns matching remote MCP servers (mcp_results, matched on tool names/descriptions); input.type all|x402|mcp. This skill returns HTTP payment instructions and does not take a payment on A2A.",
        "id": "best",
        "name": "Best Pick ($0.01, x402)",
        "tags": [
          "x402",
          "router",
          "paid"
        ]
      }
    ],
    "supportedInterfaces": [
      {
        "protocolBinding": "JSONRPC",
        "url": "https://botsrated.com/a2a"
      }
    ],
    "url": null,
    "version": "0.4.0"
  },
  "status_history": [
    {
      "manifest_partial": null,
      "manifest_parts": [
        "agent_card"
      ],
      "manifest_sha256": "8d033c7a75eb260ac5edbdf782da259b76d5c0e0114bcb43e8be6dc6ae90854d",
      "observed_at_utc": "2026-11-12T18:39:30Z",
      "protocol_version": null
    },
    {
      "manifest_partial": null,
      "manifest_parts": [
        "agent_card"
      ],
      "manifest_sha256": "eb27d2b0bfee5a326bedb8841bbce6a02f4451a6d0f57fa60fa1915e2f919978",
      "observed_at_utc": "2026-11-11T17:51:06Z",
      "protocol_version": "0.3.0"
    },
    {
      "manifest_partial": null,
      "manifest_parts": [
        "agent_card"
      ],
      "manifest_sha256": "d343b3710d712dd7bca68b2961aaa6d486276ea678785e3d0b529bec0d6c166f",
      "observed_at_utc": "2026-11-09T10:46:43Z",
      "protocol_version": "0.3.0"
    },
    {
      "manifest_partial": null,
      "manifest_parts": [
        "agent_card"
      ],
      "manifest_sha256": "a50f572284f0c08eb23e872f1f01b5f4c5f30dede8c9913fa340262ab347e876",
      "observed_at_utc": "2026-10-26T12:19:10Z",
      "protocol_version": "0.3.0"
    }
  ],
  "target": {
    "corrections_route": "https://www.gaipagents.com/v1/free/observatory/corrections",
    "first_seen_at_utc": "2026-10-26T10:55:32Z",
    "kind": "A2A_CARD",
    "last_observed_at_utc": "2026-11-12T18:39:30Z",
    "locator": "https://botsrated.com/.well-known/agent-card.json",
    "name": "botsrated.com",
    "source": "global-a2a-registry",
    "target_id": "obs_f1354efb2461ce768f0f8cc7"
  }
}