Skip to content

Paging the team

EscalationService is the out-of-band alarm path for makers. When something looks wrong on the venue — stuck fills, balance drift, a suspected outage — PageTheTeam wakes the FLINT on-call team directly rather than routing through email or support.

High-urgency only

This wakes the on-call. Low-urgency matters belong in Slack / Telegram, not here.

Auth

EscalationService is authenticated exactly like MakerService: a session token (authorization: Bearer <token>, keypair or passwordless email) or an organization API key (x-api-key). The resolved maker_id is attached to every page so the team knows who is escalating. See the Auth flow. UNAUTHENTICATED if the caller is not a recognized maker.

What it returns

RPCRequestResponse
PageTheTeammessage (free text, required)page_id, received_at

The message is delivered verbatim into the on-call alert — keep it short. An empty or whitespace-only message is rejected with INVALID_ARGUMENT. The response confirms the page was accepted and dispatched only; it does not mean anyone has responded yet. Quote the page_id when following up so the maker and the team refer to the same incident.

Recipe

rust
use flint_api_client::api::proto::PageTheTeamRequest;

// Requires a prior `client.authenticate()` to populate the interceptor.
let mut escalation = client.escalation()?;

let res = escalation
    .page_the_team(PageTheTeamRequest {
        message: "Fills stuck for SOL/USDC ~5m, balances look frozen".into(),
    })
    .await?
    .into_inner();

println!("paged on-call as {}", res.page_id);
ts
import { createEscalationClient } from "@superis-labs/flint-api-client";

// `auth` is an AuthFlow or apiKeyInterceptor(...), same as createMakerClient.
const escalation = createEscalationClient({ auth });

const { pageId, receivedAt } = await escalation.pageTheTeam({
  message: "Fills stuck for SOL/USDC ~5m, balances look frozen",
});

console.log(`paged on-call as ${pageId}`);
python
from flint import Client

# Client constructed with a keypair + auth_url (see Auth flow).
client = Client(keypair=keypair)

response = await client.page_the_team(
    "Fills stuck for SOL/USDC ~5m, balances look frozen"
)
print(f"paged on-call as {response.page_id}")

Built on Solana