ShapelessAIAll capabilities
Publishing

Review the queue

Read everything proposed, scheduled and published on the account, then act on it: approve a proposal (proposed becomes scheduled), dismiss it, publish a queued post now, edit a still-scheduled post's time, text, media or target account, cancel it, or ask for a rework from feedback.

View as Markdown

A batch resolves in one call. Every draft the agent team makes lands here first, so this is where a human, or the agent acting for one, says yes.

Ask in plain words

  • "what is waiting for my approval"
  • "approve the two LinkedIn posts you would pick"
  • "move Thursday's post to Friday 6pm"
  • "publish the queued post now"
  • "cancel the scheduled TikTok"

From an agent host (MCP)

Server: https://shapelessai.com/mcp (add it to your host).

  • posts_list: The post queue: proposed drafts, scheduled posts, published history. Needs the read scope.
  • posts_get: One post's live state. Needs the read scope.
  • posts_approve: PUBLISHES CONTENT: approving moves proposals to the schedule, and they will go out. Needs the publish scope.
  • posts_dismiss: Cancel posts: proposed, scheduled, failed or handed-off. Nothing already publishing or published is touched. Pass the user's reason when they gave one; it teaches the agent their taste. Needs the write scope.
  • posts_publish: PUBLISHES CONTENT NOW: pushes a queued post to the platform immediately. Needs the publish scope.

From code (REST)

Bearer API key with the scope each call names (auth, OpenAPI).

  • GET /api/posts (read scope): The queue: proposed, scheduled, published. ?status= and ?limit= narrow it.
  • GET /api/posts/{id} (read scope): One post's live state.
  • PATCH /api/posts/{id} (write scope): Edit a still-scheduled post: time, text, media, settings, first comment, or the target account (same platform).
  • DELETE /api/posts/{id} (write scope): Cancel a scheduled or proposed post.
  • POST /api/posts/{id}/approve (publish scope): Approve one proposal: proposed -> scheduled.
  • POST /api/posts/{id}/publish (publish scope): Publish a queued post now.
  • POST /api/posts/{id}/mark-posted (publish scope): Record that you posted it yourself.
  • POST /api/posts/{id}/revise (write scope): Rework a draft from feedback.
  • POST /api/posts/resolve (publish scope): Resolve posts: {ids, verb: approve|dismiss}. Approve takes proposed posts; dismiss cancels proposed, scheduled, failed or handed-off ones. Dismiss costs write.

From a terminal (CLI)

  • shapeless posts list
  • shapeless posts show
  • shapeless posts approve
  • shapeless posts dismiss
  • shapeless posts publish
  • shapeless posts mark-posted

Example

curl -s "https://shapelessai.com/api/posts?status=proposed" -H "Authorization: Bearer $SHAPELESS_API_KEY"
// MCP tool call
{ "tool": "posts_approve", "arguments": { "ids": ["<postId>"] } }
shapeless posts approve <id>

Refusals

StatusMeaning
409Already publishing, or the new account is another platform.
402Free plan day full (FreeDailyCap).
409Needs a connected account: {needsConnection, connect: {platform, url, expiresAt}} - hand connect.url to the human.

Where else

Every capability · Docs · /llms.txt