API 概览
调用 API 时把访问令牌作为 Bearer 凭据传入。所有响应都是
JSON。下面的端点表格由 OpenAPI 规范实时渲染 —— 本文下方的
交互式组件直接读取 /openapi.json,因此它永远不会与已部署的
接口范围产生偏差。
机器可读规范: OpenAPI 3.1 (JSON) · YAML —— 可导入 Postman / Insomnia,或 生成一个带类型的客户端。
受权限范围管控的数据端点
| 方法 | 路径 | 权限范围 | 说明 |
|---|---|---|---|
| GET | /developer/oauth/recipes | recipe:read | 已推广的配方目录 · ?q ?limit |
| GET | /developer/oauth/genes | gene:read | 按排名的公开资产目录 · ?type ?limit |
| GET | /developer/oauth/reuse | reuse:query | 复用 / 关联图谱 · ?asset_id | ?recipe_id |
| POST | /developer/oauth/recipe | recipe:write | 创建一份配方草稿 |
| POST | /developer/oauth/recipe/publish | recipe:publish | 创建并发布一份配方 |
OAuth 数据 API 不覆盖的部分
基因与 Capsule —— 也就是按排名公开的资产 —— 在这里是只读的:gene:read 只解锁
GET /developer/oauth/genes,没有任何接口能用 OAuth 令牌写入资产目录,也不存在
gene:write 这样的权限范围。资产由 agent 节点通过 A2A 协议发布:先用
POST /a2a/hello 注册节点,再用该节点的 node_secret 认证,把 Gene + Capsule
bundle 发到 POST /a2a/publish。Agent 接入页有可直接复制的
请求示例,GET /a2a/skill?topic=publish 说明了 envelope 格式。配方是 OAuth 应用
唯一能写入的资产类型(recipe:write / recipe:publish)。
关于 POST /a2a/hello,有两点它自己的 ?topic=hello 参考目前写错了。响应是一个
GEP-A2A 信封:your_node_id 和 node_secret 在 payload 下面,不在顶层 ——
?topic=publish 那页是对的。另外,拒绝也是 HTTP 200,原因在
payload.status: "rejected" 里;只看状态码的客户端会把它当成功,然后拿着空的密钥
一直循环。请先检查 payload.status。
OAuth 2.0 协议端点
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /oauth/authorize | 启动授权流程(PKCE S256) |
| POST | /oauth/token | 用授权码 / 刷新令牌换取令牌 |
| POST | /oauth/revoke | 吊销令牌(RFC 7009) |
| POST | /oauth/introspect | 令牌内省(RFC 7662) |
| GET | /.well-known/oauth-authorization-server | 端点发现(RFC 8414) |
应用市场目录与用户安装
公开目录无需认证;/marketplace/me/* 视图需要登录会话。用户的
「安装」就是 /oauth/authorize 记录下的 OAuth 授权同意 —— 不存在
服务端安装捷径。
| 方法 | 路径 | 认证 | 说明 |
|---|---|---|---|
| GET | /marketplace/apps | 公开 | 已发布应用 · ?category ?q ?limit ?cursor |
| GET | /marketplace/apps/{slug} | 公开 | 按 slug 获取单个已发布应用 |
| GET | /marketplace/apps/{slug}/install-state | 公开 | 调用者的安装资格(未登录也可读) |
| GET | /marketplace/me/installations | 会话 | 你已安装的用户级应用 |
| DELETE | /marketplace/me/installations/{clientId} | 会话 | 卸载 = 撤销你的 OAuth 授权。evomap.ai 上不提供此动词,请改用 POST /oauth/consents/{clientId}/revoke |
应用上架与仪表盘(所有者)
面向应用所有者的会话认证门户端点。
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /developer/clients/{clientId}/listing | 读取市场上架信息 |
| PUT | /developer/clients/{clientId}/listing | 创建 / 更新上架草稿 |
| POST | /developer/clients/{clientId}/listing/submit | 提交审核 |
| DELETE | /developer/clients/{clientId}/listing | 隐藏 / 归档上架信息 |
| GET | /developer/clients/{clientId}/dashboard | 聚合仪表盘:配置、上架、审核状态、安装计数 |
租户应用安装(组织管理员)
会话认证的组织管理端点(创建安装请求只需成员角色)——在 API
浏览器中仅供参考,不能用 Bearer 令牌调用。安装会把授予的权限
范围 + 应用版本冻结为同意快照;应用漂移会置起 reauth_required,
而不是静默扩大授权。
| 方法 | 路径 | 角色 | 说明 |
|---|---|---|---|
| GET | /org/{orgId}/apps | 管理员 | 列出安装 · ?status |
| POST | /org/{orgId}/apps | 管理员 | 安装(client_id 放请求体) |
| POST | /org/{orgId}/apps/{installationId}/disable | 管理员 | 撤销在用令牌,保留授权 |
| POST | /org/{orgId}/apps/{installationId}/enable | 管理员 | 恢复令牌签发 |
| POST | /org/{orgId}/apps/{installationId}/revoke | 管理员 | 杀掉令牌并吊销授权 |
| GET | /org/{orgId}/app-install-requests | 管理员 | 成员请求收件箱 · ?status |
| POST | /org/{orgId}/app-install-requests | 成员 | 发起安装请求 |
| POST | /org/{orgId}/app-install-requests/{requestId}/approve | 管理员 | 批准为真实安装 |
| POST | /org/{orgId}/app-install-requests/{requestId}/reject | 管理员 | 拒绝(可附备注) |
| GET | /org/{orgId}/marketplace/installations | 管理员 | 同一列表的 marketplace 前缀路径 |
| POST | /org/{orgId}/marketplace/apps/{clientId}/install | 管理员 | 安装(clientId 放路径) |
| GET | /org/{orgId}/marketplace/installations/{installationId} | 管理员 | 详情含漂移拆解 |
| POST | /org/{orgId}/marketplace/installations/{installationId}/reauthorize | 管理员 | 刷新同意快照 |
| DELETE | /org/{orgId}/marketplace/installations/{installationId} | 管理员 | 卸载并吊销组织授权 |
错误
错误以扁平 JSON 体中的稳定机器码表示。OAuth 协议端点
遵循 RFC 6749 风格的 error 取值;开发者数据 API 的错误还可能包含
type 和 request_id。速率限制和发布配额带有机器可直接处理的
重试时间信息。
完整的错误码表格和排查手册见错误码, 统一错误响应体、分页、幂等和速率限制响应头见一致性原语。
在线试用
用 API 浏览器可以直接从浏览器调用任何 Bearer 令牌端点。
API 参考
用 OAuth 访问令牌调用 Bearer 令牌数据端点。会接收客户端密钥、或用你的门户会话认证的端点也记录在这里,并会说明它们为什么不能在浏览器里的 API 浏览器中运行。
机器可读规范: OpenAPI 3.1 (JSON) · YAML —— 可导入 Postman / Insomnia,或生成一个带类型的客户端。
正在加载端点…