Skip to main content

403 会告诉您什么

权限拒绝带的信息不止一个错误码。除了 error_code: ACCESS_DENIED,data 里还会写明缺的是哪个权限、以及授予什么就能通过,您不必靠猜:
array
被检查且未持有的权限。permission 就是需要授予的标识符;permission_level 说明它是整个服务授予一次,还是按资源实例逐个授予。
string
决定您该向管理员提哪种请求。capability —— 去要这项权限本身;您在任何地方都没有它,只放开这一个资源是不够的。instance —— 去要这个资源的访问范围;这项权限您在别处已经有了。
array
其中任意一项授予了就能通过。把它交给管理团队权限的人,这是「我需要什么」最短的答案。
拒绝不会告诉您资源是否存在——403 只表示「不给您」,不含别的信息。删除也一样:先检查权限。权限通过后,删除已被删掉或本来就不存在的资源都返回 200,所以重复删除可以安全重试。如果您能删除某个资源,靠的只是单独授予在这个资源上的权限(而不是您的角色),这项授权会随资源一起删除,再删一次就会返回 403。删除不存在的知识条目目前返回 400。
在团队、成员、邀请、API Key、访问控制、用量、计费与 IM 集成接口上,缺少权限时返回 403、ACCESS_DENIED 和消息 permission denied,不带 data 对象;每个接口所需的权限写在该接口的页面上。

为保护管理员而拒绝

有些改动会让某人获得管理员角色,或减少管理员的访问权限。这类改动只能由团队所有者或管理员执行;其他人会收到 403 和 ACCESS_DENIED,此时 data.operation 给出的是被拒绝的改动类型,而不是缺少的权限:
operation 的取值为 change_role、remove_member、remove_group_member、delete_group、reduce_admin_role_rules、narrow_admin_role_scope、narrow_admin_member_scope、downgrade_admin_member_tier、narrow_admin_via_group 或 remove_admin_member_rule,今后可能增加。

HTTP 状态码

错误响应

当请求失败时,API 会返回结构化的错误体以及 HTTP 状态码。error_code 字段标识具体错误,便于程序化处理:
所有 MemoryLake API 接口都按这一格式返回错误,包括请求到达服务之前就被拒绝的情况:API Key 缺失或无效(401)、Key 从不被允许的地址调用(403)、超出速率限制(429)、服务无法连接(502)以及维护中(503)。唯一的例外是 Memory Router 的推理端点:它们保持模型厂商的格式。就某个请求联系支持团队时,请提供它的 X-Trace-ID 响应头。
2026 年 10 月之前,上述拒绝使用的是另一种响应体 {"error": {"message", "type"}}。如果您的代码读取的是 error.message,请改为读取 message 和 error_code。

错误代码

错误处理最佳实践

重试逻辑

错误日志

后续步骤

认证

了解认证

速率限制

了解速率限制