search:user

Finds accounts matching a query. X's people search: use it to find an account you know by name but not by handle, and then keep the id.

Fields

query Required. What to search for
max how many to return. This is what the call costs
cursor the next from the page before
profile the account to search as. Optional when the agent has one
reason Required over MCP. One short sentence, in the agent's own words, for the person

Always send max

X's default page here is a hundred accounts, which is $1.000, and the endpoint will take a max as high as a thousand - ten dollars in one call. There is no read on the surface where the number matters more.

It narrows by nothing else

No since_id, no until_id, no time window: X does not offer them on this endpoint, so they are not on the operation and sending one is refused with the reason.

What comes back

{ "status": "done",
  "ref": "J2RN6VC4",
  "page": { "next": "c47f0a1b9de" },
  "data": {
    "data": [
      { "id": "1400000000000000044",
        "name": "Playground User",
        "username": "playground_user",
        "description": "Default playground user for testing API endpoints.",
        "protected": false,
        "verified": false,
        "verified_type": "none",
        "public_metrics": {
          "followers_count": 18, "following_count": 23, "tweet_count": 67,
          "listed_count": 10, "like_count": 109, "media_count": 16
        } }
    ],
    "meta": { "result_count": 10,
              "next_token": "c47f0a1b9de" }
  } }

The page block is shorter here: newest_id and oldest_id are post ids and mean nothing on a list of people, so a user search carries only next and previous. Each page is its own call at the same price.