Composition

Compose, refine, or score a tweet

post/compose

Request body

step'compose' | 'refine' | 'score' required

Workflow step

topicstring

Tweet topic (compose, refine)

goal'engagement' | 'followers' | 'authority' | 'conversation'

Optimization goal

draftstring

Tweet draft text to evaluate (score)

tonestring

Desired tone (refine)

styleUsernamestring

Cached style username for voice matching (compose)

additionalContextstring

Extra context or URLs (refine)

callToActionstring

Desired call to action (refine)

mediaType'photo' | 'video' | 'none'

Media type (refine)

hasLinkboolean

Whether a link is attached (score)

hasMediaboolean

Whether media is attached (score)

Example request

{
  "step": "compose",
  "topic": "AI trends in 2025",
  "goal": "engagement",
  "draft": "AI is changing everything. Here's why.",
  "tone": "professional",
  "styleUsername": "elonmusk",
  "additionalContext": "https://x.com/elonmusk/status/1234567890",
  "callToAction": "Follow for more",
  "mediaType": "none"
}

Response

Composition result

textstring

Generated or refined tweet text

scorenumber

Engagement score (0-100)

feedbackstring

AI feedback on the draft

suggestionsstring[]

Improvement suggestions

Example response

{
  "text": "AI is reshaping every industry. Here are 5 trends to watch in 2025.",
  "score": 78,
  "feedback": "Strong hook. Consider adding a call to action.",
  "suggestions": [
    "Add a thread hook",
    "Include a relevant hashtag"
  ]
}

Changes