Reference
Manifest
The auto-generated surf.json manifest
Manifest#
The manifest is auto-generated from your config and served at /.well-known/surf.json. It includes a SHA-256 checksum for cache validation and drift detection.
json
// GET /.well-known/surf.json{ "surf": "1.0", "name": "My Store", "description": "A Surf-enabled e-commerce API", "version": "1.0.0", "baseUrl": "https://shop.example.com", "auth": { "type": "bearer", "description": "JWT Bearer token" }, "commands": { "search": { "description": "Search products", "params": { "query": { "type": "string", "required": true }, "limit": { "type": "number", "default": 10 } }, "returns": { "type": "object" }, "tags": ["catalog"], "hints": { "idempotent": true, "sideEffects": false } }, "cart.add": { "description": "Add item to cart", "params": { "sku": { "type": "string", "required": true } }, "auth": "required" } }, "events": { "cart.updated": { "description": "Cart contents changed", "data": { "items": { "type": "array" } } } }, "types": { "CartItem": { "type": "object", "properties": { "sku": { "type": "string" }, "quantity": { "type": "number" } } } }, "checksum": "a1b2c3d4e5f6...", "updatedAt": "2025-03-20T18:00:00.000Z"}The manifest supports ETag-based caching. Clients send If-None-Match with the checksum, and Surf returns 304 Not Modified if unchanged. The Cache-Control header is set to public, max-age=300 by default.