First agent request
Mint a token, read usage, post a comment, poll until identity is present, then like.
When you finish this page, an agent or a terminal has posted one comment on YouTube or TikTok and started liking that comment, using the same credits as the web app. MCP tools send the same JSON as the curl bodies below.
If you would rather click than use a terminal, paste the token into the playground and run each command there in the same order.
Before you start
You need a team workspace with credits, and a video URL. Home paste in the web app accepts YouTube Shorts and TikTok only. This HTTP command also accepts a regular YouTube watch URL.
Set these once. HOST is https://rumora.ai in production. TOKEN is filled in after you create the key.
export HOST=https://rumora.ai
export TOKEN='rmr_YOUR_TOKEN'1. Create a key
- Sign in and open the team workspace.
- Click API keys in the sidebar.
- Click Create key.
- Copy the full secret. It starts with
rmr_. Reload hides it.
Put it in the shell:
export TOKEN='rmr_PASTE_THE_SECRET_HERE'Only members who can manage settings can create a key. Personal accounts have no API keys page. More client snippets are in Sideload the MCP server.
2. Read remaining credits and live limits
This call spends nothing. Always do it before a write, because max comment length and minimum likes can change.
curl -sS "$HOST/api/v1/usage" \
-H "Authorization: Bearer $TOKEN"You should see credits_left, comment_credits, like_credits, find_credits, and limits for youtube and tiktok.
Copy two numbers for the platform of your video:
commentMaxLengthis the longest text you may send in the next step.likeMinis the smallest likequantityyou may send in the last step.
If you see "code": "UNAUTHORIZED", the token is wrong. Create the key again and export TOKEN with the full secret, not the prefix.
3. Post one comment
Replace VIDEO_URL with the real URL. Replace text with your comment, at or under commentMaxLength. Keep idempotency_key at least 8 characters. If curl times out, send the same key again.
Do not add likes. The comment is not live yet, so there is nothing to like.
curl -sS -X POST "$HOST/api/v1/comments" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"video_url": "VIDEO_URL",
"text": "Useful breakdown of this.",
"idempotency_key": "comment-1"
}'You should see "type": "thread" and "status": "queued". Copy id. That is the thread id.
If you see "code": "PAYMENT_REQUIRED", open checkout_url from the error, buy credits, then retry with comment-1. If you see "code": "PLATFORM", the URL is not YouTube or TikTok.
4. Poll until identity is present
Replace THREAD_ID with the id from step 3. Run this, wait a few seconds, run it again. Stop when identity is an object, not null.
curl -sS "$HOST/api/v1/status/THREAD_ID" \
-H "Authorization: Bearer $TOKEN"What you copy from identity depends on the platform:
- YouTube likes need
youtube_like_url, or the watch URL pluslc=andcomment_id. - TikTok likes need
video_urlandusername. - Replies on both platforms use the video URL plus the posted username. Do not send an
lcURL on a reply.
If identity stays null, keep polling. The comment is not live yet. This is explained in Comment identity.
5. Like the live comment
Set quantity to likeMin from step 2, or higher. Use a new idempotency key (like-1, not comment-1). Replace the identity values with what you copied.
YouTube
curl -sS -X POST "$HOST/api/v1/comments/like" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.youtube.com/watch?v=VIDEO&lc=COMMENT_ID",
"quantity": 25,
"idempotency_key": "like-1"
}'TikTok
curl -sS -X POST "$HOST/api/v1/comments/like" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://www.tiktok.com/@user/video/VIDEO",
"username": "posted_name",
"quantity": 25,
"idempotency_key": "like-1"
}'You should see "type": "like" and "status": "queued".
If you see "code": "QUANTITY", send at least min from the error body.
If a call fails
Match error.code in Errors. The same sequence without curl is in Comment then like.
Last updated on