Arvica Cloud API 参考
将服务端工作流连接到 Arvica。通过受限 API 密钥查看公司资源并提交支持的算力申请。
认证
已验证的客户管理员可在平台创建密钥。使用最小权限的 gpu:read、gpu:write、serverless:read、serverless:write、usage:read 和 billing:read。密钥限制在所属公司范围内,最长有效期为 90 天,并可随时撤销。
export ARVICA_API_BASE="https://cloud.arvica.ai"
export ARVICA_API_KEY="arv_live_…"
curl "$ARVICA_API_BASE/v1/gpus" \
-H "Authorization: Bearer $ARVICA_API_KEY"接口
| 方法 | 路径 | 用途 |
|---|---|---|
GET | /v1/gpus | List live GPU products and rates |
POST | /v1/quotes | Quote a live GPU configuration (gpu:write; no compute, no charge) |
POST | /v1/deployments | Deploy a quoted live GPU instance, or submit a non-live capacity request for review |
GET | /v1/deployments/{id} | Poll a deployment's state |
GET | /v1/deployments | List your company's deployment records |
POST | /v1/deployments/{id}/start | Start a managed deployment |
POST | /v1/deployments/{id}/stop | Stop a managed deployment |
DELETE | /v1/deployments/{id} | Terminate a managed deployment |
GET | /v1/usage | List recorded customer usage |
GET | /v1/billing/summary | Read the wallet and billing summary |
GET | /v1/serverless/endpoints | List Serverless endpoints |
POST | /v1/serverless/endpoints | Create a Serverless endpoint |
GET | /v1/ssh-keys | List SSH public keys |
POST | /v1/ssh-keys | Add an SSH public key |
GET | /v1/volumes | List recorded volumes |
GET | /v1/balance | Read contract balance from the ledger |
GET | /v1/team | Read active company team members |
所有 API 接口均需要 Authorization: Bearer。每个密钥每 15 分钟最多 100 次请求。输入无效返回 400,认证无效返回 401,权限不足返回 403,资源不存在返回 404,操作不可用返回 409,触发限流返回 429。
部署 GPU 实例
- 通过 GET /v1/gpus 列出实时 GPU,并选择产品 id。
- 通过 POST /v1/quotes(gpu:write)申请报价。报价不会开通算力、预留容量或产生费用。报价绑定贵公司,在 expiresAt 失效,且只能用于一次部署。
- 通过 POST /v1/deployments 部署:提供 quoteToken、相同配置、consent: true 以及 Idempotency-Key 请求头。consent: true 表示授权进入计费开通流程。
- Arvica 会重新核验报价、精确数量库存、锁定价格、SSH 密钥(sshKeyId 或默认已保存密钥)以及预付余额。
- 符合条件的部署记录为 PENDING_PROVIDER,并自动开通,无需人工审核。请轮询 GET /v1/deployments/{id}。
curl --request POST "$ARVICA_API_BASE/v1/quotes" \
--header "Authorization: Bearer $ARVICA_API_KEY" \
--header "Content-Type: application/json" \
--data '{ "productId": "h100-sxm-80gb", "gpuCount": 1, "storageGB": 100, "region": "Best Available", "mode": "ON_DEMAND", "term": "On demand" }'
curl --request POST "$ARVICA_API_BASE/v1/deployments" \
--header "Authorization: Bearer $ARVICA_API_KEY" \
--header "Idempotency-Key: GENERATE-AND-REUSE-A-UUID" \
--header "Content-Type: application/json" \
--data '{
"quoteToken": "QUOTE-TOKEN-FROM-POST-V1-QUOTES",
"name": "Production inference",
"productId": "h100-sxm-80gb",
"gpuCount": 1,
"storageGB": 100,
"region": "Best Available",
"mode": "ON_DEMAND",
"term": "On demand",
"maxRuntimeHours": 0.5,
"maxSpendAUD": 3,
"consent": true
}'安全上限由 Arvica 在服务端执行,而非依赖客户端:maxRuntimeHours 在实例运行达到该时长后终止实例。maxSpendAUD 为澳元上限,受理时一次性换算为钱包结算币种:澳元钱包按原值精确换算(3 即 300 分);美元钱包按报价中记录的参考汇率换算并向下取整,确保不超过澳元金额。实例记录的用量达到该上限即终止。非澳元钱包若无报价汇率,请求将被拒绝(SPEND_CAP_CONVERSION_UNAVAILABLE)。响应中的 deployment.spendCap 显示实际执行的上限。实例运行期间约每分钟检查一次。DELETE /v1/deployments/{id} 用于终止部署。
| 状态 | 情形 | 处理方式 |
|---|---|---|
PENDING_PROVIDER | 符合条件的报价部署请求 | 自动开通;实例创建后按计量计费。 |
PENDING_PAYMENT | 预付余额不足以覆盖首个小时 | 不创建实例,不产生费用。 |
PENDING_REVIEW | 无报价的非实时容量请求 | 不创建实例,不产生费用。 |
| 拒绝 | 报价缺失、过期、变更或不属于贵公司;缺少 SSH 密钥;上限无效;库存不可用;多节点或预留 | 返回 400/404/409 及错误码,例如 QUOTE_REQUIRED、QUOTE_EXPIRED、QUOTE_MISMATCH、QUOTE_ALREADY_USED、IDEMPOTENCY_CONFLICT、SSH_KEY_REQUIRED 或 TOPOLOGY_UNSUPPORTED;不会下单或收费。使用相同 Idempotency-Key 重试相同请求将安全返回原部署。 |
使用边界
API 只会返回该密钥所属公司的资源,不会公开供应商管理、供应商成本、利润、其他客户数据或未确认库存。请勿在请求中发送私钥、密码或原始数据集。