import {
SocialRouter,
SocialRouterError,
AuthenticationError,
InsufficientCreditsError,
RateLimitError,
} from "@socialrouter/sdk";
const sr = new SocialRouter({ apiKey: "sr_live_your_key" });
try {
const extraction = await sr.extract({
url: "https://linkedin.com/in/example",
provider: "apify/linkedin/profile.info",
});
} catch (err) {
if (err instanceof RateLimitError) {
// err.retryAfter is a Unix timestamp (seconds) — when the window resets
const waitMs = err.retryAfter ? err.retryAfter * 1000 - Date.now() : 0;
console.log(`Rate limited. Retry in ${Math.max(0, Math.ceil(waitMs / 1000))}s`);
} else if (err instanceof InsufficientCreditsError) {
console.log("Add credits:", err.message);
} else if (err instanceof AuthenticationError) {
console.log("Check your API key:", err.message);
} else if (err instanceof SocialRouterError) {
console.log(`API error [${err.code}]: ${err.message}`);
}
}