Skip to the main content

Getting started

From API key to a scheduled short-form video in five requests.

Get a key

Create a key in the dashboard under Settings, Developers. For this guide, give it generations:write, posts:write and accounts:read. The key is shown once. Live keys start with lt_live_; test keys start with lt_test_ and never post to a platform.

Shell

export LOOPTAKE_API_KEY="lt_live_…"

Check the key

GET /me needs no scope. It returns the team, plan, credit balance, default workspace and the scopes on the key. Connect social accounts in the dashboard, then read their ids from GET /accounts.

Requests

curl "https://looptake.com/api/v1/me" -H "Authorization: Bearer $LOOPTAKE_API_KEY"

# Account ids to post to
curl "https://looptake.com/api/v1/accounts?platform=tiktok" -H "Authorization: Bearer $LOOPTAKE_API_KEY"

Generate ideas

POST /generations returns finished ideas: hook, caption, hashtags and a hook score. It costs no credits. It is limited to 10 requests per 300 seconds, and one batch counts as one request.

Request

curl -X POST "https://looptake.com/api/v1/generations" \
  -H "Authorization: Bearer $LOOPTAKE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"count": 3, "prompt": "Why most small shops run out of stock in September"}'

Schedule a post

Pass the suggestionId you want. This accepts the idea and schedules it in one call. tiktokSendToInbox sends the video to your TikTok inbox instead of the feed, so you can check it first. Inbox posts carry no caption: paste it in TikTok.

Request

curl -X POST "https://looptake.com/api/v1/posts" \
  -H "Authorization: Bearer $LOOPTAKE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "suggestionId": "6522d1ec-2c11-4d3a-b078-6f6cfe9f217b",
    "selectedAccounts": {"tiktok": ["ff9d429b-07c5-4320-a98c-ac6e1791b828"]},
    "schedule": "scheduled",
    "scheduledTime": "2026-09-01T15:00:00Z",
    "timezone": "Europe/Lisbon",
    "tiktokSendToInbox": true
  }'

Poll the post

Poll until the status is posted, partial, failed or cancelled. Also stop on draft and on a renderStatus of failed. Each target account has its own status, URL and error. To skip polling, use webhooks.

Request

curl "https://looptake.com/api/v1/posts/973821cf-5cc7-44f7-8795-e68da31c59ef" \
  -H "Authorization: Bearer $LOOPTAKE_API_KEY"

From the CLI

The same steps with the CLI. --wait blocks until the post is live.

CLI

npx looptake login
npx looptake generate --count 3 --prompt "Why most small shops run out of stock in September" --json
npx looptake posts create \
  --suggestion-id 6522d1ec-2c11-4d3a-b078-6f6cfe9f217b \
  --tiktok ff9d429b-07c5-4320-a98c-ac6e1791b828 \
  --at 2026-09-01T15:00:00Z --wait

Next: scopes, posts and scheduling, MCP for agents, or the full reference.

Describe it. Looptake writes, renders, scores and posts it to TikTok, Reels and Shorts.

Free trial, no card. Paid plans from $29/month.