List watchlist entries
https://api.triport.io/v1/sol/watchlistReturn every Solana account-watch entry that belongs to your tenant.
A watchlist entry subscribes a Solana account (pubkey) to change notifications. When the watched account changes at the configured commitment level, Triport delivers a push to the entry's callback — an HTTPS webhook or a WebSocket client.
This endpoint lists all watchlist entries owned by the authenticated tenant.
The tenant is resolved from your API key, so the response only ever contains
entries you created — there is no cross-tenant visibility and no tenant
parameter to pass. Use it to reconcile local state, build a management UI, or
audit which accounts you are currently watching.
The result is a flat array of SolWatchlistEntry objects. When you have no
entries, the endpoint returns an empty array ([]).
Parameters
This endpoint takes no path, query, or body parameters. The tenant is derived from the authentication token.
——optionalResponse
200 OK — an array of SolWatchlistEntry objects:
idstring (uuid)tenant_idstringpubkeystringcommitmentstringprocessed, confirmed, or finalized. Defaults to confirmed.callback_typestringwebhook or ws. Required.callback_urlstring (uri)webhook it is the HTTPS URL notified on change; for ws it is the client identifier.created_atstring (date-time)Errors
| Code | error value | When it happens |
|---|---|---|
401 | unauthorized / trial_expired / subscription_expired | Missing or invalid credentials, or an expired trial/subscription. |
403 | tier_insufficient | Token lacks the sol_watchlist scope or is below the required business tier. |
429 | rate_limited | Per-tier RPS limit (plus burst) exceeded. Honor the Retry-After header. |
All errors share the standard envelope:
{
"error": "tier_insufficient",
"message": "operation requires business tier",
"request_id": "req_3b1f7c"
}A 403 adds an X-Required-Tier header; a 429 adds Retry-After,
X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. See
errors.md for the full error envelope and code list.
Examples
JavaScript (fetch)
const res = await fetch("https://api.triport.io/v1/sol/watchlist", {
headers: { Authorization: `Bearer ${process.env.TRIPORT_API_KEY}` },
});
if (!res.ok) throw new Error(`watchlist list failed: ${res.status}`);
const entries = await res.json();
for (const e of entries) {
console.log(e.id, e.pubkey, e.callback_type);
}TypeScript SDK (@triport/sdk)
import { Triport } from "@triport/sdk";
const client = new Triport({ apiKey: process.env.TRIPORT_API_KEY });
const entries = await client.sol.watchlist.list();
entries.forEach((e) => console.log(e.id, e.pubkey, e.commitment));Python (triport-sdk)
import os
from triport import Triport
client = Triport(api_key=os.environ["TRIPORT_API_KEY"])
entries = client.sol.watchlist.list()
for e in entries:
print(e.id, e.pubkey, e.callback_type)Notes
- The response is not paginated — it returns all of the tenant's entries in a single array.
- Tenant isolation is enforced from the API key's identity; you can never see another tenant's entries, and there is no parameter to request them.
- An empty watchlist returns
[]with200 OK. - Related operations: create an entry with
POST /v1/sol/watchlist, fetch one withGET /v1/sol/watchlist/{id}, and remove one withDELETE /v1/sol/watchlist/{id}.