Api Reference
Client Methods
import { createPresenceClient } from "@iconical/presencekit";
const client = createPresenceClient();createPresenceClient() takes no arguments. It returns four methods:
Method | Returns | Purpose |
|---|---|---|
|
| Fetch one opted-in member |
|
| Fetch 1–25 IDs in one request |
|
| Subscribe to one ID, returns cleanup |
|
| Subscribe to 1–25 IDs, returns cleanup |
getPresence(userId, request?)
const controller = new AbortController();
const person = await client.getPresence("123456789012345678", {
signal: controller.signal,
});
console.log(person.profile.displayName);
console.log(person.presence?.status ?? "Pending");
// controller.abort() if the operation is still in flightuserId must be a 17–20-digit Discord snowflake. The result includes availability, profile, presence, and spotify. The SDK does not cache this REST fetch: requests use cache: "no-store".
getPresences(userIds, request?)
const roster = await client.getPresences([
"123456789012345678",
"234567890123456789",
]);
console.log(Object.keys(roster.presences));
console.log(roster.presences["123456789012345678"]?.presence?.status);Inputs are deduplicated and must contain between 1 and 25 valid IDs. roster.presences is an object keyed by Discord ID, not an array. Users without authorized data are omitted.
Errors
import { PresenceKitError } from "@iconical/presencekit";
try {
await client.getPresence("123456789012345678");
} catch (error) {
if (error instanceof PresenceKitError) {
console.error(error.code, error.status);
}
}Invalid IDs throw a regular Error. Network/abort errors can also occur; don't assume every caught error is a PresenceKitError.
For ongoing updates see subscriptions.
Was this page helpful?