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.
| Endpoint | Description |
|---|---|
GET /me/watchlists/trending | Active tokens tracked by the Trending engine. |
GET /me/signals/filter?limit=5 | Latest 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
}
]
}