TwitterAPIs Docs
API ReferenceUser Reads

Bookmark Search API

Search the bookmarks of the account behind your registered session by keyword. Matches against bookmarked tweet text and returns full tweet objects. Cursor-paginated. Requires a registered session. Cost: $0.0008 per call.

GET
/user/bookmark_search

Authorization

bearerAuth
AuthorizationBearer <token>

Pass your API key as a bearer token on every request: Authorization: Bearer <API_KEY>.

In: header

Query Parameters

query*string

Keyword(s) to match against your bookmarked tweets' text.

count?integer

Items per page. Defaults to 20; capped at 100.

cursor?string

Pagination cursor from a previous response's next_cursor.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/user/bookmark_search?query=cursor+pagination"
{  "count": 1,  "next_cursor": "DAACCgAC...",  "tweets": [    {      "id": "1759123456789012345",      "text": "The empty array is the universal stop signal for cursor pagination.",      "created_at": "Tue Feb 20 14:02:11 +0000 2026",      "author": {        "id": "745273",        "username": "naval",        "name": "Naval"      },      "favorite_count": 4821    }  ]}
{  "error": "bad_request",  "message": "Missing or malformed parameter. Fix the request before retrying."}
{  "error": "unauthorized",  "message": "The API key is missing, malformed, or revoked. Check the Authorization header."}
{  "error": "insufficient_credits",  "message": "Your balance is exhausted. Top up your credits to continue."}
{  "error": "not_found",  "message": "The resource does not exist, for example a deleted tweet or a private account."}
{  "error": "rate_limited",  "message": "Too many requests. Back off and retry with exponential backoff."}
{  "error": "server_error",  "message": "Something failed on our side. Retry with backoff; if it persists, contact support."}

Pricing

UnitPrice
Per call$0.0008
Per 1,000 calls$0.80
Per 1,000 records (~20 per call)~$0.04

Pagination

This endpoint is cursor-paginated and returns roughly 20 records per call. Pass the next_cursor from each response back as the cursor parameter to read the next page. Stop when the records array comes back empty: follower-graph endpoints return a non-null cursor even on the final page, so the empty array is the only reliable stop signal. See Pagination for the full loop.