Get a watchlist entry
https://api.triport.io/v1/sol/watchlist/9b1f4a7e-3c2d-4f8a-8b6e-2d1c5a9e7f00Fetch a single Solana watchlist entry by its `id` — returned only when it belongs to your authenticated tenant.
A watchlist entry registers a Solana account (pubkey) so that Triport pushes
you a notification — over a webhook or a WebSocket channel — whenever that
account changes on chain. This endpoint reads back one such entry by its server
generated id.
Use it to confirm what a previously created subscription looks like (its
commitment, callback_type, and callback_url), or to poll an entry's
metadata before deciding to delete it.
Entries are scoped per tenant. The tenant is derived from your API credentials,
not from any field you send — so an entry created by another project's key is
invisible to you and will return 404, not the entry. To list every entry your
key owns, use GET /v1/sol/watchlist.
Parameters
Path parameters
idstring (uuid)requiredPOST /v1/sol/watchlist at creation.Response
200 OK
idstring (uuid)tenant_idstringpubkeystringcommitmentstringprocessed, confirmed, or finalized. Defaults to confirmed.callback_typestringwebhook or ws.callback_urlstring (uri)ws — the client-side identifier. May be absent if it was not set at creation.created_atstring (date-time)Errors
| Code | error | Meaning | When it happens |
|---|---|---|---|
401 | unauthorized / trial_expired / subscription_expired | Authentication failed | Missing or invalid credentials, or the key's trial/subscription has lapsed. |
403 | tier_insufficient / method_unknown | Not allowed for this key | The key's tier is below business, or it lacks the sol_watchlist scope. |
404 | resource_not_found | No such entry for this tenant | The id does not exist, or it belongs to a different tenant. |
429 | rate_limited | Rate limit exceeded | Sustained RPS for the sol_watchlist category was exceeded; honor the Retry-After header. |
All errors share the standard envelope (error, message, request_id); see
Errors for the full structure and the per-status response
shapes.
Examples
JavaScript (fetch)
const id = "9b1f4a7e-3c2d-4f8a-8b6e-2d1c5a9e7f00";
const res = await fetch(
`https://api.triport.io/v1/sol/watchlist/${id}`,
{
headers: {
Authorization: `Bearer ${process.env.TRIPORT_API_KEY}`,
"Content-Type": "application/json",
},
}
);
if (res.status === 404) {
throw new Error("Watchlist entry not found");
}
if (!res.ok) {
throw new Error(`Request failed: ${res.status}`);
}
const entry = await res.json();
console.log(entry.pubkey, entry.callback_type);TypeScript SDK (@triport/sdk)
import { Triport } from "@triport/sdk";
const client = new Triport({ apiKey: process.env.TRIPORT_API_KEY! });
const entry = await client.sol.watchlist.get(
"9b1f4a7e-3c2d-4f8a-8b6e-2d1c5a9e7f00"
);
console.log(entry.commitment, entry.callbackUrl);Python (triport-sdk)
import os
from triport import Triport
client = Triport(api_key=os.environ["TRIPORT_API_KEY"])
entry = client.sol.watchlist.get("9b1f4a7e-3c2d-4f8a-8b6e-2d1c5a9e7f00")
print(entry.pubkey, entry.callback_type)Notes
- Tenant isolation: a missing entry and an entry owned by another tenant are
indistinguishable — both return
404. There is no way to read another project's subscriptions. - Related endpoints:
POST /v1/sol/watchlist— register a new entry.GET /v1/sol/watchlist— list all of your entries.DELETE /v1/sol/watchlist/{id}— remove an entry (idempotent; a second delete returns404).
- Authentication: the credential can be supplied as a
Bearertoken, anX-API-Keyheader, or a legacy?api-key=query parameter. TheBearerheader is preferred.