Skip to content

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.

Zapier Twitter integration timeline, 2023 to 2026 2023 the app shuts down 2026 a return that didn't last Aug 18 No new Twitter Zaps Aug 31 Twitter Zaps stop working Sep 30 View-only access ends 2024 to 2025: no app Feb 16 Help page: "X is back on Zapier" May 29 Same page rewritten as the removal notice Nov 2 No X app in Zapier's directory Today a Zap reads X data by polling an API from Webhooks, API by Zapier or Code.
The Zapier Twitter app ended in 2023. The 2026 return lasted one help page, and Zaps reach X data through an API 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.

  1. Get a key. Sign up for Sorsa API and copy the key from the dashboard. No X account or developer app is involved.

  2. 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"
    }
    
  3. 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 to api.sorsa.io. As the test URL, https://api.sorsa.io/v3/key-usage-info works well: it returns your balance and costs no requests.

  4. 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/mentions and Body to the JSON from step 2.

  5. Tell Zapier where the posts are. Enter .tweets as the Response filter and .id as 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.

    API by Zapier settings for a Sorsa API new-post trigger Connection API by Zapier, set up once Authentication type Static Headers (API key) Headers ApiKey: YOUR_API_KEY Domain filter api.sorsa.io The key stays in the connection and never shows in the Zap. Trigger: New Item from API Sorsa API Method POST URL https://api.sorsa.io/v3/mentions Body {"query": "northwind_analytics_hq", "order": "latest"} Response filter .tweets Dedupe Key .id Runs the Zap once per new post, on every poll.
    Five fields turn a Sorsa API endpoint into a new-post trigger. The key stays in the connection, out of the Zap.
  6. Test and map. The test loads the three newest posts. Map full_text, created_at, the author's username and id into Slack, Gmail or a sheet; a post's link is x.com/ followed by the username, /status/ and the ID.

  7. 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 rebuildingSorsa API requestBody or queryResponse filter, Dedupe Key
New mention of an accountPOST /mentions{"query": "your_handle", "order": "latest"}.tweets, .id
New post from a userPOST /user-tweets{"username": "their_handle"}.tweets, .id
New post matching a searchPOST /search-tweets{"query": "your brand", "order": "latest"}.tweets, .id
New post in an X ListGET /list-tweetslist_id in the query string.tweets, .id
New followerGET /followersusername in the query string.users, .id
Find user (search step)GET /infousername in the query stringone 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_id in the query string
    Response filter, Dedupe Key
    .tweets, .id
  • New follower

    Sorsa API request
    GET /followers
    Body or query
    username in the query string
    Response filter, Dedupe Key
    .users, .id
  • Find user (search step)

    Sorsa API request
    GET /info
    Body or query
    username in 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.

What should trigger the Zap?
Zapier step

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, Key tweets, and a header named ApiKey with your key. Zapier dedupes on the id field 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-tweets for 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.

Code by Zapier (JavaScript 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.

Polling interval

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.

Posts read

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 seeCauseFix
403 "missing key in request header"the header name is wrong or emptyname it exactly ApiKey
401 "invalid api key"a typo or a rolled keypaste the key again from the dashboard
403 after weeks of workthe month's requests ran outupgrade, or switch on extra requests
The test works, live runs never firenothing new since the Zap went onwait one interval after a new post
Every poll fires the same posts againthe Dedupe Key isn't .idset 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.

By the Sorsa API team. We build and run Sorsa API, the read-only Twitter/X API and scraper, in production since 2022 (formerly TweetScout API) with 6B+ requests served. About Sorsa API

What changed
  • Rewritten from scratch: the Zapier X app's status checked today with dates, a rebuild for each old trigger, API by Zapier, Webhooks and Code setups, and the polling cost.
  • First published.