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