ARVICA / 开发者

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/gpusList live GPU products and rates
POST/v1/quotesQuote a live GPU configuration (gpu:write; no compute, no charge)
POST/v1/deploymentsDeploy 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/deploymentsList your company's deployment records
POST/v1/deployments/{id}/startStart a managed deployment
POST/v1/deployments/{id}/stopStop a managed deployment
DELETE/v1/deployments/{id}Terminate a managed deployment
GET/v1/usageList recorded customer usage
GET/v1/billing/summaryRead the wallet and billing summary
GET/v1/serverless/endpointsList Serverless endpoints
POST/v1/serverless/endpointsCreate a Serverless endpoint
GET/v1/ssh-keysList SSH public keys
POST/v1/ssh-keysAdd an SSH public key
GET/v1/volumesList recorded volumes
GET/v1/balanceRead contract balance from the ledger
GET/v1/teamRead active company team members

所有 API 接口均需要 Authorization: Bearer。每个密钥每 15 分钟最多 100 次请求。输入无效返回 400,认证无效返回 401,权限不足返回 403,资源不存在返回 404,操作不可用返回 409,触发限流返回 429。

部署 GPU 实例

  1. 通过 GET /v1/gpus 列出实时 GPU,并选择产品 id。
  2. 通过 POST /v1/quotes(gpu:write)申请报价。报价不会开通算力、预留容量或产生费用。报价绑定贵公司,在 expiresAt 失效,且只能用于一次部署。
  3. 通过 POST /v1/deployments 部署:提供 quoteToken、相同配置、consent: true 以及 Idempotency-Key 请求头。consent: true 表示授权进入计费开通流程。
  4. Arvica 会重新核验报价、精确数量库存、锁定价格、SSH 密钥(sshKeyId 或默认已保存密钥)以及预付余额。
  5. 符合条件的部署记录为 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 只会返回该密钥所属公司的资源,不会公开供应商管理、供应商成本、利润、其他客户数据或未确认库存。请勿在请求中发送私钥、密码或原始数据集。