@studiosignal/sdk
v1.0.0
Published
Official Node.js SDK for the Studio Signal M&E Intelligence API
Maintainers
Readme
Studio Signal Node.js SDK
Official Node.js client for the Studio Signal M&E Intelligence API.
Installation
npm install @studiosignal/sdkQuick Start
import StudioSignal from '@studiosignal/sdk';
const kai = new StudioSignal('ss_live_your_api_key');
// Full research report
const report = await kai.research('Analyze Netflix Q1 2026 earnings');
console.log(report.data.markdown);
console.log(report.data.sources);
// Today's executive brief
const brief = await kai.brief();
console.log(brief.data.html);
// Today's deep dive
const dive = await kai.deepDive();
// Usage stats
const usage = await kai.usage();
console.log(`Used: ${usage.data.used} calls this period`);
console.log(`Cost: ${usage.data.estimated_cost}`);Streaming
for await (const chunk of kai.researchStream('AI impact on VFX workflows')) {
process.stdout.write(chunk.text);
}Rate Limits
Rate limit info is available after every request:
await kai.research('...');
console.log(kai.rateLimit);
// { limit: 10, remaining: 9, reset: 1714003260, periodUsed: 143 }The SDK automatically retries on 429 (rate limited) and 5xx errors with exponential backoff.
Error Handling
import StudioSignal, { RateLimitError, TrialExpiredError } from '@studiosignal/sdk';
try {
const report = await kai.research('...');
} catch (err) {
if (err instanceof TrialExpiredError) {
console.log('Trial expired! Upgrade at:', err.upgradeUrl);
} else if (err instanceof RateLimitError) {
console.log(`Rate limited. Retry in ${err.retryAfter}s`);
} else {
console.error(`API error ${err.status}:`, err.message);
}
}Configuration
const kai = new StudioSignal('ss_live_...', {
baseUrl: 'https://studiosignal.app', // Default
timeout: 120000, // 2 minutes (default)
maxRetries: 3, // Auto-retry on 429/5xx (default)
});