Developer access
Use API keys from your account to pull token mechanics and cash-flow data into local research scripts, dashboards, and tester workflows.
Base URL
app.valueverse.ai
All current API routes live under /api/v1.
Auth
Bearer key
Create and rotate keys from the account page.
Tester scope
Token slots
Full token reads are limited to selected tester tokens.
Authenticated calls use Bearer API keys. Keep keys server-side or in local environment variables.
export VALUEVERSE_API_KEY="vv_test_..."
curl https://app.valueverse.ai/api/v1/tokens/aave/full \
-H "Authorization: Bearer $VALUEVERSE_API_KEY" \
-H "X-Request-Id: demo-aave-001"Use the key as a Bearer token. Do not ship keys in public browser code.
curl https://app.valueverse.ai/api/v1/tokens/aave/full \
-H "Authorization: Bearer vv_test_..."Key format
vv_test_* / vv_live_*
The raw key is shown once when created or rotated.
Request id
X-Request-Id
Optional but recommended for retries and support.
Storage
Server-side
Use env vars, backend secrets, or private notebooks.
The public endpoints expose lightweight token metadata. The full endpoint is gated by the account tier.
/api/v1/tokensPublicToken directory for selectors, account slots, and lightweight integrations.
/api/v1/tokens/{slug}PublicPublic token summary with category, verification flag, price, and market cap.
/api/v1/tokens/{slug}/fullAPI keyFull token mechanics payload. Tester accounts are limited by locked token slots.
Keep keys out of browsers. Run these from a server, local script, or private notebook environment.
const res = await fetch("https://app.valueverse.ai/api/v1/tokens/aave/full", {
headers: {
Authorization: `Bearer ${process.env.VALUEVERSE_API_KEY}`,
"X-Request-Id": "demo-aave-001",
},
});
if (!res.ok) throw new Error(`Valueverse API failed: ${res.status}`);
const payload = await res.json();import os
import requests
res = requests.get(
"https://app.valueverse.ai/api/v1/tokens/aave/full",
headers={
"Authorization": f"Bearer {os.environ['VALUEVERSE_API_KEY']}",
"X-Request-Id": "demo-aave-001",
},
timeout=20,
)
res.raise_for_status()
payload = res.json()Documented fields are stable. Additional fields may appear before they are promoted into the contract.
GET /api/v1/tokens{ tokens: TokenDirectoryItem[] }slugnamesymbolimage_urlcategoryUse this for selectors, account slot pickers, and lightweight token navigation.
GET /api/v1/tokens/{slug}{ token: TokenSummary }slugnamesymbolcategoryverifiedpricemarket_capprice_change_pct_24hprice_change_pct_1yPublic metadata and market values only. No full mechanics payload.
GET /api/v1/tokens/{slug}/full{ token, token_oovs, token_vcms }tokentoken_oovs[]token_vcms[]Authenticated payload for token mechanics. Tester accounts are credit-scoped.
Tester access is token-scoped. Once a tester uses a credit on a token, that token remains assigned to the account.
Test accounts start with three token slots. tier0 and paid accounts can download every token without slot limits. The full token endpoint accepts X-Request-Id; reuse it when retrying the same read so the server can return an idempotent replay instead of consuming another slot.
Use response headers for request tracing, remaining budget, and key lifecycle state.
X-RateLimit-RemainingX-Key-IdX-TierX-Request-IdX-Credits-RemainingX-Idempotent-ReplayX-Api-Key-DeprecatedErrors return compact JSON with an error code and, where useful, a reason or request id.
unauthorizedMissing or invalid API key.
payment_requiredTester key has no credit for this token.
forbiddenAPI key does not include the required token read scope.
not_foundToken slug does not exist.
rate_limitedThe key or public IP exceeded the current request budget.
internal_errorServer error. Response includes request_id for support.