API.PUBLIC.13
K.PUBLIC.API / D.LAYOUT.CONTROL
AENET 公共 API
只读公共 API v1:开放读取、可选匿名密钥、签名响应、端点注册表与错误目录。
暂停签发新的 API 密钥 — 服务准备期间暂不签发新密钥。公开读取无需密钥。现有密钥仍遵守原有有效期、配额及撤销规则,响应签名不变。恢复签发须经过版本就绪审批。
D01REQUEST
D02KEY OPTIONAL
D03ROUTE
D04SNAPSHOT
D05ENVELOPE
D06CACHE
D07SIGNED
D08EVIDENCE
S1
快速开始
四条调用覆盖完整流程。读取无需密钥;密钥提供可撤销的配额。
- 01
无需密钥直接调用
所有标记为 Open 的 GET 端点均可匿名访问,返回 JSON 信封。
curl "$ORIGIN/api/v1/status" - 02
暂停签发新的 API 密钥
服务准备期间暂不签发新密钥。公开读取无需密钥。现有密钥仍遵守原有有效期、配额及撤销规则,响应签名不变。恢复签发须经过版本就绪审批。
curl -H "Authorization: Bearer $AENET_KEY" "$ORIGIN/api/v1/status" - 03
验证签名
每个 JSON 响应均有 Ed25519 签名。请通过独立渠道固定密钥 ID。
node scripts/api-verify-response.js \ "$ORIGIN/api/v1/status" --kid <pinned key id> - 04
用完即撤销
撤销立即且永久生效;没有账户可用于找回。
curl -X DELETE \ -H "Authorization: Bearer $AENET_KEY" \ "$ORIGIN/api/v1/keys/self"
S1 / KEY
暂停签发新的 API 密钥
服务准备期间暂不签发新密钥。公开读取无需密钥。现有密钥仍遵守原有有效期、配额及撤销规则,响应签名不变。恢复签发须经过版本就绪审批。
服务准备期间暂不签发新密钥。公开读取无需密钥。现有密钥仍遵守原有有效期、配额及撤销规则,响应签名不变。恢复签发须经过版本就绪审批。
1–40 个字符:仅限字母、数字、空格 . _ - 。请勿填写邮箱或姓名。
请立即保存此密钥。它只显示一次,无法找回。若丢失,请重新申请。
你的 API 密钥仅通过请求头发送:Authorization: Bearer <key>。切勿放入 URL。
服务与版本
服务发现、状态、时间、发布版本与变更日志。
API.PUBLIC.14
API.PUBLIC.22
API.PUBLIC.21
API.PUBLIC.01
API.PUBLIC.02
API.PUBLIC.15
API.PUBLIC.16
API.PUBLIC.17
/api/v1/versions/{snapshotId}
Schema: aenet.public.version-snapshot.v1
active
beta · 0.4.0
OPEN JSON ↗
密钥与信任
签发、查看与撤销匿名只读密钥;获取签名公钥。
API.PUBLIC.23
/api/v1/keys
Schema: aenet.public.api.key.v1
preview
beta · 0.6.0
只读公共 API 契约:端点、信封与边界。
INVALID_JSONINVALID_INPUTPAYLOAD_TOO_LARGEUNSUPPORTED_MEDIA_TYPETURNSTILE_FAILEDRATE_LIMITEDKEYS_UNAVAILABLE
API.PUBLIC.25
/api/v1/keys/self
Schema: aenet.public.api.key-revoked.v1
active
beta · 0.6.0
只读公共 API 契约:端点、信封与边界。
KEY_REQUIREDKEY_INVALIDKEY_EXPIREDKEY_RATE_LIMITEDKEYS_UNAVAILABLE
API.PUBLIC.24
/api/v1/keys/self
Schema: aenet.public.api.key-self.v1
active
beta · 0.6.0
只读公共 API 契约:端点、信封与边界。
KEY_REQUIREDKEY_INVALIDKEY_EXPIREDKEY_RATE_LIMITEDKEYS_UNAVAILABLE
API.PUBLIC.26
架构与路线图
经过脱敏的架构、开发队列与路线图快照。
API.PUBLIC.03
API.PUBLIC.04
API.PUBLIC.05
钱包快照
只读的公共钱包系统证据与快照镜像。
API.PUBLIC.12
API.PUBLIC.08
API.PUBLIC.09
/api/v1/wallet/architecture
Schema: aenet.public.wallet.architecture.v1
active
stable · v1
OPEN JSON ↗
API.PUBLIC.18
API.PUBLIC.20
API.PUBLIC.11
API.PUBLIC.19
API.PUBLIC.10
抢先体验
候补名单状态与唯一的公共写入路径。
API.PUBLIC.06
API.PUBLIC.07
/api/v1/early-access/register
Schema: aenet.public.early-access.registration.v1
active
beta · v1
OPEN FLOW ↗
只读公共 API 契约:端点、信封与边界。
INVALID_JSONINVALID_INPUTINVALID_EMAILFORBIDDEN_FIELDINVALID_LOCALEINVALID_INTERESTSCONSENT_REQUIREDINVALID_USE_CASEINVALID_SESSION_IDTURNSTILE_REQUIREDTURNSTILE_FAILEDREQUEST_REJECTEDPAYLOAD_TOO_LARGEUNSUPPORTED_MEDIA_TYPERATE_LIMITEDREGISTRATION_UNAVAILABLEDUPLICATE
S3
错误目录
所有错误使用相同信封与稳定的错误码。仅在标记处重试。
| HTTP | 错误码 | 重试 | 含义 |
|---|---|---|---|
200 | DUPLICATE | 不可 | This email is already on the early-access list. Returned with HTTP 200 and the error envelope so the list is never revealed by status code. |
400 | CONSENT_REQUIRED | 不可 | Consent is required. |
400 | FORBIDDEN_FIELD | 不可 | The request carries a field that is never accepted. |
400 | INVALID_EMAIL | 不可 | A valid email address is required. |
400 | INVALID_INPUT | 不可 | The request body is not an acceptable object (unknown field, wrong shape). |
400 | INVALID_INTERESTS | 不可 | Interests must be a short array of known interest areas. |
400 | INVALID_JSON | 不可 | Request body must be valid JSON. |
400 | INVALID_LOCALE | 不可 | Unsupported locale. |
400 | INVALID_SESSION_ID | 不可 | Session id is not acceptable. |
400 | INVALID_USE_CASE | 不可 | Use case must be text within the length limit. |
400 | TURNSTILE_REQUIRED | 不可 | A Turnstile token is required. |
401 | KEY_EXPIRED | 不可 | The API key has expired. Issue a new one. |
401 | KEY_INVALID | 不可 | The API key is not valid. |
401 | KEY_REQUIRED | 不可 | This endpoint needs an API key (Authorization: Bearer aek_…). |
403 | PREVIEW_NOT_ENABLED | 不可 | The preview namespace is not enabled. |
403 | REQUEST_REJECTED | 不可 | We could not accept this request. The rule that matched is never revealed. |
403 | TURNSTILE_FAILED | 不可 | Verification failed. |
404 | NOT_FOUND | 不可 | Public API route not found. |
404 | VERSION_NOT_FOUND | 不可 | Version snapshot not found. |
405 | METHOD_NOT_ALLOWED | 不可 | The method is not allowed for this route; the Allow header lists the valid methods. |
413 | PAYLOAD_TOO_LARGE | 不可 | Request body too large. |
415 | UNSUPPORTED_MEDIA_TYPE | 不可 | Content-Type must be application/json. |
429 | KEY_RATE_LIMITED | 可以 | This API key exceeded its request quota. |
429 | RATE_LIMITED | 可以 | Too many requests. Please try again later. |
503 | KEYS_UNAVAILABLE | 可以 | API key issuance or verification is temporarily unavailable. |
503 | REGISTRATION_UNAVAILABLE | 可以 | Registration is temporarily unavailable. |
503 | SIGNING_UNAVAILABLE | 可以 | Response signing is not configured. |
503 | SNAPSHOT_UNAVAILABLE | 可以 | Snapshot is temporarily unavailable. |