{
  "service": "magic-collector",
  "version": "0.1.0",
  "docs": "POST a body to /v1/dumps with \"Authorization: Bearer <api key or access token>\".",
  "endpoints": {
    "whoami": "GET /v1",
    "create_dump": "POST /v1/dumps  (raw body; headers: Content-Type, X-Dump-Name, X-Dump-Meta (JSON), X-Dump-SHA256, X-Dump-Retention-Days)",
    "set_retention": "PATCH /v1/dumps/{id}  {\"retention_days\": N}  (manage-and-delete)",
    "list_dumps": "GET /v1/dumps?limit=&cursor=",
    "get_dump": "GET /v1/dumps/{id}",
    "get_content": "GET /v1/dumps/{id}/content",
    "delete_dump": "DELETE /v1/dumps/{id}",
    "renew_api_key": "POST /v1/auth/renew",
    "oauth_token": "POST /oauth/token  (grant_type=client_credentials | authorization_code | refresh_token)",
    "oauth_authorize": "GET /oauth/authorize  (authorization code + PKCE S256; approve by pasting an API key)",
    "oauth_register": "POST /oauth/register  (dynamic client registration, public clients)",
    "mcp": "POST /mcp  (MCP streamable HTTP, stateless)"
  },
  "scopes": [
    "dump-only",
    "read-only",
    "dump-and-read",
    "manage-and-delete"
  ],
  "retention": {
    "default_days": 30,
    "note": "Whole days counted from creation; 0 or negative keeps the dump until it is deleted. Prefer a long finite period over indefinite."
  },
  "limits": {
    "max_dump_bytes": 100000000,
    "max_mcp_dump_bytes": 10000000,
    "instance_storage_bytes": 10000000000
  }
}