TriportRPC

List watchlist entries

GEThttps://api.triport.io/v1/sol/watchlist

Return every Solana account-watch entry that belongs to your tenant.

Solanasol_watchlistbusiness · per-tier RPS with burst (×2)

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.

optional
None.

Response

200 OK — an array of SolWatchlistEntry objects:

idstring (uuid)
Server-assigned watchlist entry identifier. Required.
tenant_idstring
Owning tenant, derived from your auth token.
pubkeystring
Solana base-58 account being watched (32–44 chars). Required.
commitmentstring
Commitment level at which changes trigger a push: processed, confirmed, or finalized. Defaults to confirmed.
callback_typestring
Delivery transport: webhook or ws. Required.
callback_urlstring (uri)
Callback target. For webhook it is the HTTPS URL notified on change; for ws it is the client identifier.
created_atstring (date-time)
RFC-3339 creation timestamp.

Errors

Codeerror valueWhen it happens
401unauthorized / trial_expired / subscription_expiredMissing or invalid credentials, or an expired trial/subscription.
403tier_insufficientToken lacks the sol_watchlist scope or is below the required business tier.
429rate_limitedPer-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 [] with 200 OK.
  • Related operations: create an entry with POST /v1/sol/watchlist, fetch one with GET /v1/sol/watchlist/{id}, and remove one with DELETE /v1/sol/watchlist/{id}.