Use case

Monitor brand mentions on X with advanced search operators

Run X (Twitter) advanced search queries and get matching tweets as JSON with text, author, engagement and date, for brand, product and competitor monitoring.

Prepaid, no subscriptionREST or MCPOne key for models, data and agents
X (Twitter)lovelyjsonitems[0]"text": "Switched our alerts t…"author": "@ops_tomas""likes": 212"date": "2026-10-25""lang": "en"

Brand mentions on X come in two kinds: the ones that tag you, which you see, and the ones that just say your name, which you do not. The second kind is where complaints and buying advice live. Lovely Router runs X's own advanced search for you. Send queries, get one JSON object per tweet, pay per tweet from a prepaid balance. Call it from a scheduled script, a Slack bot or an AI agent with one API key.

Hand it to your AI agent

Copy this prompt into Claude Code, Cursor, Codex or any coding agent. It tells the agent where the docs are and how to use your API key.

Monitor brand mentions on X with advanced search operators. Use the Lovely Router data tools: each returns JSON and is billed per result.

- Docs (read first): https://lovelyrouter.com/docs/tools/find.md and https://lovelyrouter.com/docs/tools/run.md
- Plan first: POST https://lovelyrouter.com/v1/tools/suggest with `{"task": "<my task in plain words>"}` (free). It returns the tools to run in order, each with an example `input`, the `input_required` fields, an estimated cost and a ready-made `run` request. Replace the example values with my task's; if a field is unclear, read the tool with GET https://lovelyrouter.com/v1/tools/<id>. To browse instead, POST https://lovelyrouter.com/v1/tools/discover searches the catalog.
- Show me the plan and its estimated cost (`total_est_cost_usd`) before running anything large.
- Run: POST https://lovelyrouter.com/v1/tools/<id>/run with `{"input": {...}, "max_results": N}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up.
- If you support MCP, connect https://lovelyrouter.com/mcp instead (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.

My task: <the inputs (links, keywords or accounts) and how many results you need>
01

How it works

010203
  1. Write the queries

    One query per entry, written like X's search box: your brand in quotes, product names, common misspellings, -from:yourhandle to drop your own posts, min_faves: to skip noise.

  2. Run the tool with a cap

    Send the queries to POST /v1/tools/x-search/run with max_results. The run holds its maximum cost from your balance and returns the tweets as JSON.

  3. Route what matters

    Send complaints to support, questions to sales, and high-engagement posts to whoever owns the brand. Store the date of the newest tweet so the next run starts after it.

02

Search X with one request

Search X (Twitter) posts takes queries in searchTerms. maxItems is the cap and queryType sets the order: Latest, Top or Latest + Top:

curl https://lovelyrouter.com/v1/tools/x-search/run \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "input": {
      "searchTerms": ["\"brightloop\" -from:brightloop since:2026-10-20 lang:en"],
      "maxItems": 50,
      "queryType": "Latest"
    },
    "max_results": 50
  }'

Latest returns newest first, which suits a monitoring job; Top ranks by relevance and is not exhaustive. A run still going after 60 seconds returns 202; Run a tool shows how to poll.

03

What each tweet holds

Field groupWhat you get
ContentThe text of the tweet
AuthorWho posted it
EngagementThe engagement counts
TimeThe date it was posted

Operators the tool lists include from:, to:, -from:, since:, until:, lang:, min_faves: and filter:, plus hashtags, @mentions, exact phrases, OR and exclusions.

04

Recipes

Daily brand digest

Search your name with -from: your own handle and since: set to yesterday. Post the tweets with the most engagement to a team channel each morning.

Complaint alerts

Add words such as "refund", "broken" or "cancel" next to your brand with OR, run every hour, and forward new hits to support.

Competitor watch

Search a rival's name with min_faves:50 to see only the posts that traveled. Look for what customers say they wish it did.

Campaign hashtag tracking

Search your hashtag with until: and since: around the campaign dates and count tweets per day.

Language-specific listening

Add lang: to a query to read only the tweets in one language, or pass the lang input.

Prefer plain words? Connect the MCP server and tell Claude Code or Cursor: "Search X for tweets that mention brightloop since Monday, excluding my own posts, summarize the complaints by theme and list the five most-liked. Set max_results to 100."

05

Pair it with other listening sources

06

What you pay

You pay per tweet: starting a run holds its maximum cost, the per-call fee plus the per-tweet fee times max_results, and the run settles to what it returned. The rest of the hold goes back to your balance. A run that fails or times out pays only for the tweets it delivered, and a run refused at the start costs nothing.

Monitoring 200 tweets a day is billed as 200 tweets a day. There is no subscription and no monthly minimum: top up from $5, and one balance pays for tools and models. The card above shows today's price; pricing lists every tool.

07

Frequently asked questions

?
Can I use X's advanced search operators?+

Yes. Each search term accepts them, including from:, since:, min_faves:, filter: and lang:.

How many tweets can one run return?+

Up to 500, and 20 by default. Set maxItems and max_results to the number you want.

Can I search only one account's posts?+

Yes, with from:handle in the query. The tool also takes twitterHandles to collect an account's posts.

How do I avoid reading the same tweets twice?+

Use since: with the date of your last run and keep queryType on Latest. Store the tweet date you reached.

Do I need an X account or API access?+

No. You send queries and an API key.

Do I need a subscription?+

No. You add credit to a prepaid balance and each run draws it down. Failed runs pay only for the results they delivered, and nothing renews automatically.

Tracking more than one channel? See social listening, influencer research and the rest of the tool catalog.

One prepaid key for models, data and agents

No subscription. Top up, use what you need, see every charge in your logs.