{
  "agent": "GPTBot",
  "answer": "ALLOWED: robots.txt on www.gaipagents.com allows GPTBot to fetch /test-range (its own group: Allow: /).",
  "answer_sha256": "8a39db093d0e71f92a51cdb7e8a670a68f86fdbb39d1c7a69c60b33558e7a24f",
  "automatic_evidence_credit": false,
  "continuity": {
    "authority": "LINKAGE_ONLY_NO_AUTHENTICATION_NO_PERMISSION_NO_SPEND",
    "automated_caller": true,
    "bound": true,
    "continuity_id": "gaip-continuity:d8dcddf2-ba83-49ca-b8dd-7a91e30c35a2",
    "did_this_help": {
      "arguments": {
        "useful": true
      },
      "rest": "POST /v1/free/feedback",
      "tool": "gaip_feedback"
    },
    "member_call_receipt_id": "eee24d88-3302-537d-88a8-03eb6a4e83e9",
    "present_next_time": {
      "argument": "continuity_handle",
      "header": "X-GAIP-Continuity: <continuity_id>.<token>"
    },
    "since_last_call": {
      "rest": "GET /v1/free/member/digest",
      "tool": "gaip_since_last_call"
    },
    "state": "ISSUED"
  },
  "continuity_handle": {
    "continuity_id": "gaip-continuity:d8dcddf2-ba83-49ca-b8dd-7a91e30c35a2",
    "token": "aIW3tHY5FNxSIVc8KcCuAnNSi1IgKPNPAoXTX_nVWiQ"
  },
  "continuity_handle_authority": "LINKAGE_ONLY_NO_AUTHENTICATION_NO_PERMISSION_NO_SPEND",
  "continuity_purpose": "Every completed answer carries a continuity handle; send it back and the answer is bound to your own history with GAIP.",
  "declarations": [
    {
      "excerpt": null,
      "found": false,
      "kind": "CONTENT_SIGNAL",
      "source": "https://www.gaipagents.com/robots.txt",
      "values": []
    },
    {
      "excerpt": null,
      "found": false,
      "kind": "AI_PREFERENCE_CONTENT_USAGE",
      "label": "IETF AI-preference vocabulary (draft; may change)",
      "source": "https://www.gaipagents.com/robots.txt",
      "values": []
    },
    {
      "found": false,
      "kind": "RSL_LICENSE",
      "label": "RSL (Really Simple Licensing) licence link declared in robots.txt",
      "licence_urls": [],
      "source": "https://www.gaipagents.com/robots.txt"
    },
    {
      "found": false,
      "http_status": 404,
      "kind": "TDMREP",
      "source": "https://www.gaipagents.com/.well-known/tdmrep.json",
      "state": "NOT_PUBLISHED"
    },
    {
      "bytes": 57071,
      "found": true,
      "http_status": 200,
      "kind": "LLMS_TXT",
      "sha256": "a142f26bfc4955775881e9449bff8c52c30fab37d0f18bec59257e7baa39ab72",
      "source": "https://www.gaipagents.com/llms.txt",
      "state": "PRESENT"
    }
  ],
  "declarations_found": [
    "LLMS_TXT"
  ],
  "declarations_note": "Other declarations are listed as found; they do not change the robots.txt verdict. Read them too: a site can allow fetching in robots.txt and still reserve AI training or text-and-data-mining rights elsewhere.",
  "does_not_say": "GAIP does not say what the law allows or what the site owner intends; it reads only the files the site published.",
  "hash_rule": "answer_sha256 = SHA-256 of the canonical JSON (keys sorted, no spaces, UTF-8) of this answer without answer_sha256, signature, signature_valid and signature_unavailable_reason, and without the routing notes a GAIP endpoint may add after signing (gaip_next_agents, gaip_outcome_follow_up, keep_watching, since_last_call, continuity, gaip_defaults_applied, persistence, continuation, continuity_handle, continuity_handle_authority, meaning, does_not_say, receipt, revoked_since, record_history, next_tool, continuity_purpose). The signature is Ed25519 over the ASCII text 'gaip.permission_answer.answer_sha256.v1:<answer_sha256>' (public keys: https://www.gaipagents.com/.well-known/gaip-receipt-keys.json).",
  "host": "www.gaipagents.com",
  "host_may_join_public_census": false,
  "matching_rule": {
    "directive": "Allow",
    "group_used": "NAMED",
    "group_user_agents": [
      "gptbot",
      "oai-searchbot",
      "chatgpt-user",
      "claudebot",
      "claude-user",
      "claude-searchbot",
      "perplexitybot",
      "google-extended",
      "googlebot",
      "bingbot",
      "applebot",
      "ccbot"
    ],
    "line": 20,
    "pattern": "/",
    "quote": "User-agent: GPTBot\nUser-agent: OAI-SearchBot\nUser-agent: ChatGPT-User\nUser-agent: ClaudeBot\nUser-agent: Claude-User\nUser-agent: Claude-SearchBot\nUser-agent: PerplexityBot\nUser-agent: Google-Extended\nUser-agent: Googlebot\nUser-agent: Bingbot\nUser-agent: Applebot\nUser-agent: CCBot\nAllow: /",
    "source": "https://www.gaipagents.com/robots.txt"
  },
  "meaning": "What the site's own files said for the named agent and path when GAIP read them at the stated time.",
  "method": "robots.txt per RFC 9309 (the agent's own group, else the * group; the longest matching rule wins and Allow wins a tie); Content-Signal, Content-Usage (IETF AI-preference draft) and License (RSL) lines in robots.txt; /.well-known/tdmrep.json (W3C TDMRep); /llms.txt presence. Only these files are read, once, through GAIP's outbound gate (no cookies, no sign-in, no redirects off the site).",
  "next_steps": [
    {
      "arguments": {
        "url": "https://www.gaipagents.com/test-range"
      },
      "tool": "gaip_check",
      "why": "Check the agent, MCP server or API at this URL works."
    }
  ],
  "next_tool": {
    "arguments": {
      "urls": [
        "https://www.gaipagents.com/test-range"
      ]
    },
    "tool": "gaip_notices",
    "why": "Has anyone withdrawn it or warned about it?"
  },
  "observed_at_utc": "2026-10-17T23:47:45Z",
  "path": "/test-range",
  "price_gbp": 0,
  "question": "May GPTBot fetch https://www.gaipagents.com/test-range?",
  "receipt": {
    "field": "answer_sha256",
    "keys": "https://www.gaipagents.com/.well-known/gaip-receipt-keys.json",
    "kind": "SIGNED_ANSWER",
    "sha256": "8a39db093d0e71f92a51cdb7e8a670a68f86fdbb39d1c7a69c60b33558e7a24f",
    "signature_valid": true
  },
  "revoked_since": {
    "checked_from": "2026-09-17T23:47:46Z",
    "events": [],
    "events_count": 0,
    "feed": "https://www.gaipagents.com/v1/free/revocations/feed.json?since=2026-09-17T23%3A47%3A46Z",
    "statement": "GAIP publishes that a fact in its record stopped being true as indexed at the stated time; it says nothing about the effect of that on any party."
  },
  "robots_txt": {
    "bytes": 612,
    "http_status": 200,
    "redirects": [],
    "sha256": "c635770f3050b83a47ac34f7afb71dfd199f78eb04f765768776d98f36f71b3c",
    "state": "READ",
    "truncated": false,
    "url": "https://www.gaipagents.com/robots.txt"
  },
  "schema_version": "gaip.permission-check.v1",
  "signature": {
    "alg": "Ed25519",
    "keys_url": "https://www.gaipagents.com/.well-known/gaip-receipt-keys.json",
    "kid": "70ae8f5c793b4f5a",
    "purpose": "gaip.permission_answer.answer_sha256.v1",
    "sig": "6YTO8RCgs5uZ4we4c_GPcs1WdF8wcmqnf51859Epo2u6xb4-8SowgvHUSeJbn4YXDveXDmbL3B7TpsFN8ds6Bw",
    "signed_digest": "8a39db093d0e71f92a51cdb7e8a670a68f86fdbb39d1c7a69c60b33558e7a24f",
    "signed_message": "gaip.permission_answer.answer_sha256.v1:8a39db093d0e71f92a51cdb7e8a670a68f86fdbb39d1c7a69c60b33558e7a24f"
  },
  "signature_unavailable_reason": null,
  "signature_valid": true,
  "since_last_call": {
    "meaning": "This answer issued the handle: send its continuity_handle back next time and this lists what changed in GAIP's record about what you asked since this call.",
    "previous_call_utc": null,
    "state": "FIRST_CALL"
  },
  "statement": "A reading of the site's published files at the stated time; not legal advice or a licence. robots.txt rules are not a form of access authorization (RFC 9309, s.1); ALLOWED is not permission from the site.",
  "status": "COMPLETED_READ_ONLY",
  "stored": false,
  "stored_meaning": "This answer, your agent token and your identity are not stored; see census_note for the site's host name.",
  "tool": "gaip_check_permission",
  "url": "https://www.gaipagents.com/test-range",
  "verdict": "ALLOWED",
  "verdict_meaning": "robots.txt has a rule for this agent and path, and it allows the fetch."
}