---
title: "Post Tweets by REST Call: Twitter Posting API"
description: "One authenticated POST publishes text, 4 images, or video to X. Twitter posting API with 280-char validation, scheduling, webhooks, and retries."
url: "https://adaptlypost.com/en/usages/twitter-posting-api"
---

# Ship Tweets From Your Backend With a Twitter Posting API

One authenticated POST to /social-posts is the entire Twitter posting API integration: send text, up to four images, or a video to your connected X account, publish immediately or queue it with scheduledAt and an IANA timezone.

[Get an API key](https://adaptlypost.com/en/signup)

![Terminal showing a POST request to the AdaptlyPost twitter posting API publishing a tweet with two images to a connected X account](https://cdn.adaptlypost.com/public/adaptlypost_dashboard.png)

### The X posting API surface, in full

REST over HTTPS at https://post.adaptlypost.com/post/api/v1, a bearer token, and a JSON body. The 280-character limit and the four-image ceiling are validated on our side, so a bad tweet fails with a 400 instead of a partial publish on X.

[ManagePost to all your platforms at onceShare to Instagram, TikTok, YouTube, X, and more with one click. Each post auto-adapts to fit the platform.](https://adaptlypost.com/en/features/post-multiple-social-media-accounts-once)

[ScheduleVisual content calendarPlan your week at a glance and never miss your best posting times.](https://adaptlypost.com/en/features/social-media-content-calendar)

[IntegrateAPI access & OpenClaw skillConnect via API or let your OpenClaw AI agent manage posts for you. Automate social media with natural language commands.](https://adaptlypost.com/en/features/openclaw-integration)

[GenerateAI image generator for social mediaGenerate scroll-stopping images in seconds. Just describe your vision and let AI bring it to life.](https://adaptlypost.com/en/features/ai-social-media-image-generator)

[CreateAI caption generator for every platformGet caption ideas, rewrite for different platforms, and add trending hashtags, all with one prompt.](https://adaptlypost.com/en/features/ai-caption-writer)

[OrganizeSocial media content plannerSee drafts, scheduled posts, and published content in one place. Know exactly what's going live and when.](https://adaptlypost.com/en/features/ai-social-media-scheduler)

## Trusted by Creators and Teams

See how creators, marketers, and small businesses use AdaptlyPost to stay consistent and save hours every week.

I'm a software engineer, not a marketer. My partner runs a TikTok page, so I help out by scheduling her posts, I batch everything in one sitting and let the AI handle the captions. Takes me about 20 minutes a week now.

[![Denys Zinych](https://cdn.adaptlypost.com/public/denys.jpg)Denys ZinychSoftware Engineer](https://www.linkedin.com/in/denys-zinych-b75543287/)

I run my nail art page and a personal brand. Scheduling both from one dashboard changed everything, I actually post consistently now and my engagement went up pretty noticeably within a month.

[![Irena](https://cdn.adaptlypost.com/public/irena.jpg)IrenaContent Creator](https://www.instagram.com/iirennails/)

I'm an SWE and honestly terrible at posting consistently. I just line up a week of updates for my personal brand whenever I have a spare minute, and the AI drafts captions per platform so I'm not rewriting the same thing five different ways.

[![Dorian Opacki](https://cdn.adaptlypost.com/public/dorian.jpg)Dorian OpackiSoftware Engineer](https://www.linkedin.com/in/dorianopacki/)

I'm a software engineer, not a marketer. My partner runs a TikTok page, so I help out by scheduling her posts, I batch everything in one sitting and let the AI handle the captions. Takes me about 20 minutes a week now.

[![Denys Zinych](https://cdn.adaptlypost.com/public/denys.jpg)Denys ZinychSoftware Engineer](https://www.linkedin.com/in/denys-zinych-b75543287/)

I run my nail art page and a personal brand. Scheduling both from one dashboard changed everything, I actually post consistently now and my engagement went up pretty noticeably within a month.

[![Irena](https://cdn.adaptlypost.com/public/irena.jpg)IrenaContent Creator](https://www.instagram.com/iirennails/)

I'm an SWE and honestly terrible at posting consistently. I just line up a week of updates for my personal brand whenever I have a spare minute, and the AI drafts captions per platform so I'm not rewriting the same thing five different ways.

[![Dorian Opacki](https://cdn.adaptlypost.com/public/dorian.jpg)Dorian OpackiSoftware Engineer](https://www.linkedin.com/in/dorianopacki/)

I'm a software engineer, not a marketer. My partner runs a TikTok page, so I help out by scheduling her posts, I batch everything in one sitting and let the AI handle the captions. Takes me about 20 minutes a week now.

[![Denys Zinych](https://cdn.adaptlypost.com/public/denys.jpg)Denys ZinychSoftware Engineer](https://www.linkedin.com/in/denys-zinych-b75543287/)

I run my nail art page and a personal brand. Scheduling both from one dashboard changed everything, I actually post consistently now and my engagement went up pretty noticeably within a month.

[![Irena](https://cdn.adaptlypost.com/public/irena.jpg)IrenaContent Creator](https://www.instagram.com/iirennails/)

I'm an SWE and honestly terrible at posting consistently. I just line up a week of updates for my personal brand whenever I have a spare minute, and the AI drafts captions per platform so I'm not rewriting the same thing five different ways.

[![Dorian Opacki](https://cdn.adaptlypost.com/public/dorian.jpg)Dorian OpackiSoftware Engineer](https://www.linkedin.com/in/dorianopacki/)

I'm not a social media person but I need to post my work somewhere. The AI writer drafts something decent, I tweak it a bit, schedule it, done. Went from posting once a month to three times a week.

[![Denys Kholin](https://cdn.adaptlypost.com/public/denysK.jpg)Denys KholinFreelance Designer](https://www.linkedin.com/in/denys-kholin/)

We connected our OpenClaw agent to AdaptlyPost and now our AI posts product updates across all channels automatically. It sounds futuristic but honestly it just works. The API integration was straightforward.

[![Taras Shynkarenko](https://cdn.adaptlypost.com/public/taras.jpg)Taras ShynkarenkoStartup Founder](https://www.linkedin.com/in/taras-shynkarenko/)

I'm not a social media person but I need to post my work somewhere. The AI writer drafts something decent, I tweak it a bit, schedule it, done. Went from posting once a month to three times a week.

[![Denys Kholin](https://cdn.adaptlypost.com/public/denysK.jpg)Denys KholinFreelance Designer](https://www.linkedin.com/in/denys-kholin/)

We connected our OpenClaw agent to AdaptlyPost and now our AI posts product updates across all channels automatically. It sounds futuristic but honestly it just works. The API integration was straightforward.

[![Taras Shynkarenko](https://cdn.adaptlypost.com/public/taras.jpg)Taras ShynkarenkoStartup Founder](https://www.linkedin.com/in/taras-shynkarenko/)

I'm not a social media person but I need to post my work somewhere. The AI writer drafts something decent, I tweak it a bit, schedule it, done. Went from posting once a month to three times a week.

[![Denys Kholin](https://cdn.adaptlypost.com/public/denysK.jpg)Denys KholinFreelance Designer](https://www.linkedin.com/in/denys-kholin/)

We connected our OpenClaw agent to AdaptlyPost and now our AI posts product updates across all channels automatically. It sounds futuristic but honestly it just works. The API integration was straightforward.

[![Taras Shynkarenko](https://cdn.adaptlypost.com/public/taras.jpg)Taras ShynkarenkoStartup Founder](https://www.linkedin.com/in/taras-shynkarenko/)

## How it works

Step 1

### Handle Twitter OAuth once, in the dashboard

There is no OAuth flow in the API - you connect X in the dashboard, then create a key under Settings > API Tokens. Every request carries Authorization: Bearer adaptly\_..., and GET /social-accounts returns the connected X account id you pass in twitterConnectionIds. For white-label setups, POST /connect-links mints a link your own end user opens to connect their X account.

Step 2

### POST the tweet to /social-posts

text, platforms, timezone and twitterConnectionIds are required on every call. X has no config object in the API - there is no twitterConfigs, so there is nothing per-platform to set: no polls, no quote posts, no replies, no first comment, no link-preview control. One X account per request is enforced with a 400, so posting the same tweet from two X accounts means two calls.

Step 3

### Read the X result and retry that entry

The request body is checked synchronously at create time: text past 280 characters, more than four images, or two X accounts in one call return a 400 immediately and no post record is written. GET /social-posts/:id/results reports what happened after we accepted and dispatched the tweet - the X entry with status, publishedAt, and platformPostId, the native tweet id, never a permalink. When X itself refuses the post - duplicate text, a connection whose token was revoked, a video it rejects during its own processing - the reason lands in errorMessage, and POST /social-posts/:id/retry re-fires only that platformId. Every registered webhook endpoint receives all four events - post.published, post.failed, post.partially\_failed and post.scheduled - with no per-event subscription to choose from.

## Simple, transparent pricing

Choose the perfect plan for your needs

### Creator

Perfect for individuals and solopreneurs

## $19

/month

[Start 7-day Trial](https://adaptlypost.com/en/signup)

* 30 connected social accounts
* Unlimited scheduled posts
* 1 team member
* 3 workspaces
* 150 credits/month
* AI Captions
* AI Image Studio
* API access & OpenClaw integration
* Image, video & carousel posts

Most Popular

### Pro

For professionals and growing teams

## $39

/month

[Start 7-day Trial](https://adaptlypost.com/en/signup)

* 60 connected social accounts
* Unlimited scheduled posts
* 5 team members
* 15 workspaces
* 400 credits/month
* AI Captions
* AI Image Studio
* API access & OpenClaw integration
* Image, video & carousel posts

### Enterprise

For agencies and enterprises ready to scale

## $89

/month

[Start 7-day Trial](https://adaptlypost.com/en/signup)

* 100 connected social accounts
* Unlimited scheduled posts
* 20 team members
* 50 workspaces
* 1000 credits/month
* AI Captions
* AI Image Studio
* API access & OpenClaw integration
* Image, video & carousel posts

All plans include a 7-day free trial

Want to see the full feature comparison? [View pricing page](https://adaptlypost.com/en/pricing)

## What you can post to Twitter via the API

### Text tweets, checked at 280 characters

The full payload is text, platforms set to TWITTER, an IANA timezone, and twitterConnectionIds. Anything past 280 characters comes back as a 400 before the call reaches X - no silent truncation, and no automatic splitting, because reply chains are not supported anywhere in the API. One call is one tweet.

### Up to four images per tweet

Attach one to four image URLs. Four is X's hard ceiling, and a multi-image tweet is exactly that - several images in one post, not a native X carousel unit. POST /upload-urls accepts image/jpeg, image/png and image/webp only, so GIF, HEIC and AVIF files cannot be pushed through it.

### One video, up to 140 seconds

MP4 or MOV, 512 MB maximum, one video per tweet. X itself will not take a video mixed with images, so keep the two apart. Unlike TikTok, X accepts mediaUrls on your own HTTPS host, so you can skip the upload step entirely - or push files through POST /upload-urls for presigned links that expire in an hour.

### Publish now, schedule, draft, or bulk-queue

Send scheduledAt with the timezone to queue a tweet, or saveAsDraft and fire POST /social-posts/:id/publish later. POST /social-posts/bulk takes 1-100 tweets in a single request, all sharing the same X connection, with scheduledAt required on every item. PATCH /social-posts/:id edits anything still unpublished.

## Post your first tweet from code

Connect X in the dashboard, create a key at Settings > API Tokens, and send one POST to /social-posts. The spec at /openapi.json needs no auth and imports straight into Make, n8n, or your own client generator.

[Get an API key](https://adaptlypost.com/en/signup)
