yeetpostyeetpost

Plans and X fees

What your integration is billed for, and the error codes it sees when something is capped.


#What you pay for

yeetpost bills per active account, per month: one with a successful send in the last 30 days. Connecting an account is always free and never blocked, on the free plan or a paid one; it is posting to more than 2 active connections at once that the free plan caps. An active account is one LinkedIn profile, one LinkedIn company page or one X account, and so on for every platform. The first two are free, and later accounts fall into cheaper tiers as you add more.

accounts 1 to 2FreeNo credit card needed
accounts 3 to 10$5Per account, per month
accounts 11 to 100$2.50Per account, per month
accounts 101 and up$1Per account, per month

Posts are unlimited on every plan yeetpost sells. There is no monthly post quota, nothing rolls over, and no API call is refused for running out of posts. The full table is on the pricing page.

#X fees

X charges us for every post its API accepts, so posting to X carries a flat per-post fee on top of your subscription: 2 cents for a plain post and 25 cents for a post containing a link. They appear as metered items on your subscription. LinkedIn posts are free, and so are sandbox posts.

Whether a post counts as a link post is decided from its text when it is sent. A link is an http:// or https:// URL or a www. host, in either case, and nothing else. A bare host such as yeetpost.com counts as a plain post: we would rather absorb the difference than charge the link rate for a post X billed us the plain rate for.

X charges for reads too, so reading an X post's metrics is 1 cent a read, on its own meter and counted against the same monthly X spend cap. That price is a placeholder, so X analytics is off by default: X posts are not read at all unless the deployment turns it on, and their metrics stay empty. Analytics on every other platform is free.

#The three 402s

Posting to X needs a payment method from the very first post: there is no free X allowance. Without a card, posts to X fail with 402 payment_method_required. Add one in Settings and they go through. Adding a card subscribes you at the $0 base, so at two accounts you are still paying nothing but the X fees themselves.

402
{
  "error": "payment_method_required"
}

You can also set your own monthly X spend cap in Settings. Past it, posts to X fail with 402 spend_cap_reached until you raise the cap or the month rolls over. Nothing else on your account is affected.

402
{
  "error": "spend_cap_reached"
}

The free plan caps posting at 2 active connections at once, an active connection being one with a successful send in the last 30 days. Posting to a connection that is idle, or that has aged out of your 2 most recently active, fails with 402 connection_limit_exceeded. Subscribe, wait for an older connection to go idle, or post to one of your 2 most recently active connections instead. Connecting the account itself is never blocked, only posting to it.

402
{
  "error": "connection_limit_exceeded"
}

#Where limit_exceeded still applies

403 limit_exceeded is not about posts on the plans yeetpost sells today. It shows up in two places:

Messages have a monthly cap. Slack, SMS and email are message channels rather than post channels, and they are not shipped yet. When they land, going past the cap returns 403 limit_exceeded until the month rolls over.

Legacy plans have post caps. The plans sold before per-account pricing had a monthly post quota, and grandfathered subscribers keep it. On those plans, and only those, posting past the quota returns 403 limit_exceeded.

403
{
  "error": "limit_exceeded",
  "message": "You have reached your monthly message limit (500). Upgrade your plan for more messages."
}

#Handling this in code

All four codes are per-connection facts, so on a fan-out they arrive as a failed item inside a 200 rather than as an HTTP error: a post to LinkedIn and X can have the LinkedIn half land while the X half comes back with payment_method_required. Read the per-item error.code.

Retrying does not help for any of them. Full guidance per code is on the errors page.