Platforms Overview
Supported social media platforms and their capabilities.
Supported Platforms
RelayAPI supports posting to 21 platforms through a single unified API. Each platform has specific features, limitations, and content requirements.
Platform Comparison
| Platform | Text | Images | Video | Stories | Reels | Scheduling |
|---|---|---|---|---|---|---|
| Twitter/X | ✅ | ✅ | ✅ | — | — | ✅ |
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| ✅ | ✅ | ✅ | — | — | ✅ | |
| TikTok | ✅ | — | ✅ | — | — | ✅ |
| YouTube | ✅ | — | ✅ | ✅ | ✅ | ✅ |
| ✅ | ✅ | ✅ | — | — | ✅ | |
| ✅ | ✅ | ✅ | — | — | ✅ | |
| Bluesky | ✅ | ✅ | ✅ | — | — | ✅ |
| Threads | ✅ | ✅ | ✅ | — | — | ✅ |
| Telegram | ✅ | ✅ | ✅ | — | — | ✅ |
| Snapchat | ✅ | ✅ | ✅ | ✅ | — | ✅ |
| Discord | ✅ | ✅ | ✅ | — | — | ✅ |
| Mastodon | ✅ | ✅ | ✅ | — | — | ✅ |
| ✅ | ✅ | ✅ | — | — | ✅ | |
| Google Business | ✅ | ✅ | — | — | — | ✅ |
| SMS | ✅ | ✅ | ✅ | — | — | ✅ |
| Beehiiv | ✅ | ✅ | — | — | — | ✅ |
| ConvertKit | ✅ | ✅ | — | — | — | ✅ |
| Mailchimp | ✅ | ✅ | — | — | — | ✅ |
| Listmonk | ✅ | ✅ | — | — | — | ✅ |
Getting Started
- Connect your social accounts via the dashboard or API
- Create a post with target account IDs
- RelayAPI handles platform-specific formatting automatically
Platform Overrides
Use target_options to customize content per platform:
const post = await client.posts.create({
content: 'Check out our new feature!',
targets: ['acc_twitter_123', 'acc_linkedin_456'],
scheduled_at: 'now',
target_options: {
twitter: {
content: 'Check out our new feature! 🚀 #tech',
},
linkedin: {
content: "Excited to announce our latest feature. Here's what it means for the industry...",
},
},
});post = client.posts.create(
content='Check out our new feature!',
targets=['acc_twitter_123', 'acc_linkedin_456'],
scheduled_at='now',
target_options={
'twitter': {
'content': 'Check out our new feature! 🚀 #tech',
},
'linkedin': {
'content': "Excited to announce our latest feature. Here's what it means for the industry...",
},
},
)post, err := client.Posts.New(context.TODO(), relaygo.PostNewParams{
Content: relaygo.F("Check out our new feature!"),
Targets: relaygo.F([]string{"acc_twitter_123", "acc_linkedin_456"}),
ScheduledAt: relaygo.F("now"),
TargetOptions: relaygo.F(map[string]interface{}{
"twitter": map[string]interface{}{
"content": "Check out our new feature! 🚀 #tech",
},
"linkedin": map[string]interface{}{
"content": "Excited to announce our latest feature. Here's what it means for the industry...",
},
}),
})PostCreateResponse post = client.posts().create(PostCreateParams.builder()
.content("Check out our new feature!")
.addTarget("acc_twitter_123")
.addTarget("acc_linkedin_456")
.scheduledAt("now")
.targetOptions(PostCreateParams.TargetOptions.builder()
.putAdditionalProperty("twitter", JsonValue.from(Map.of(
"content", "Check out our new feature! 🚀 #tech"
)))
.putAdditionalProperty("linkedin", JsonValue.from(Map.of(
"content", "Excited to announce our latest feature. Here's what it means for the industry..."
)))
.build())
.build());curl -X POST https://api.relayapi.dev/v1/posts \
-H "Authorization: Bearer $RELAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"content": "Check out our new feature!",
"targets": ["acc_twitter_123", "acc_linkedin_456"],
"scheduled_at": "now",
"target_options": {
"twitter": {
"content": "Check out our new feature! 🚀 #tech"
},
"linkedin": {
"content": "Excited to announce our latest feature. Here'\''s what it means for the industry..."
}
}
}'Found something wrong? Help us improve this page.