Make
Build Make Twitter automation for tweet search, profiles, trending tweets, platform webhooks, and cursor-safe handoffs through TwexAPI.
Build Make Twitter automation with TwexAPI without an X Developer app. Search tweets, look up profiles, read trending tweets, and route normalized rows to Slack, Sheets, Airtable, Notion, or a CRM.
TwexAPI uses one API key and the REST base URL https://api.twexapi.io.
Choose a Make automation pattern
HTTP module
Call TwexAPI REST directly from Make’s HTTP module for scheduled or webhook-driven scenarios.
Custom webhook + agent handoff
Receive strict JSON from an MCP-capable agent, then route rows visually.
Private custom app
Package reusable modules when the same TwexAPI actions repeat across scenarios.
The native Make X app was decommissioned. TwexAPI remains available through HTTP modules or a private custom app.
Prerequisites
- TwexAPI API key
- Make organization account
- Optional Slack, Sheets, Airtable, Notion, or CRM module
- Optional MCP-capable agent connected to
https://api.twexapi.io/mcp
Connection
Create a reusable connection that stores the API key as a password field:
| Field | Value |
|---|---|
| Parameter name | apiKey |
| Header | Authorization: Bearer {{apiKey}} |
| Base URL | https://api.twexapi.io |
| Connection test | GET /balance |
Use GET /balance to validate the API key without mutating data.
Base HTTP module pattern
| Field | Value |
|---|---|
| Method | GET or POST from the selected endpoint |
| URL | https://api.twexapi.io plus the relative path |
| Header | Authorization: Bearer YOUR_API_KEY |
| Body type | Raw JSON for POST requests |
Handle status codes consistently:
401
Authentication failed. Check the TwexAPI API key.
403
Access denied. Check account access and credits.
429
Rate limited. Wait before retrying and preserve the cursor.
5xx
Service unavailable. Retry with exponential backoff.
Starter modules
| Module | TwexAPI route |
|---|---|
| Search tweets | POST /twitter/advanced_search/page |
| Get user profile | GET /twitter/{screen_name}/about |
| Search users | GET /twitter/search-user/{keyword}/{target_count} |
| Get trends | GET /twitter/global-trending/tweets |
| List followers | POST /v3/twitter/users/followers |
| Create tweet | POST /twitter/tweets/create |
Search tweets example
{
"url": "https://api.twexapi.io/twitter/advanced_search/page",
"method": "POST",
"headers": {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
"body": {
"searchTerms": ["AI agents lang:en"],
"sortBy": "Latest",
"nextCursor": ""
}
}
Iterate over returned tweets in a subsequent Iterator module. Store next_cursor in a Make data store when has_next_page or has_more is true.
Output handoff
Make scenarios should emit small, stable bundles rather than raw API responses.
Tweet search page
Store query; map tweet_id, text, author_username, created_at, has_next_page, and next_cursor.
User profile rows
Store user_id, username, name, follower counts, and lookup input.
Trend rows
Store country, topic, content tag, and tweet rows with scenario metadata.
Write actions
Preview with the CLI --dry-run. Write actions need a cookie or auth_token.
Recipe 1: agent handoff to Slack
- Custom webhook receives TwexAPI handoff JSON from an MCP agent.
- Iterator processes each item in
tweets. - Filter on keywords or authors.
- Slack module posts
author_username,text, and public URL.
Suggested agent prompt:
Use Twexapi MCP to fetch trending tweets for country United States, topic technology, content AI.
Return only JSON with route_used, country, topic, content, has_more, next_cursor, and tweets.
Each tweet must include tweet_id, author_username, text, created_at, like_count, reply_count, and retweet_count.
Recipe 2: daily search to Google Sheets
- Schedule the scenario daily.
- HTTP module calls
POST /twitter/advanced_search/page. - Iterator walks tweet rows.
- Google Sheets Append Row writes
tweet_id, author, text,created_at, and URL.
Recipe 3: follower export to CRM
- HTTP module calls
POST /v3/twitter/users/followers. - Iterator processes follower rows.
- CRM upserts by
user_id. - Data store saves
next_cursorfor the next scenario run.
Router branches
| Branch | Condition | Action |
|---|---|---|
| Empty results | tweets length is 0 |
Stop quietly. |
| High engagement | like_count above threshold |
Send Slack alert. |
| Continue page | has_more is true |
Store next_cursor. |
| Error | status is 401, 403, or 429 |
Route to an ops notification. |
Testing checklist
- Run once with a small page size, such as 5 tweets.
- Confirm the Iterator receives one bundle per tweet.
- Confirm
tweet_idis used for dedupe before writing rows. - Confirm the data store contains the latest
next_cursor. - Sanitize API keys in scenario logs.