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 --waitNext: scopes, posts and scheduling, MCP for agents, or the full reference.