Account
Who a key belongs to, and the account's activity log.
Who an API key is acting as, and what is left of its allowance.
Get the context of this API key
GET/me
Who the key is acting as: the account, live or test mode, the profile the key is scoped to, the plan, how much of today's post allowance and this month's render allowance is used, and how many connections the key reaches. Usage is account-wide, also for a key scoped to a profile, because the caps are shared across profiles. The MCP tool get_context answers the same.
Rate limit: 60 requests per minute per API key.
curl "https://api.yeetpost.com/api/v2/me" \ -H "x-api-key: $YEETPOST_API_KEY"{ "account": { "id": "3f0c2d54-6a1b-4c8e-9d7a-1b2c3d4e5f60", "name": "Acme HQ" }, "mode": "live", "profile": null, "plan": "free2", "usage": { "postsToday": 3, "dailyPostCap": 100, "postsThisMonth": 41, "monthlyPostCap": null, "messagesThisMonth": 2, "monthlyMessageCap": 10, "smsThisMonth": 0, "monthlySmsCap": 10, "rendersThisMonth": 12, "monthlyRenderCap": 300 }, "rateLimits": { "mcpRequestsPerMinute": 60 }, "connectionCount": 2, "attention": { "total": 1, "items": [ { "kind": "no_posting_slots", "connection": "pangoling (LinkedIn)", "postId": "9b1c2d3e-4f50-4a6b-8c7d-0e1f2a3b4c5d", "errorCode": "queue_empty", "message": "no posting slots set on this connection, add some or send at a set time" } ] }}response 200
The context of the key.
headers: x-request-id, x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset
response body
The account the key belongs to.
The account's name, null when it was never given one and always null for a key scoped to a profile.
test for a test key, which reaches sandbox connections only.
live | test
The profile the key is scoped to, null when it reaches the whole account or its profile was deleted.
The id of the plan the account is on right now.
Posts sent today, UTC.
The most posts a day the account may send, null when there is no cap.
Posts sent this month, UTC.
The most posts a month the plan allows, null when there is no cap.
Messages (Slack, email and the like, not SMS) sent this month, UTC.
The most messages a month the plan allows, null when there is no cap.
SMS messages sent this month, UTC. SMS is counted apart from other messages because it costs per segment.
The most SMS messages a month the plan allows, null when there is no cap.
Images rendered this month, UTC.
The most renders a month, null when there is no cap.
Requests a minute the MCP endpoint takes per key.
The connections this key reaches: sandbox ones only for a test key, its own profile's for a scoped key.
What needs the user's eye right now, the same items the daily summary email carries: failed posts in the last 24 hours, logins that are expired or about to be, and connections with no posting slots that something tried to queue to. A scoped key sees only its profile's items and a test key only test-mode failed posts. Empty when all is well.
Every item that needs attention, however many are listed.
Up to 10 items, failed posts first (newest first), then logins.
failed_post | no_posting_slots | login_expired | login_expiring | source_error | source_item_failed | sources_allowance_reached | source_burst | sources_page_reads_reached
The connection's own description, such as "pangoling (LinkedIn)".
The failed post, or the newest one that hit the problem. Null for a login.
The post's error code. Null for a login.
Plain words that include the fix.
errors
Missing or invalid API key.
More than 60 requests in a minute for this API key. Back off and retry.
Something went wrong on our side. Quote the x-request-id when you report it. A failure can happen before the rate limit is checked, so this response carries the request id and nothing else.
What each code means and the fix: errors.
Get the account's activity
GET/activity
The account's activity log in plain words, newest first: posts that went out, failed, were cancelled or deleted, connections added, reconnected or needing a reconnect, team members, keys and webhooks. On the first page it also carries the post requests that were refused in the last 30 days and are still worth acting on, which never became a post and so are in no other list.
The log covers the whole account, so it needs a live key that is not scoped to a profile: a scoped key and a test key answer 403 forbidden. The MCP tool get_activity answers the same.
Rate limit: 60 requests per minute per API key.
curl "https://api.yeetpost.com/api/v2/activity" \ -H "x-api-key: $YEETPOST_API_KEY"{ "items": [ { "id": "6d1f0c2e-8b3a-4c55-9a10-2f7e4d5b6a71", "at": "2026-08-29T09:24:11.412Z", "kind": "post_sent", "title": "Yeeted to LinkedIn", "detail": "Spring menu is live.", "href": "/app", "actor": "you" } ], "cursor": null, "refusedRequests": [ { "id": "c1a2b3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "createdAt": "2026-08-29T08:02:40.100Z", "errorCode": "invalid_connection", "status": 400, "apiKeyName": "Acme integration", "textPreview": "Spring menu is live.", "responseMessage": "No connection with the slug 'linkedin-acme'.", "connectionSlug": "linkedin-acme", "resolution": "open", "connectionName": null, "connectionId": null } ]}query parameters
How many items to return.
The cursor of the previous page. A cursor that does not decode starts over at the first page.
response 200
The activity, newest first.
headers: x-request-id, x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset
response body
post_sent | post_failed | post_cancelled | post_deleted | connection_added | connection_reconnected | connection_needs_reconnect | member_invited | member_joined | api_key_created | webhook_added | source_item_posted | source_item_failed | source_check_failed | refused_requests
What happened, in plain words.
A line more about it, such as the connection or the reason.
Where the console shows it.
you when the key's own owner did it, a teammate's email, a key's name, or yeetpost when nobody in particular did.
Hand this back as cursor for the next older page. Null when there is nothing further back.
The post requests the API refused outright in the last 30 days that are still worth acting on, newest first, on the first page only. A refused request never became a post, so it only lives here. A refusal already fixed is left out.
The stable error code the request was refused with.
The key that made the request. Null when the key has since been deleted.
The first characters of the text the request tried to post. Null when the body held no readable text.
The refusal in the caller's own words. Null when none was logged.
The connection the request named. Null on a bulk request.
How the refusal stands today: open is still broken, moved is a slug that now belongs to another profile than the key's, deleted is a slug no connection answers to any more.
open | moved | deleted
errors
A limit outside 1 to 100.
Missing or invalid API key.
This API key is scoped to one profile, and the endpoint is outside that scope. Profiles are managed with an unscoped key; a scoped key may only read its own profile and connect accounts into it.
More than 60 requests in a minute for this API key. Back off and retry.
Something went wrong on our side. Quote the x-request-id when you report it. A failure can happen before the rate limit is checked, so this response carries the request id and nothing else.
What each code means and the fix: errors.