账户
激活、余额、充值、密钥与套餐管理。
概览
基础路径:
/v1/accountPython 命名空间:
accounttext
# Python
from infrai import account
# TypeScript
import { InfraiClient } from "@infrai/sdk";
const client = new InfraiClient({ apiKey: process.env.INFRAI_API_KEY! });
// → client.account方法
account.activate
POST /v1/activate
一次调用完成入驻:匿名账户、项目密钥与试用额度(Python)。
Python
python
infra.activate(*, region="auto", device_kind="cli", write_credentials=True) -> ActivateResultTypeScript
typescript
// activation runs via the CLI / infra.activate() in Python; the JS client takes a key directly参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
region | "auto" | "western" | "china" | 可选 | 激活所在区域。 |
write_credentials | boolean | 可选 | 激活后将凭证持久化到本地。 |
返回
ActivateResult { account_id, project_id, primary_api_key, trial_credit_usd, checkout_url }示例
一次性前置(每个范例都假定已完成):
bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...python
from infrai import infra
# One-line onboarding: anonymous account + device fingerprint + trial credit.
act = infra.activate()
print("activated:", act.ok, "| trial: $%.2f" % act.trial_credit_usd)account.balance
GET /v1/account/balance
读取钱包余额。
Python
python
account.balance()TypeScript
typescript
client.account.balance(): Promise<{ balance_usd, currency }>返回
{ balance_usd, currency }示例
一次性前置(每个范例都假定已完成):
bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...python
from infrai import account
bal = account.balance()
print("balance: $%s %s" % (bal.get("balance_usd"), bal.get("currency", "USD")))account.topup
POST /v1/account/topup
为钱包充值;返回结账 URL——SDK 永不接触卡数据。
Python
python
account.topup(amount_usd=..., return_url=None, idempotency_key=None)TypeScript
typescript
client.account.topup(opts: TopupOptions): Promise<TopupRecord>参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
amount_usd | number | 必填 | 充值金额(美元)。 |
return_url | string | 可选 | 结账后跳转地址。 |
idempotency_key | string | 可选 | 可选去重 key;相同重试将返回同一结果。 |
返回
TopupRecord { topup_id, amount_usd, state, next_action_url? }示例
一次性前置(每个范例都假定已完成):
bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...python
from infrai import account
# Returns a hosted checkout_url to hand the user; the SDK never touches card data.
t = account.topup(
amount_usd=25.0,
return_url="https://app.example.com/billing/return",
)
print("state:", t.get("state"))
print("complete payment at:", t.get("checkout_url") or t.get("next_action_url"))account.keys.list
GET /v1/account/keys
列出账户下的项目密钥。
Python
python
account.keys.list()TypeScript
typescript
// see ROUTES["account.keys.list"]返回
{ items: Array<{ key_id, label, scopes, created_at }> }示例
一次性前置(每个范例都假定已完成):
bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...python
from infrai import account
for k in account.keys.list().get("items", []):
print(k.get("key_id"), k.get("label"), k.get("created_at"))account.tier.upgrade
POST /v1/account/tier/upgrade
将账户升级到目标套餐。
Python
python
# see capability account.tier.upgradeTypeScript
typescript
client.account.tier.upgrade(target_tier: string): Promise<AccountSummary>参数
| 名称 | 类型 | 必填 | 说明 |
|---|---|---|---|
target_tier | string | 必填 | 要升级到的套餐 id。 |
返回
AccountSummary { account_id, kind, status, tier, balance_usd }示例
一次性前置(每个范例都假定已完成):
bash
pip install infrai
# one-time auth (no secret needed): anonymous account + trial, writes ~/.infrai/credentials
python -c "from infrai import infra; infra.activate()"
# returning user instead: export INFRAI_API_KEY=ifr_pk_proj_...python
from infrai import account
print("tier:", account.tier.upgrade(target_tier="pro").get("tier"))