Last updated: September 2026
How many posts can a Bluesky bot make per day?
At most 11,666 posts a day and 1,666 an hour, per account. Bluesky gives every account 35,000 write points a day and 5,000 an hour, and creating a record costs 3 points. Every thread part, like and follow is a record too. Go past the budget and the API answers HTTP 429.
Those are the figures on the rate limits page of the Bluesky developer docs as of September 2026. Below: the full table, what threads cost, the login limit that bots actually hit first, and what a rate-limited post looks like.
The limits
Writes are counted in points per account, not per app or per IP, so two scripts posting as the same account share one budget.
Where 11,666 comes from
35,000 points divided by 3 points per create is 11,666 with 2 points left over. The hourly figure is 5,000 divided by 3, which is 1,666. Posting at the hourly maximum around the clock would need 40,000 records, so the daily budget is the one that binds.Threads cost one create per part
A Bluesky thread is not one object. Each part is a separate post record that replies to the one before it, so a 10-part thread is 10 creates and 30 points. The daily budget covers 1,166 ten-part threads.
The same logic applies to anything a bot writes. A like, a repost and a follow are each a record in your repository, so a bot that likes every mention and follows back spends from the same 35,000 points as its posts. Deletes are cheaper at 1 point, which matters for bots that clean up after themselves: deleting and reposting a post costs 4 points.
What realistic bots actually use
Almost no legitimate bot gets near the write ceiling. The ceiling is a guardrail, and the Bluesky Community Guidelines prohibit posting that disrupts normal conversations, so the realistic question is the login limit and bursts, not the daily total.
The limit a cron bot hits first is login, not posting
Session creation is capped at 30 per 5 minutes and 300 a day. A script that logs in fresh on every run is fine at one run an hour and close to the cap at one run every 5 minutes. Bluesky's bot docs say it directly: you only need to log in once per session.What happens at the limit
The server returns HTTP 429 Too Many Requests and the record is not written. Nothing is held for later. If you call atproto yourself, your code has to catch the 429, wait, and retry; Bluesky notes that many responses carry rate limit headers you can read to back off accurately instead of guessing.
For a thread the failure can land partway. Parts already posted stay public, so retrying the whole thread from the top would duplicate them. Resume from the part that failed.
Through OpenTweet the outcome is reported per network. If Bluesky refuses a post with a 429, its entry in the post's results comes back failed with a rate-limit message, and the other networks in the same post report their own result:
"results": [
{
"platform": "x",
"status": "published",
"post_id": "1834000000000000000",
"url": "https://x.com/you/status/1834000000000000000"
},
{
"platform": "bluesky",
"status": "failed",
"error": "Bluesky rate limit reached. Give it a few minutes and try again."
}
]For a thread that stops partway, the Bluesky error states how many parts were published before the failure, so you know where to resume. Field by field reference in the cross-posting docs.
7-day free trial. Cancel anytime.
If you are building the bot now
The code for a scheduled poster, an RSS version and the GitHub Actions workflow is in how to build a Bluesky bot, including the bot self-label Bluesky asks automated accounts to add. The raw SDK calls for login, links and images are in posting to Bluesky with Python.
Neither route needs an API key from Bluesky, because there is no such thing. The rate limit is the only gate the network puts in front of a bot.
Frequently asked questions
How many posts can a Bluesky bot make per day?
At most 11,666 a day and 1,666 an hour per account. Bluesky budgets writes in points: 35,000 a day and 5,000 an hour, with each new record costing 3 points. The limit is per account, so it does not matter whether the posts come from one script or several.
Does a thread count as one post against the limit?
No. Each part of a thread is its own record, so a 10-part thread costs 10 creates, which is 30 points. The daily ceiling of 11,666 records is therefore 1,166 ten-part threads, with 6 records to spare.
Do likes, reposts and follows count too?
In atproto a like, a repost and a follow are each a record written to your repository, so creating one costs the same 3 points as a post. A bot that likes and follows as well as posts is drawing on one shared budget.
What happens when a Bluesky bot hits the rate limit?
The server answers HTTP 429 Too Many Requests and the record is not created. Nothing is queued for you. Your code has to wait and retry, and Bluesky notes that many responses carry rate limit headers you can use to back off.
Is there a limit on logging in?
Yes, and it is the one bots hit first. Creating a session is limited to 30 per 5 minutes and 300 per day per account. Log in once and reuse the session instead of logging in before every post.
How does OpenTweet report a rate-limited Bluesky post?
In the per-network results array. The Bluesky entry comes back with status "failed" and an error saying the Bluesky rate limit was reached, while any other network in the same post reports its own outcome. For a thread that stops partway, the error says how many parts were already published.
Keep exploring
Building the bot, the SDK calls, and the link problem every automated account runs into.
Build a Bluesky bot
GitHub Actions cron, an RSS bot, and the self-label Bluesky asks bots to add.
Post to Bluesky with Python
atproto SDK code for login, facets and images, next to the one-call version.
Is there a Bluesky API key?
No key and no tiers. The rate limit is the only gate.
Links not clickable from Make.com
Why a URL posts as plain text, and how facets fix it.
Cross-posting API docs
The results array, statuses, and why a network is skipped.
Bluesky scheduler
Schedule posts and threads over OAuth, no App Password.
Post to Bluesky with a per-network result for every post
Connect over atproto OAuth once, post or schedule with one API call, and see exactly what each network did. Flat $11.99 a month.
7-day free trial. Cancel anytime.