{
  "name": "Kairostamp",
  "description": "Paid machine-to-machine web evidence API. Fetches one public http/https URL server-side and returns a time-stamped, tamper-evident receipt; the change-check endpoint also compares it against a caller-supplied baseline.",
  "documentation_url": "https://kairostamp.com/docs",
  "terms_url": "https://kairostamp.com/terms",
  "privacy_url": "https://kairostamp.com/privacy",
  "acceptable_use_url": "https://kairostamp.com/acceptable-use",
  "refunds_url": "https://kairostamp.com/refunds",
  "contact_url": "https://kairostamp.com/contact",
  "contact_email": "support@kairostamp.com",
  "legal": {
    "brand": "Kairostamp",
    "operator": "individual operator trading as Kairostamp",
    "entity_status": "preformation",
    "entity_formed": false,
    "pending_entity": "LentiLabs LLC",
    "jurisdiction": "New Mexico",
    "effective_date": null,
    "governing_law": "Intended governing law and venue: New Mexico, United States. This venue takes effect once LentiLabs LLC formation is approved; until then the operator does not assert an exclusive venue, and mandatory consumer protections in your jurisdiction continue to apply.",
    "statement": "Kairostamp is presently operated by its individual operator, trading under the Kairostamp name. LentiLabs LLC (New Mexico) formation is pending and that entity does not yet operate the service.",
    "contact_email": "support@kairostamp.com",
    "policy_version": "1.1",
    "policy_effective_date": "23 August 2026"
  },
  "policy": {
    "version": "1.1",
    "effective_date": "23 August 2026"
  },
  "delivery": {
    "model": "synchronous",
    "note": "One paid call performs one server-side fetch and returns one receipt in the HTTP response. There is no background monitoring, no queue and no retry: repeat checks require a new call.",
    "settlement_order": "The snapshot is attempted before payment settles; a failed snapshot is not charged.",
    "refund_note": "Completed calls are generally final once the result is delivered, except duplicate or erroneous charges, non-delivery, and any refund required by applicable consumer law."
  },
  "discovery": {
    "discovery_enabled": true,
    "bazaar_enabled": true,
    "indexable": true,
    "publicly_discoverable": true,
    "reason": null,
    "note": "Public discovery is enabled: paid endpoints advertise Bazaar discovery metadata in their 402 challenges."
  },
  "status": {
    "stage": "live",
    "network_phrase": "Base mainnet",
    "mainnet_enabled": true,
    "discovery_enabled": true,
    "availability_guarantee": false,
    "note": "Live network. No uptime, availability, legal certification or compliance guarantee."
  },
  "anchoring": {
    "network": "eip155:84532",
    "network_label": "base-sepolia",
    "production": false,
    "note": "Receipt anchoring is non-production: checkpoints are written to the Base Sepolia test network only and carry no mainnet guarantee."
  },
  "payment": {
    "protocol": "x402",
    "version": 2,
    "scheme": "exact",
    "network": "eip155:8453",
    "network_label": "base",
    "environment": "production",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "asset_label": "USDC",
    "price": "$0.01",
    "amount_atomic": 10000,
    "currency": "USDC",
    "testnet": false,
    "mainnet_enabled": true,
    "note": "Compliant x402 clients negotiate payment automatically from the 402 response. Do not send a payment header on the first request."
  },
  "paid_endpoints_advertised": true,
  "endpoints": [
    {
      "name": "snapshot_preflight",
      "method": "POST",
      "url": "https://kairostamp.com/api/v1/snapshot/preflight",
      "paid": false,
      "description": "Free eligibility and price check for a target URL. Performs no outbound fetch and stores nothing."
    },
    {
      "name": "snapshot",
      "method": "POST",
      "url": "https://kairostamp.com/api/v1/snapshot",
      "paid": true,
      "description": "Kairostamp evidence snapshot: server-side fetch of one public http/https URL, returning a time-stamped receipt with the response status, content type, byte length, SHA-256 of the body, redirect chain, a text preview, and a tamper-evident hash-chain entry.",
      "mime_type": "application/json",
      "input_schema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "url"
        ],
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "maxLength": 2048,
            "description": "Public http/https URL to snapshot.",
            "examples": [
              "https://example.com/"
            ]
          }
        },
        "examples": [
          {
            "url": "https://example.com/"
          }
        ]
      },
      "output_schema": {
        "type": "object",
        "required": [
          "receipt_id",
          "chain_hash",
          "receipt"
        ],
        "properties": {
          "receipt_id": {
            "type": "string",
            "format": "uuid",
            "description": "Evidence receipt identifier."
          },
          "previous_chain_hash": {
            "type": [
              "string",
              "null"
            ],
            "description": "SHA-256 hash-chain value of the previous receipt, or null for the first entry."
          },
          "chain_hash": {
            "type": "string",
            "description": "SHA-256 hash-chain value of this receipt."
          },
          "receipt": {
            "type": "object",
            "required": [
              "url",
              "fetched_at",
              "status_code",
              "content_type",
              "byte_length",
              "sha256",
              "redirect_chain",
              "text_preview"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri",
                "description": "Final URL that was fetched."
              },
              "fetched_at": {
                "type": "string",
                "format": "date-time",
                "description": "Server fetch timestamp (UTC)."
              },
              "status_code": {
                "type": "integer",
                "description": "HTTP status returned by the target."
              },
              "content_type": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Response Content-Type, if provided."
              },
              "byte_length": {
                "type": "integer",
                "description": "Bytes read from the response body."
              },
              "sha256": {
                "type": "string",
                "description": "SHA-256 of the response body bytes."
              },
              "redirect_chain": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uri"
                },
                "description": "Ordered URLs of any redirects followed (max 3)."
              },
              "text_preview": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "First 4,000 characters of decoded text, when the body is textual."
              }
            }
          }
        }
      }
    },
    {
      "name": "change_check",
      "method": "POST",
      "url": "https://kairostamp.com/api/v1/change-check",
      "paid": true,
      "description": "Kairostamp change check: server-side fetch of one public http/https URL, compared against a caller-supplied prior SHA-256 or prior Kairostamp receipt id. Returns whether the response body changed, both digests, and a new time-stamped evidence receipt with its tamper-evident hash-chain entry. One call performs one check; repeat monitoring means calling again.",
      "mime_type": "application/json",
      "input_schema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "url"
        ],
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "maxLength": 2048,
            "description": "Public http/https URL to fetch and compare.",
            "examples": [
              "https://example.com/"
            ]
          },
          "prior_sha256": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$",
            "description": "SHA-256 of the previously observed response body. Supply exactly one of prior_sha256 or prior_receipt_id."
          },
          "prior_receipt_id": {
            "type": "string",
            "format": "uuid",
            "description": "Id of an earlier Kairostamp receipt whose digest should be used as the baseline. Supply exactly one of prior_sha256 or prior_receipt_id."
          }
        },
        "examples": [
          {
            "url": "https://example.com/",
            "prior_sha256": "ff67a9d764d6a2367a187734e697f6a53217db9a21c101d410a113ca871a299d"
          }
        ]
      },
      "output_schema": {
        "type": "object",
        "required": [
          "changed",
          "previous_sha256",
          "current_sha256",
          "receipt_id",
          "chain_hash",
          "receipt"
        ],
        "properties": {
          "changed": {
            "type": "boolean",
            "description": "True when the current body digest differs from the baseline digest."
          },
          "previous_sha256": {
            "type": [
              "string",
              "null"
            ],
            "description": "Baseline digest used for the comparison."
          },
          "current_sha256": {
            "type": "string",
            "description": "SHA-256 of the body fetched now."
          },
          "receipt_id": {
            "type": "string",
            "format": "uuid",
            "description": "Evidence receipt identifier."
          },
          "previous_chain_hash": {
            "type": [
              "string",
              "null"
            ],
            "description": "Hash-chain value of the previous receipt."
          },
          "chain_hash": {
            "type": "string",
            "description": "Hash-chain value of this receipt."
          },
          "receipt": {
            "type": "object",
            "required": [
              "url",
              "fetched_at",
              "status_code",
              "content_type",
              "byte_length",
              "sha256",
              "redirect_chain",
              "text_preview"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "fetched_at": {
                "type": "string",
                "format": "date-time"
              },
              "status_code": {
                "type": "integer"
              },
              "content_type": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "byte_length": {
                "type": "integer"
              },
              "sha256": {
                "type": "string"
              },
              "redirect_chain": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "text_preview": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        }
      }
    }
  ],
  "limits": {
    "timeout_seconds": 10,
    "max_body_bytes": 1048576,
    "max_redirects": 3,
    "text_preview_chars": 4000,
    "url_schemes": [
      "http",
      "https"
    ],
    "private_networks": "refused"
  }
}