JavaScript SDKJavaScript SDK Reference
JavaScript SDK Reference
Full API reference for the SocialRails JavaScript/TypeScript SDK.
Complete API reference for @socialrails/js. All methods return promises.
Posts
// Create a post
const post = await sr.posts.create({
content: 'Hello world!',
platform: 'twitter',
scheduled_for: '2026-03-10T14:00:00Z', // optional
media: ['media_abc123'], // optional
platform_settings: { reply_settings: 'everyone' }, // optional
});
// Create a thread
const thread = await sr.posts.create({
content: 'Thread start',
platform: 'twitter',
thread: ['Second tweet', 'Third tweet'],
thread_delay: 60,
});
// List posts with filters
const { data: posts, pagination } = await sr.posts.list({
status: 'scheduled',
platform: 'twitter',
sort: '-scheduled_for',
limit: 20,
offset: 0,
});
// Get a single post
const post = await sr.posts.get('post_abc123');
// Update a post
const updated = await sr.posts.update('post_abc123', {
content: 'Updated content',
});
// Delete a post
const result = await sr.posts.delete('post_abc123');
// Batch create across platforms
const batch = await sr.posts.batch({
content: 'Cross-platform post!',
platforms: ['twitter', 'linkedin', 'bluesky'],
platform_content: {
twitter: 'Short version for Twitter',
},
});Analytics
const stats = await sr.analytics.get({
platform: 'twitter', // optional
period: '30d', // optional
post_id: 'post_abc', // optional
});
console.log(stats.total_posts);
console.log(stats.by_platform);Accounts
// List connected accounts
const accounts = await sr.accounts.list();
// Get account settings & capabilities
const settings = await sr.accounts.getSettings('acc_abc123');
console.log(settings.capabilities.character_limit);
console.log(settings.capabilities.supports_thread);
console.log(settings.available_tools);
// Trigger a platform tool
const result = await sr.accounts.triggerTool('acc_abc123', {
tool: 'fetch_trending',
});AI Content Generation
const result = await sr.ai.generate({
prompt: 'Write a tweet about our new product launch',
platform: 'twitter', // optional
tone: 'professional', // optional
});
console.log(result.content);Webhooks
// List webhooks
const webhooks = await sr.webhooks.list();
// Create a webhook (secret is only returned at creation)
const webhook = await sr.webhooks.create({
url: 'https://example.com/hooks/socialrails',
events: ['post.published', 'post.failed'],
});
console.log(webhook.secret); // Save this!
// Delete a webhook
await sr.webhooks.delete('wh_abc123');Workspace
const workspace = await sr.workspace.get();
console.log(workspace.plan);
console.log(workspace.limits.max_posts_per_month);
console.log(workspace.usage.posts_this_month);Media
// Upload a file (Blob in browsers, Buffer in Node.js)
const media = await sr.media.upload(fileBlob, 'photo.jpg', 'image/jpeg');
console.log(media.media_id, media.url);
// Upload from a remote URL
const media2 = await sr.media.uploadFromUrl({
url: 'https://example.com/image.png',
type: 'image',
});Supported Platforms
twitter, linkedin, facebook, instagram, tiktok, bluesky, pinterest, threads, youtube