跳到主要内容

HTTP API 参考

当你的服务无法使用 Python SDK 时,可以直接调用 HTTP API。在交互式终端中,优先使用 CLI管理鉴权、输出和资源操作。

业务作业统一使用 /v1/job:提交时设置 type=agent|sandbox|train|inference(省略为 agent),训练列表使用 ?type=train。详情与结果使用 job_id,训练专属字段在 training 中;停止为 POST /v1/job/{job_id}/stop。旧 jobs/train/sessions API 已移除,客户端与平台须配套升级。协议原生 create_session/session_id 仅限协议适配器。

地址与鉴权​

用途地址鉴权方式
官网与产品介绍https://envloop.ai公开页面
网页控制台https://console.envloop.ai浏览器登录
CLI、SDK 与资源 APIhttps://api.envloop.aiBearer API Key
OpenAI 兼容推理https://api.envloop.ai/v1/job/YOUR_JOB_ID/Inference有权限的项目密钥以及就绪的端点
兼容训练 SDK 协议https://api.envloop.ai/v1/job/tinker通过 TINKER_CREDENTIAL_CMD 提供项目密钥

按认证指南在控制台创建项目密钥。通过终端的隐藏输入或服务的密钥管理器设置 ENVLOOP_API_KEY。不要把密钥放进网页 URL 或前端构建文件。

curl --fail-with-body --silent --show-error \
https://api.envloop.ai/v1/me \
-H "Authorization: Bearer $ENVLOOP_API_KEY"

成功响应可以确认密钥代表的身份与允许的作用域。浏览器会话和 API Key 是不同凭据。本文列出一个接口,并不代表所有密钥都能调用它。仅允许真人账户执行的管理操作需要登录控制台,项目操作还会检查资源归属与凭据能力。

工作区与项目上下文​

配置了上下文后,SDK 会发送 X-Workspace-ID 和 X-Project-ID。直接调用 HTTP 时也可以设置相同的请求头:

curl --fail-with-body --silent --show-error \
'https://api.envloop.ai/v1/job?limit=10' \
-H "Authorization: Bearer $ENVLOOP_API_KEY" \
-H "X-Workspace-ID: $ENVLOOP_WORKSPACE_ID" \
-H "X-Project-ID: $ENVLOOP_PROJECT_ID"

填写当前所选工作区和项目的实际 ID,不要填写显示名称。请求头用于选择上下文,不能扩大密钥权限。切换项目时检查环境变量,避免沿用另一个项目的值。省略上下文时,以平台实际解析出的结果为准,不要假定选中了某个项目。

按功能查找资源接口​

以下路径都相对于资源 API 地址。花括号内是占位标识符,普通 ID 路径参数需要 URL 编码;Dataset 和 Profile 的逻辑名称需要先将 UTF-8 字节转换为不带填充符的 base64url。例如 team/data 不能直接作为路径片段,也不能只替换为百分号编码。建议使用 SDK 处理名称编码。请求体和经过核对的示例见对应指南或 SDK 方法,不要根据控制台显示文字猜测字段。

资源主要路径使用指南
身份与当前上下文/v1/me;/v1/session-context 仅供浏览器账户上下文使用连接并验证身份
Jobs/v1/job、/v1/job/{job_id}、/v1/job/{job_id}/result提交、检查与停止运行
Job 评测快照/v1/job/{job_id}/leaderboard查看聚合结果
Trials/v1/trials、/v1/trials/{trial_id},以及 Trial 下的 /detail、/logs、/result检查一次尝试
Trial 产物/v1/trials/{trial_id}/artifacts,以及文件内容与下载接口读取输出文件
Datasets/v1/datasets、/v1/datasets/{encoded_name}/versions,以及版本的任务列表选择数据集版本
Profiles/v1/profiles,以及详情、版本和默认版本接口复用执行参数
Checkpoints/v1/job/checkpoints、/v1/job/checkpoints/{checkpoint_id}、…/ttl、…/visibility、/v1/job/checkpoints/copy、/v1/job/checkpoints/usage,以及下载接口保存、检查与恢复
Serving Profiles/v1/serving/profiles选择受支持的推理模板
Adapters/v1/adapters、/v1/adapters/{adapter_id}注册训练权重
Endpoints/v1/endpoints、/v1/endpoints/{endpoint_id},以及事件和操作接口部署、暂停与恢复推理
清理操作/v1/projects/{project_id}/cleanup-operations、/v1/projects/{project_id}/operations/{operation_id},以及重试接口跟踪异步清理
临时资源作用域/v1/projects/{project_id}/temporary-resource-scopes,以及详情和 retain 接口保留指定训练产物
Billing/v1/billing/account、/ledger、/prices、/usage,以及工作区账单接口理解用量与费用
工作区与项目/v1/workspaces,以及工作区项目列表与项目详情(浏览器账户操作)选择与管理上下文
成员与邀请工作区 members/invitations,以及项目 members/member-candidates 接口管理访问权限
项目凭据项目 /api-keys 与 /service-accounts 接口管理密钥和机器身份
项目限制项目 /limits 接口了解资源限制

训练仅支持托管 Job:client.training_jobs.models() 查询配方,client.training_jobs.submit(request) 提交;公开交互式训练完全退役,见迁移。

托管发现:GET /v1/job/training-models 返回项目可见的已配置配方、冻结 revision、模态、features/limits(labels、父 checkpoint、超参范围、loss 掩码、序列长度)与请求 schema。type=train Job 返回准入时的 labels、实际 hyperparameters、parent_checkpoint,成功后返回 checkpoint.path,见 Qwen3.8-27B 选项。readiness=configured 不保证准入或 GPU 容量。退役交互路由返回 410 INTERACTIVE_TRAINING_REMOVED;Job/checkpoint/history 与正常 inference 保留原权限。

读取已有结果​

curl --fail-with-body --silent --show-error \
"https://api.envloop.ai/v1/job/$JOB_ID/result" \
-H "Authorization: Bearer $ENVLOOP_API_KEY" \
-H "X-Workspace-ID: $ENVLOOP_WORKSPACE_ID" \
-H "X-Project-ID: $ENVLOOP_PROJECT_ID"

提交成功后立即记录资源 ID,再以合理间隔和明确截止时间轮询该资源。接受提交不代表执行、评分、checkpoint 上传或部署已经结束,各资源状态的含义见对应指南。

创建 Job 遇到网络响应不确定时,可以通过 SDK 或提交契约中的 request_id 找回同一次请求。只有请求意图不变时才复用它;改变实验参数需要新 ID。重试写操作前先读取已有资源,不要在等待就绪时反复创建端点或训练任务。

分页与下载​

列表接口可能返回后续游标。保留原有过滤条件,将返回的游标用于下一页;没有后续游标时结束。单页结果不等于全部资源。字段名和条数限制按资源区分,使用对应 CLI 帮助或 SDK 方法,不要假定所有列表响应结构相同。

下载文件时优先使用 SDK/CLI 提供的方法。签名下载链接会过期,并且自身带有访问凭据。直接处理存储重定向时,不要向存储域名转发平台 Bearer 密钥或上下文请求头。如果返回了文件大小或 hash,应进行核验;链接过期时重新请求下载地址。

处理错误​

响应先检查什么下一步
400 / 422请求字段、ID 格式和选项是否受支持修正请求,重复发送相同错误请求无助于恢复
401密钥缺失、过期、撤销或 API 地址错误用 /v1/me 验证并更新保存的配置
403密钥能力、项目角色或仅允许真人执行的操作使用具备权限的身份,上下文请求头不能提权
404资源 ID、项目上下文、删除状态或可见性在同一项目确认资源后再考虑创建替代资源
409并发修改、状态冲突或前置条件不满足刷新资源,再针对当前状态执行操作
429频率限制以及响应中的重试提示在明确截止时间内退避重试
5xx / 超时暂时性服务错误或运行仍在处理中重试写操作前读取已有资源,保留请求和资源 ID

请求帮助时提供 UTC 时间、方法与路径、HTTP 状态、错误码及相关资源或请求 ID。移除 Authorization 请求头、签名 URL 和私有任务内容。详见故障排查。

下一步​

CLI 参考 · Python SDK 参考 · 推理端点 · 客户端配置