API Documentation

Integrate content repurposing into your workflow with a single API call.

Base URL

https://contentrepurposer.app/api/v1
Authentication: Bearer token (API key)
Content-Type: application/json
Rate limit: 60 requests / minute
Response format: JSON
1

Create an account

Sign up at contentrepurposer.app/sign-up. Free accounts get 3 repurposes per month. Pro accounts ($29/month) get unlimited access.

2

Generate your API key

Go to Settings โ†’ API Keys and click "Generate API Key". Your key starts with cr_sk_. Copy it immediately โ€” it won't be shown again.

Keep your API key secret. Do not commit it to version control or expose it in client-side code. Use environment variables instead.
3

Make your first request

Send a POST request to /api/v1/repurpose with your content. The API processes everything synchronously and returns the completed results.

curl -X POST https://contentrepurposer.app/api/v1/repurpose \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer cr_sk_your_api_key_here" \
  -d '{
    "content": "Your blog post or transcript text here. Must be at least 50 characters long for meaningful repurposing.",
    "sourceType": "blog_post",
    "formats": ["twitter_thread", "linkedin_post", "email_snippet"]
  }'
4

Understand the request body

ParameterTypeRequiredDescription
contentstringYesYour source content. Minimum 50 characters.
sourceTypestringNo"blog_post" "youtube_transcript" "podcast_transcript". Defaults to "blog_post".
sourceUrlstringNoURL of the original content, included in outputs for attribution.
formatsstring[]NoArray of formats to generate. Options: "twitter_thread" "linkedin_post" "substack_notes" "email_snippet" "video_script". Defaults to all 5.
5

Handle the response

The API returns the completed job with all generated outputs. Each output includes the formatted content, structured data, and character/word counts.

{
  "id": "clx1abc...",
  "status": "completed",
  "requestedFormats": ["twitter_thread", "linkedin_post", "email_snippet"],
  "totalTokensUsed": 4250,
  "outputs": [
    {
      "id": "clx1def...",
      "format": "twitter_thread",
      "content": "1/7 ๐Ÿงต Hot take: The best engineers...",
      "structuredData": {
        "tweets": [
          { "text": "1/7 ๐Ÿงต Hot take: ..." },
          { "text": "2/7 Writing forces clarity..." }
        ],
        "threadSummary": "..."
      },
      "charCount": 1847,
      "wordCount": 312
    },
    {
      "id": "clx1ghi...",
      "format": "linkedin_post",
      "content": "I've noticed a pattern among...",
      "structuredData": {
        "text": "...",
        "hookLine": "...",
        "closingQuestion": "...",
        "hashtags": ["#SoftwareEngineering", "..."]
      },
      "charCount": 1203,
      "wordCount": 198
    }
  ]
}
6

Automate your workflow

Use the API to build automated publishing pipelines. Here are some ideas:

  • Run a cron job that repurposes new blog posts from your RSS feed
  • Connect to Zapier or Make to auto-post to social platforms
  • Build a CLI tool that repurposes content from your terminal
  • Integrate into your CMS publish workflow

Example: Repurpose and extract just the Twitter thread with jq:

curl -s -X POST https://contentrepurposer.app/api/v1/repurpose \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $CR_API_KEY" \
  -d "{"content": "$(cat my-blog-post.txt)", "formats": ["twitter_thread"]}" \
  | jq '.outputs[0].content'

Error responses

Errors return a JSON object with an error field:

StatusCodeMeaning
400VALIDATION_ERRORInvalid request body (e.g., content too short, unknown format)
401UNAUTHORIZEDMissing or invalid API key
402USAGE_LIMIT_REACHEDFree tier limit reached โ€” upgrade to Pro
429TOO_MANY_REQUESTSRate limited โ€” wait and retry

Ready to automate?

Create an account and generate your API key to get started.

Get Your API Key