AENET ecosystems PUBLIC GATEWAY
GATEWAY READY
KAP-GRID / Y C01
Public surface available

K.PUBLIC.API / D.LAYOUT.CONTROL

AENET Public API

The read-only Public API v1: open reads, optional anonymous keys, signed responses, the endpoint registry and the error catalog.

New API key issuance paused — New API keys are temporarily unavailable while we prepare the service. Public reads do not require a key. Existing keys remain subject to their expiry, quotas and revocation; response signing is unchanged. Reopening requires an approved release.

Versionv1
Base path/api/v1
AccessOpen · key optional
Signed responsesed25519

Public contract

Endpoint registry

Endpoints26
Read only23
Write paths3
Open22
D01REQUEST D02KEY OPTIONAL D03ROUTE D04SNAPSHOT D05ENVELOPE D06CACHE D07SIGNED D08EVIDENCE

S1

Get started

Four calls cover the whole lifecycle. Reads need no key; a key adds a revocable quota.

  1. 01

    Call without a key

    Every GET endpoint marked Open answers anonymously with the JSON envelope.

    curl "$ORIGIN/api/v1/status"
  2. 02

    New API key issuance paused

    New API keys are temporarily unavailable while we prepare the service. Public reads do not require a key. Existing keys remain subject to their expiry, quotas and revocation; response signing is unchanged. Reopening requires an approved release.

    
    curl -H "Authorization: Bearer $AENET_KEY" "$ORIGIN/api/v1/status"
  3. 03

    Verify the signature

    Every JSON response is Ed25519-signed. Pin the key id from an independent channel.

    node scripts/api-verify-response.js \
      "$ORIGIN/api/v1/status" --kid <pinned key id>
  4. 04

    Revoke when done

    Revocation is immediate and permanent; there is no account to recover it from.

    curl -X DELETE \
      -H "Authorization: Bearer $AENET_KEY" \
      "$ORIGIN/api/v1/keys/self"

S1 / KEY

New API key issuance paused

New API keys are temporarily unavailable while we prepare the service. Public reads do not require a key. Existing keys remain subject to their expiry, quotas and revocation; response signing is unchanged. Reopening requires an approved release.

New API keys are temporarily unavailable while we prepare the service. Public reads do not require a key. Existing keys remain subject to their expiry, quotas and revocation; response signing is unchanged. Reopening requires an approved release.

MethodRouteDescription

Service and versions

Discovery, status, time, release version and changelog.

GET READ API.PUBLIC.13
/api/v1 Schema: aenet.public.api.index.v1 active beta · 0.4.0 OPEN JSON ↗

API discovery index

Open short-lived SNAPSHOT_UNAVAILABLE
Owner: Public API
GET READ API.PUBLIC.14
/api/v1/changelog Schema: aenet.public.changelog.v1 active beta · 0.4.0 OPEN JSON ↗

Public changelog

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: Public API
GET READ API.PUBLIC.22
/api/v1/openapi.json Schema: openapi.3.0.3 active beta · 0.5.0 OPEN JSON ↗

OpenAPI contract

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: Public API
GET READ API.PUBLIC.21
/api/v1/policy Schema: aenet.public.api.policy.v1 active beta · 0.5.0 OPEN JSON ↗

API service policy

Open static-snapshot
Owner: Public API
GET READ API.PUBLIC.01
/api/v1/status Schema: aenet.public.status.v1 active stable · v1 OPEN JSON ↗

Public-safe system status

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: Public API
GET READ API.PUBLIC.02
/api/v1/time Schema: aenet.public.time.v1 active stable · v1 OPEN JSON ↗

Canonical UTC time with explicit quality

Open short-lived
Owner: Public Time
GET READ API.PUBLIC.15
/api/v1/version Schema: aenet.public.version-snapshot.v1 active beta · 0.4.0 OPEN JSON ↗

Current version snapshot

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: Public API
GET READ API.PUBLIC.16
/api/v1/versions Schema: aenet.public.versions.index.v1 active beta · 0.4.0 OPEN JSON ↗

Version snapshot history

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: Public API
GET READ API.PUBLIC.17
/api/v1/versions/{snapshotId} Schema: aenet.public.version-snapshot.v1 active beta · 0.4.0 OPEN JSON ↗

One version snapshot

Open static-snapshot VERSION_NOT_FOUNDSNAPSHOT_UNAVAILABLE
Owner: Public API

Keys and trust

Issue, inspect and revoke an anonymous read-only key; fetch the signing public key.

POST WRITE API.PUBLIC.23
/api/v1/keys Schema: aenet.public.api.key.v1 preview beta · 0.6.0

Issue an API key

Human check INVALID_JSONINVALID_INPUTPAYLOAD_TOO_LARGEUNSUPPORTED_MEDIA_TYPETURNSTILE_FAILEDRATE_LIMITEDKEYS_UNAVAILABLE
Owner: Public API
DELETE WRITE API.PUBLIC.25
/api/v1/keys/self Schema: aenet.public.api.key-revoked.v1 active beta · 0.6.0

Revoke the calling key

Key required KEY_REQUIREDKEY_INVALIDKEY_EXPIREDKEY_RATE_LIMITEDKEYS_UNAVAILABLE
Owner: Public API
GET READ API.PUBLIC.24
/api/v1/keys/self Schema: aenet.public.api.key-self.v1 active beta · 0.6.0

Inspect the calling key

Key required KEY_REQUIREDKEY_INVALIDKEY_EXPIREDKEY_RATE_LIMITEDKEYS_UNAVAILABLE
Owner: Public API
GET READ API.PUBLIC.26
/api/v1/keys/signing-key Schema: aenet.public.api.signing-key.v1 active beta · 0.6.0 OPEN JSON ↗

Response signing key

Open short-lived SIGNING_UNAVAILABLE
Owner: Public API

Architecture and roadmap

Sanitized architecture, development queue and roadmap snapshots.

GET READ API.PUBLIC.03
/api/v1/architecture Schema: aenet.public.architecture.v1 active stable · v1 OPEN JSON ↗

Public architecture snapshot

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: Public API
GET READ API.PUBLIC.04
/api/v1/development-queue Schema: aenet.public.development-queue.v1 active stable · v1 OPEN JSON ↗

Public development queue

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: Development Queue
GET READ API.PUBLIC.05
/api/v1/roadmap Schema: aenet.public.roadmap.v1 active stable · v1 OPEN JSON ↗

Public roadmap

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: Public API

Wallet snapshots

Read-only public wallet-system evidence and snapshot mirrors.

GET READ API.PUBLIC.12
/public-data/*.json Schema: aenet.public.snapshot.* active stable · v1 OPEN JSON ↗

Sanitized public snapshot mirror

Open static-snapshot
Owner: Public Snapshot Layer
GET READ API.PUBLIC.08
/api/v1/wallet Schema: aenet.public.wallet.overview.v1 active stable · v1 OPEN JSON ↗

Public wallet overview snapshot

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: AENET Wallet
GET READ API.PUBLIC.09
/api/v1/wallet/architecture Schema: aenet.public.wallet.architecture.v1 active stable · v1 OPEN JSON ↗

Public wallet architecture snapshot

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: AENET Wallet
GET READ API.PUBLIC.18
/api/v1/wallet/capabilities Schema: aenet.public.wallet.evidence.v1 active stable · v1 OPEN JSON ↗

Public wallet capabilities snapshot

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: AENET Wallet
GET READ API.PUBLIC.20
/api/v1/wallet/development Schema: aenet.public.wallet.evidence.v1 active stable · v1 OPEN JSON ↗

Public wallet development snapshot

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: AENET Wallet
GET READ API.PUBLIC.11
/api/v1/wallet/evidence Schema: aenet.public.wallet.evidence.v1 active stable · v1 OPEN JSON ↗

Public wallet evidence snapshot

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: AENET Wallet
GET READ API.PUBLIC.19
/api/v1/wallet/integration Schema: aenet.public.wallet.evidence.v1 active stable · v1 OPEN JSON ↗

Public wallet integration snapshot

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: AENET Wallet
GET READ API.PUBLIC.10
/api/v1/wallet/security Schema: aenet.public.wallet.security.v1 active stable · v1 OPEN JSON ↗

Public wallet security snapshot

Open static-snapshot SNAPSHOT_UNAVAILABLE
Owner: AENET Wallet

Early access

The waitlist status and the one public write path.

GET READ API.PUBLIC.06
/api/v1/early-access Schema: aenet.public.early-access.v1 active stable · v1 OPEN JSON ↗

Early Access registration availability

Open static-snapshot
Owner: Early Access
POST WRITE API.PUBLIC.07
/api/v1/early-access/register Schema: aenet.public.early-access.registration.v1 active beta · v1 OPEN FLOW ↗

Early access waitlist registration (D1 only)

Human check INVALID_JSONINVALID_INPUTINVALID_EMAILFORBIDDEN_FIELDINVALID_LOCALEINVALID_INTERESTSCONSENT_REQUIREDINVALID_USE_CASEINVALID_SESSION_IDTURNSTILE_REQUIREDTURNSTILE_FAILEDREQUEST_REJECTEDPAYLOAD_TOO_LARGEUNSUPPORTED_MEDIA_TYPERATE_LIMITEDREGISTRATION_UNAVAILABLEDUPLICATE
Owner: Early Access

S3

Error catalog

Every error returns the same envelope with a stable code. Retry only where marked.

HTTPCodeRetryMeaning
200DUPLICATEnoThis 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.
400CONSENT_REQUIREDnoConsent is required.
400FORBIDDEN_FIELDnoThe request carries a field that is never accepted.
400INVALID_EMAILnoA valid email address is required.
400INVALID_INPUTnoThe request body is not an acceptable object (unknown field, wrong shape).
400INVALID_INTERESTSnoInterests must be a short array of known interest areas.
400INVALID_JSONnoRequest body must be valid JSON.
400INVALID_LOCALEnoUnsupported locale.
400INVALID_SESSION_IDnoSession id is not acceptable.
400INVALID_USE_CASEnoUse case must be text within the length limit.
400TURNSTILE_REQUIREDnoA Turnstile token is required.
401KEY_EXPIREDnoThe API key has expired. Issue a new one.
401KEY_INVALIDnoThe API key is not valid.
401KEY_REQUIREDnoThis endpoint needs an API key (Authorization: Bearer aek_…).
403PREVIEW_NOT_ENABLEDnoThe preview namespace is not enabled.
403REQUEST_REJECTEDnoWe could not accept this request. The rule that matched is never revealed.
403TURNSTILE_FAILEDnoVerification failed.
404NOT_FOUNDnoPublic API route not found.
404VERSION_NOT_FOUNDnoVersion snapshot not found.
405METHOD_NOT_ALLOWEDnoThe method is not allowed for this route; the Allow header lists the valid methods.
413PAYLOAD_TOO_LARGEnoRequest body too large.
415UNSUPPORTED_MEDIA_TYPEnoContent-Type must be application/json.
429KEY_RATE_LIMITEDyesThis API key exceeded its request quota.
429RATE_LIMITEDyesToo many requests. Please try again later.
503KEYS_UNAVAILABLEyesAPI key issuance or verification is temporarily unavailable.
503REGISTRATION_UNAVAILABLEyesRegistration is temporarily unavailable.
503SIGNING_UNAVAILABLEyesResponse signing is not configured.
503SNAPSHOT_UNAVAILABLEyesSnapshot is temporarily unavailable.