Zapier Twitter integration in 2026
No: Zapier has had no working Twitter (X) app since August 31, 2023, and its directory lists none today, so a Zap reads X data only by calling an API from a Webhooks, API by Zapier or Code step.
Short answer: Zapier's Twitter app stopped on August 31, 2023. A help page announced its return in February 2026; since May 29, 2026 it reads as the removal notice again, and Zaps poll an API every 1 to 15 minutes. For that API, use Sorsa API: one ApiKey header, from $0.07 per 1,000 tweets, and 100 free requests.
- Endpoint
POST /mentions- Page size
- about 20 per request
- Price
- from $0.07 per 1,000
#Does Zapier still have a Twitter integration?
Zapier has no Twitter or X app as of November 2, 2026. The address of the old app page, zapier.com/apps/twitter, redirects to a short FAQ that says the integration "has stopped working (effective August 31, 2023)", and Zapier's app directory lists no Twitter or X app.
The 2023 shutdown came in three steps, all in Zapier's removal notice (opens in a new tab): no new Twitter Zaps from August 18, existing Zaps stopped on August 31, and view-only access ended on September 30. Twitter had just moved its API to paid tiers.
2026 added a twist that still confuses search results and AI answers. On February 16, 2026 Zapier published a help article under the address "X (Twitter) integration is back on Zapier". On May 29, 2026 the same article was rewritten into the 2023 removal notice, and the old address now redirects to it. Some guides and assistants still describe a relaunched X app that needs your own X developer app. Zapier's directory has no such app today.
What works instead depends on the job. Posting goes through social media tools that keep their own X connection, which is what Zapier's FAQ suggests. Reading X data (new posts, mentions, an account's timeline, followers) goes through an X data API that a Zap calls on a schedule. The rest of this guide covers reading.
#Read X data in a Zap with Sorsa API
Sorsa API, a Twitter (X) API and scraper for public data, gives a Zap the trigger the old app had: Zapier asks it for new posts every few minutes and runs the Zap once for each post it hasn't seen. The setup uses API by Zapier, Zapier's newer app for calling any API, because it keeps your key in a connection instead of in the Zap's fields. API by Zapier is in beta and needs a paid Zapier plan.
-
Get a key. Sign up for Sorsa API and copy the key from the dashboard. No X account or developer app is involved.
-
Test the request outside Zapier. One call shows the response your Zap will see. Replace the handle with yours.
Terminal curl -X POST "https://api.sorsa.io/v3/mentions" \ -H "ApiKey: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"query": "northwind_analytics_hq", "order": "latest"}'Response200 OK { "tweets": [ { "id": "1985321047765123072", "full_text": "@northwind_analytics_hq love the new export", "created_at": "2026-11-02T09:14:07Z", "lang": "en", "likes_count": 12, "reply_count": 2, "retweet_count": 1, "view_count": 1840, "is_reply": false, "user": { "id": "1622870015463309312", "username": "harbor_lane_studio", "display_name": "Harbor Lane Studio", "followers_count": 4210, "verified": false } } ], "next_cursor": "DAACCgACG6uP2K4AJxAK" } -
Add the connection. In Zapier, open Apps, click Add connection and pick API by Zapier. Choose Static Headers (API key), enter one header line
ApiKey: YOUR_API_KEY, and set the domain filter toapi.sorsa.io. As the test URL,https://api.sorsa.io/v3/key-usage-infoworks well: it returns your balance and costs no requests. -
Create the trigger. Start a Zap, pick API by Zapier and the New Item from API event. Set Method to POST, URL to
https://api.sorsa.io/v3/mentionsand Body to the JSON from step 2. -
Tell Zapier where the posts are. Enter
.tweetsas the Response filter and.idas the Dedupe Key. Each post carries a unique string ID, so the Zap runs once per new post and never for a post it has seen.Five fields turn a Sorsa API endpoint into a new-post trigger. The key stays in the connection, out of the Zap. -
Test and map. The test loads the three newest posts. Map
full_text,created_at, the author'susernameandidinto Slack, Gmail or a sheet; a post's link is x.com/ followed by the username, /status/ and the ID. -
Turn the Zap on. From now on the Zap checks for new posts on your plan's polling interval. It never fires for posts written before you turned it on.
The same five fields serve every read job. Only the URL and the body change, as the next section shows.
#Old Zapier Twitter triggers and how to rebuild them
Every read trigger the old Zapier Twitter app had can be rebuilt as a New Item from API trigger on a Sorsa API endpoint. The actions that wrote to X (create post, like, repost, follow) can't: Sorsa API is read-only by design, so your X account is never at risk, and posting stays with the official X API.
| Trigger you're rebuilding | Sorsa API request | Body or query | Response filter, Dedupe Key |
|---|---|---|---|
| New mention of an account | POST /mentions | {"query": "your_handle", "order": "latest"} | .tweets, .id |
| New post from a user | POST /user-tweets | {"username": "their_handle"} | .tweets, .id |
| New post matching a search | POST /search-tweets | {"query": "your brand", "order": "latest"} | .tweets, .id |
| New post in an X List | GET /list-tweets | list_id in the query string | .tweets, .id |
| New follower | GET /followers | username in the query string | .users, .id |
| Find user (search step) | GET /info | username in the query string | one profile, as an action |
| Find post (search step) | POST /tweet-info | {"tweet_link": "post URL or ID"} | one post, as an action |
New mention of an account
- Sorsa API request
POST /mentions- Body or query
{"query": "your_handle", "order": "latest"}- Response filter, Dedupe Key
.tweets,.id
New post from a user
- Sorsa API request
POST /user-tweets- Body or query
{"username": "their_handle"}- Response filter, Dedupe Key
.tweets,.id
New post matching a search
- Sorsa API request
POST /search-tweets- Body or query
{"query": "your brand", "order": "latest"}- Response filter, Dedupe Key
.tweets,.id
New post in an X List
- Sorsa API request
GET /list-tweets- Body or query
list_idin the query string- Response filter, Dedupe Key
.tweets,.id
New follower
- Sorsa API request
GET /followers- Body or query
usernamein the query string- Response filter, Dedupe Key
.users,.id
Find user (search step)
- Sorsa API request
GET /info- Body or query
usernamein the query string- Response filter, Dedupe Key
- one profile, as an action
Find post (search step)
- Sorsa API request
POST /tweet-info- Body or query
{"tweet_link": "post URL or ID"}- Response filter, Dedupe Key
- one post, as an action
Search queries take X's own operators, so one trigger can watch several things at once: from:account_one OR from:account_two, "product name" -filter:retweets, or #hashtag min_faves:20. The Twitter search operators guide lists them. To watch dozens of accounts, put them in an X List and poll GET /list-tweets (opens in a new tab): one request covers a List of up to 5,000 accounts.
The reference pages show every field: POST /mentions (opens in a new tab), POST /user-tweets (opens in a new tab), POST /search-tweets (opens in a new tab), GET /followers (opens in a new tab) and GET /info (opens in a new tab). POST /tweet-info takes a post link or a bare ID.
API by Zapier, trigger New Item from API
- Connection
Static Headers (API key): ApiKey: YOUR_API_KEY, domain filter api.sorsa.io- Method
POST- URL
https://api.sorsa.io/v3/mentions- Body
{"query": "northwind_analytics_hq", "order": "latest"}- Response filter
.tweets- Dedupe Key
.id
One Sorsa API request per poll, up to about 20 posts each. Copy each value into the field of the same name.
Pick the job and the Zapier step you want to use; the builder shows the exact fields to fill in.
#Webhooks by Zapier: Retrieve Poll, GET and POST
Webhooks by Zapier reads Sorsa API too, with one limit: its polling trigger, Retrieve Poll, sends only GET requests. That makes it a good fit for the two GET feeds, an X List and a follower list, and a poor fit for searches and mentions, which are POST.
- Retrieve Poll on an X List. URL
https://api.sorsa.io/v3/list-tweets?list_id=YOUR_LIST_ID, Keytweets, and a header namedApiKeywith your key. Zapier dedupes on theidfield by itself. - GET or POST as an action. After a Schedule by Zapier trigger (every hour, day or week), a POST action can call
/search-tweetsfor a daily digest. A GET action after any trigger can enrich a contact with/info: followers, bio and location from a username.
Zapier's own guide notes that Webhooks keeps headers in plaintext step fields that anyone with access to the Zap can read. For a shared workspace, the API by Zapier connection is the safer home for the key.
#Code by Zapier: a JavaScript trigger
Code by Zapier runs JavaScript or Python as a trigger, which is the one route that also works on Zapier's Free plan. The code calls Sorsa API with fetch and returns the posts as a list; Zapier dedupes the list on id, as with any polling trigger.
const res = await fetch("https://api.sorsa.io/v3/mentions", {
method: "POST",
headers: {
"ApiKey": "YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({ query: "northwind_analytics_hq", order: "latest" })
});
if (!res.ok) throw new Error("Sorsa API " + res.status);
const data = await res.json();
output = (data.tweets || []).map(t => ({
id: t.id,
text: t.full_text,
created_at: t.created_at,
author: t.user.username,
url: "https://x.com/" + t.user.username + "/status/" + t.id
}));
Two Zapier limits apply. Code steps can't store secrets, so the key sits in the code where anyone with access to the Zap sees it. And the Free plan gives a code step one second to run, which is tight for a live call; Professional allows 30 seconds. A 403 answer means the ApiKey header is missing or the requests ran out; a 429 means more than 20 requests in one second, which a single Zap never reaches.
#How often a Zap checks X, and what it costs
A Zap that reads X data checks on a timer: every 15 minutes on Zapier's Free plan, every 2 minutes on Professional and every minute on Team and Enterprise, and paid plans can set a longer interval per Zap. No instant trigger exists for X data in Zapier, from Sorsa API or anyone else, so a new post shows up within one interval.
The polls cost nothing in Zapier: Zapier charges a task only when an action runs, once per new post. On the API side, each poll is one Sorsa API request whether it finds new posts or none. That makes the interval the main cost lever: a Zap polling every 2 minutes makes 21.6K requests a month, and one polling every 15 minutes makes 2,880.
Sorsa API requests a month
2,880
96 a day, one per poll
Sorsa API plan that covers it
Starter
10K requests a month
A 15-minute interval works on every Zapier plan, Free included. Polls use no Zapier tasks; each action on a new post is one task.
Requests per month for your Zaps, and the Sorsa API plan whose monthly requests cover them.
Measured per post, reading through Sorsa API costs from $0.07 per 1,000 tweets, since each request returns about 20. The official X API charges $0.005 per post read (opens in a new tab), which is $5.00 per 1,000, and needs a developer app with OAuth before the first call.
Official X API
$500
for 100K posts
$0.005 per post
Sorsa API
from$7
for 100K posts
from $0.07 per 1,000
71x cheaper
Two habits keep the request count low. Combine related searches into one query with OR, so one Zap does the work of five. And set the polling interval to what the job needs: a daily report doesn't need a 2-minute Zap, while support alerts often do.
Good to know
A Zap with a polling trigger never fires for posts that existed before you turned it on, and its test shows only the three newest posts. To load older posts into a sheet once, use a one-off export, then let the Zap add new posts from that moment on.
#When the Zap doesn't trigger
Most silent Zaps come down to one of five causes, and the Zap history shows which one.
| What you see | Cause | Fix |
|---|---|---|
| 403 "missing key in request header" | the header name is wrong or empty | name it exactly ApiKey |
| 401 "invalid api key" | a typo or a rolled key | paste the key again from the dashboard |
| 403 after weeks of work | the month's requests ran out | upgrade, or switch on extra requests |
| The test works, live runs never fire | nothing new since the Zap went on | wait one interval after a new post |
| Every poll fires the same posts again | the Dedupe Key isn't .id | set the Dedupe Key to .id |
403 "missing key in request header"
- Cause
- the header name is wrong or empty
- Fix
- name it exactly
ApiKey
401 "invalid api key"
- Cause
- a typo or a rolled key
- Fix
- paste the key again from the dashboard
403 after weeks of work
- Cause
- the month's requests ran out
- Fix
- upgrade, or switch on extra requests
The test works, live runs never fire
- Cause
- nothing new since the Zap went on
- Fix
- wait one interval after a new post
Every poll fires the same posts again
- Cause
- the Dedupe Key isn't
.id - Fix
- set the Dedupe Key to
.id
Failed requests are never charged by Sorsa API, so a misconfigured Zap costs nothing while you fix it.
#Build your first X Zap
Zapier has had no Twitter app since 2023, and a Zap now reads X data by polling an API. Sorsa API does that job with one header in an API by Zapier connection, about 20 tweets per request and from $0.07 per 1,000 tweets, with 20 requests per second on every plan. Start with one mentions Zap to Slack, and add a search or an X List once it runs.
The same approach works in other automation tools: see Twitter API in n8n and Twitter API in Make. To pull X data into a spreadsheet without Zapier, read how to export Twitter data to Google Sheets. For alerts within a minute or less, real-time Twitter monitoring shows the polling loops a script can run.
#FAQ
Does Zapier have an instant trigger for new tweets?
No. Zapier has no X app, so no instant trigger for new posts or mentions exists. A Zap reads X data with a polling trigger that checks every 15 minutes on the Free plan, every 2 minutes on Professional and every minute on Team. API by Zapier's New Item from API trigger with a Dedupe Key of .id then fires once per new post.
Which Twitter API should I use with Zapier?
Use Sorsa API for reading X data in Zapier. It needs one ApiKey header in an API by Zapier connection, with no X developer app or OAuth, and returns about 20 posts per request from $0.07 per 1,000 tweets. Every post carries an id for Zapier's dedupe, and every plan allows 20 requests per second. The official X API charges $0.005 per post read.
Can Zapier still post to X?
Not through a Zapier X app, because there is none. Posting needs the official X API, called from API by Zapier with OAuth2 and your own X developer app, at $0.015 per post created. Sorsa API is read-only, so pair the two: Sorsa API reads mentions and searches, and the official X API posts the reply.
Does this work on Zapier's Free plan?
Partly. Webhooks by Zapier and API by Zapier are premium apps, so they need a paid plan from $19.99 a month. The Free plan can run a Code by Zapier trigger with two-step Zaps and 15-minute polling, but gives a code step one second to finish, which a live API call can miss.
What do 100 free requests cover in Zapier?
The 100 free requests from Sorsa API cover about 2,000 tweets through search, or about one day of a Zap polling every 15 minutes, which makes 96 requests a day. That is enough to build and test a Zap end to end. The free requests never expire and need no card.
#How we checked
On November 2, 2026 we read Zapier's help center through its public API, including the creation and edit dates of the removal notice, Zapier's app directory and pricing page, and Zapier's guides to API by Zapier, Retrieve Poll, Code steps and polling. We compared X's prices on docs.x.com and checked every request, field and page size against the live Sorsa API reference. The response above is written from that reference with demo accounts, not copied from a live call.
Sources
- App update: Twitter integration removal (opens in a new tab), Zapier Help Center
- Twitter integration FAQ (opens in a new tab), Zapier
- Trigger API requests in Zap workflows (opens in a new tab), Zapier Help Center
- Trigger Zap workflows from polling webhooks (opens in a new tab), Zapier Help Center
- Ways to make API requests in Zapier (opens in a new tab), Zapier Help Center
- Using Code by Zapier (opens in a new tab), Zapier Help Center
- How Zap triggers work (opens in a new tab), Zapier Help Center
- Zapier plans and pricing (opens in a new tab)
- X API pricing (opens in a new tab), X Developer Platform
- Sorsa API reference