Skip to main content
Social lets you publish to ten-plus platforms — X, LinkedIn, Instagram, Facebook, YouTube, TikTok, Pinterest, Threads, Reddit, Bluesky, and Google Business Profile — through one API, with scheduling, drafts, per-platform overrides, comment management, and analytics. You can just ask Crevio to write and schedule a week of posts, or drive it yourself: connect accounts once, then POST /socials/posts with your content and a list of platforms. One call fans out to every channel, and you manage the replies and analytics from the same place.

Connect platforms

Posting requires at least one connected account. Two ways to connect:
Supported platforms (use these exact lowercase values): twitter, linkedin, instagram, facebook, youtube, tiktok, pinterest, threads, reddit, bluesky, googlebusiness.

Publish a post

content and platforms are required. Without publish_now or scheduled_at, the post is saved as a draft.

Worked example: schedule a post to three platforms

This schedules one post to LinkedIn, X, and Threads, with a LinkedIn-specific override and an attached image.
Upload media first via POST /socials/upload and pass the returned IDs in upload_ids when you want to reuse the same asset across posts, instead of re-fetching a URL each time.

Pinterest

A Pinterest pin is an image, so a Pinterest post is rejected with 422 unless you attach media via media_urls or upload_ids. Pins also need a board. If you don’t name one, Crevio pins to the first board on the connected account; pass platform_data.pinterest.board_id to choose, using an id from GET /socials/accounts/{id}/boards. An account with no boards at all fails with a message telling you to create one.
List the boards a connected Pinterest account can pin to:
Keys inside platform_data work in either snake_case or camelCase (board_id and boardId are the same field).

Google Business Profile

A googlebusiness post is an update on the Business Profile, shown on Google Search and Maps. It takes text up to 1,500 characters and images only: a post with a video attached is rejected with 422. Optional platform_data.googlebusiness keys: location_id (a profile with several locations), language_code, topic_type (STANDARD, EVENT, OFFER or ALERT), call_to_action, event and offer. Google Business Profile posts have no comments, so GET /socials/comments?platform=googlebusiness returns an empty list.

Publish a draft later

Posts created without publish_now/scheduled_at stay as drafts until you publish them.

Queue posts into set posting times

Set weekly posting times once, then send posts with queue: true instead of picking a scheduled_at for each. Every queued post takes the next free time, so ten posts fill the next ten slots. PUT /socials/queue replaces the whole set. Each slot is a day_of_week (0 is Sunday, 6 is Saturday) and a 24-hour time, read in timezone (an IANA name; it defaults to the account’s timezone). Sending the same body again changes nothing, and posts already in the queue keep their times. If social posting is not activated yet, this activates it, which needs an active subscription.
GET /socials/queue returns the same timezone and slots, plus next_slots: the upcoming times they fall on. An account with no posting times gets empty slots. Queue a new post, or a draft:
The post comes back scheduled, with scheduled_at set to the time it got. queue cannot be combined with publish_now or scheduled_at (422). When no posting time is free, or none are set, the request fails with 422 and code social_queue_empty: a new post is not saved, and a draft stays a draft.

Know when a post goes out

Subscribe a webhook endpoint to social_post.scheduled, social_post.published and social_post.failed instead of polling GET /v1/socials/posts/:id. Each carries the post, and social_post.failed carries the reason in error.

Manage comments

Crevio surfaces incoming comments so you (or an agent) can engage without leaving the API. Reply publicly, hide spam, like, send a private reply, or delete.
Other comment actions follow the same shape: unhide, like, private_reply, and delete.
Pair this with a Task to let Crevio triage and reply to comments automatically on a schedule.

X (Twitter) engagement

/v1/socials/twitter/* covers the X-only reads and engagement that have no cross-platform equivalent: searching public posts, resolving one by id or URL, and reposting, bookmarking and following with their inverses.
Nothing under /socials/twitter publishes. A reply is still a post — POST /socials/posts with platform_data.twitter.replyToTweetId set to the id you found — so there is exactly one endpoint that says something publicly.
Every call acts as your connected X account. SocialAccount holds one row per platform, so the account is unambiguous and the optional account_id (a sacct_… id) is an explicit override, not a required selector. With no X account connected you get a 404; pointing account_id at a non-X account gets a 400. query is passed to X unchanged, so its own operators (from:, to:, -is:retweet, conversation_id:, quoted phrases, boolean OR) all work. Standalone operators like is:, has: and lang: must be combined with a keyword or a from: clause. Results are cursor-paginated, and search is limited to 300 requests per 15-minute window per connected account.
Each result carries id, text, created, conversation_id, in_reply_to_tweet_id, lang, author, and the public counts (like_count, reply_count, retweet_count, quote_count).
Poll mentions by re-running the same query with since_id set to the highest id you have already seen. Search only reaches back 7 days; lookup does not, which makes it the way to read the parent of a thread before replying to it.

Lookup and engagement

A tweet URL carries slashes, so it can’t ride in a path segment — pass it to tweets/lookup as a query parameter instead.
retweets and bookmarks take tweet_id; follows takes the target’s numeric target_user_id. Follow answers with following and pending_follow — a protected account yields a pending follow request rather than a completed follow.
Reposting shares X’s 300-per-3-hours creation budget with publishing, so a repost loop competes with your scheduled posts.

Analytics

Pull performance at the account level (across all connected channels) or for an individual post.

Next steps

Tasks

Have Crevio write and schedule social posts on a recurring basis.

Images

Generate post visuals with AI.

Ads & Voice

Turn a high-performing post into a paid ad.

API reference

Every social endpoint and parameter.