Skip to main content

Account and Billing API

These endpoints power the dashboard account flow: plans, subscription checks, API key metadata, and prepaid API credits. Dashboard endpoints use the wallet JWT from the Phantom login flow. Product endpoints such as /wallets and /tokens use the customer API key instead.


Plans

GET /billing/plans

Public endpoint. Returns available Pro plans, payment addresses, the USDT mint, and the current API credit rate.

curl "https://api.prysmatic-sol.xyz/billing/plans"
{
"payment_addresses": {
"pro_access": "C1mqiKP4Y5gurgMFNqv2z2QeFwVDzi1rdMKP6NnzwXt6",
"api_credits": "A2NvnvNV5exfiAnDpjD8iXwLP454oXYkEMaZMbUqpQ3c"
},
"usdt_mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
"usdt_decimals": 6,
"credits_per_usdt": 1000,
"plans": [
{ "plan": "trial", "usdt": 1.0, "days": 1 },
{ "plan": "monthly", "usdt": 19.0, "days": 30 }
]
}

Check Pro payment

POST /billing/pro/check

Requires dashboard JWT. Redeems exact-plan USDT payments sent from the connected wallet to payment_addresses.pro_access. Idempotent: each transaction signature is redeemed once.

curl -X POST "https://api.prysmatic-sol.xyz/billing/pro/check" \
-H "Authorization: Bearer <DASHBOARD_JWT>"
{
"wallet": "9xQe...",
"active": true,
"plan": "monthly",
"expires_at": 1784050000,
"seconds_left": 2592000
}

API key metadata

GET /me/api

Requires dashboard JWT. Returns the API account attached to the connected wallet. The raw API key is returned only when it is first created or rotated; later calls return only metadata and the last four characters.

curl "https://api.prysmatic-sol.xyz/me/api" \
-H "Authorization: Bearer <DASHBOARD_JWT>"
{
"wallet": "9xQe...",
"api_key": null,
"api_key_last4": "9aBc",
"balance_credits": 4200,
"api_key_created_at": 1781450000,
"api_key_rotated_at": null,
"last_used_at": 1781450500
}

Rotate API key

POST /me/api/rotate

Requires dashboard JWT. Issues a new API key and immediately invalidates the previous one. The raw key is returned once in this response.

curl -X POST "https://api.prysmatic-sol.xyz/me/api/rotate" \
-H "Authorization: Bearer <DASHBOARD_JWT>"
{
"wallet": "9xQe...",
"api_key": "prys_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"api_key_last4": "1Z9q",
"balance_credits": 4200,
"api_key_created_at": 1781450000,
"api_key_rotated_at": 1781450999,
"last_used_at": null
}

Check API credit payment

POST /billing/credits/check

Requires dashboard JWT. Redeems USDT deposits sent from the connected wallet to payment_addresses.api_credits. Any USDT amount can be credited according to credits_per_usdt.

curl -X POST "https://api.prysmatic-sol.xyz/billing/credits/check" \
-H "Authorization: Bearer <DASHBOARD_JWT>"
{
"credited": 1000,
"balance_credits": 5200
}

API credit history

GET /billing/credits/topups

Requires dashboard JWT. Returns the redeemed credit purchases for the connected wallet.

curl "https://api.prysmatic-sol.xyz/billing/credits/topups" \
-H "Authorization: Bearer <DASHBOARD_JWT>"
{
"items": [
{
"tx_signature": "5fFh...",
"amount_usdt": 1.0,
"credits": 1000,
"created_at": 1781450000
}
]
}

Subscriber dashboard data

These endpoints require an active Pro subscription and the dashboard JWT. They are dashboard views, not the metered public product API.

EndpointDescription
GET /me/watchlists/trendingActive tokens tracked by the Trending engine.
GET /me/signals/filter?limit=5Latest fired filter-strategy signals.

The watchlist responses use snake_case JSON fields:

{
"items": [
{
"mint": "FSA7iqBeeENna2LUmZyqCYce7op2jBc9ztXLKdM6bonk",
"symbol": "TOKEN",
"name": "Token",
"age_seconds": 7200,
"discovered_seconds": 3600,
"conviction": 74.2,
"wallets_holding": 4,
"sol_held": 21.7,
"oldest_hold_seconds": 5400,
"pct_held": 0.82,
"avg_entry_mcap": 51230.0,
"current_mcap": 64000.0,
"multiple": 1.25,
"band_min": 0.7,
"band_max": 2.0,
"momentum": {
"mcap": { "value": 64000.0, "change_pct": 12.3, "trend": "up" },
"holders": { "value": 420, "change_pct": 4.5, "trend": "up" },
"volume1h": { "value": 18000.0, "change_pct": 9.1, "trend": "up" },
"liquidity": { "value": 9000.0, "change_pct": 1.0, "trend": "up" }
},
"buy_volume": 12000.0,
"sell_volume": 6000.0,
"watchlist_seconds": 900,
"state": "accumulating",
"near_evict": false
}
]
}