Rumora

Find then comment

Start a Find job on a paid plan, pick a video URL from the cards, then post a comment.

When you finish this page, Rumora has searched YouTube or TikTok for you, you have picked one video from the result cards, and a comment is queued on that video. Find does not paste the video and does not post the comment. Those are separate steps on purpose, so you choose the URL.

Before you start

You need all of this:

  1. A team workspace on an active paid plan. Find is off on a free grant. get_usage must show "find_enabled": true.
  2. Enough credits for the search plus the comment. Today each keyword is 50 credits and a comment is 25 credits. Trust get_usage for find_credits and comment_credits.
  3. An API key that starts with rmr_, copied from API keys.
  4. One to ten search keywords. You will type them. Rumora does not invent them unless you use Get inspired in the web app.

Set these once:

export HOST=https://rumora.ai
export TOKEN='rmr_YOUR_TOKEN'

You can run the same commands in the playground.

1. Confirm Find is allowed

curl -sS "$HOST/api/v1/usage" \
  -H "Authorization: Bearer $TOKEN"

Check three things in the JSON:

  • find_enabled is true. If it is false, open Billing, start a paid plan, then run this call again.
  • credits_left is at least find_credits times the number of keywords you will send, plus comment_credits for the post.
  • limits.youtube.commentMaxLength or limits.tiktok.commentMaxLength, matching the platform you will search.

If you see "code": "UNAUTHORIZED", mint a new key.

platform must be youtube or tiktok. terms is an array of keywords. Each keyword spends find_credits. Keep idempotency_key at least 8 characters and reuse it if this request times out.

curl -sS -X POST "$HOST/api/v1/finds" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "youtube",
    "terms": ["ai coding agents"],
    "idempotency_key": "find-1"
  }'

You should see "type": "find" and "status": "queued". Copy id. That is the Find job id.

If you see "code": "FORBIDDEN", the workspace has no paid plan. Buy a plan or paste a URL instead.

If you see "code": "CONFLICT", a Find job is already running for this workspace. Copy job_id from the error body and poll that id in step 3. Do not start a second search.

If you see "code": "PAYMENT_REQUIRED", open checkout_url, buy credits, then retry with the same idempotency_key.

3. Poll until cards appear

Replace JOB_ID with the id from step 2, or with job_id from a CONFLICT error. Run this every few seconds.

curl -sS "$HOST/api/v1/status/JOB_ID" \
  -H "Authorization: Bearer $TOKEN"

Watch status and cards:

  • When cards is a non-empty array, you are done polling. Each card has a url. Copy the url you want to comment on.
  • When "status": "refunded", the search returned nothing and the Find credits came back. Change the keywords and start again with a new idempotency key.
  • When "status": "queued" or another in-progress value, wait and poll again.

Find still has not posted a comment.

4. Post a comment on the URL you picked

Replace VIDEO_URL with a url from cards. Keep text at or under commentMaxLength from step 1. Use a new idempotency key. Do not send likes.

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 if you will like or reply next.

To like that comment after it is live, continue with Comment then like from the poll step, using this new thread id.

If something fails

Match error.code in Errors. Why Find is a job you poll, not a list of URLs in the first response, is in Status and polling.

Last updated on