# Twitter Trends Scraper United States (`karamelo/twitter-trends-scraper-united-states`) Actor

Scrape Twitter trends from United States locations including the 50 states and other notable locations. This actor scrapes  in addition the worldwide and united states country trends for 8 periods of time. The US states and other US locations have the Live trends only available.

- **URL**: https://apify.com/karamelo/twitter-trends-scraper-united-states.md
- **Developed by:** [karamelo](https://apify.com/karamelo) (community)
- **Categories:** News, Automation, Social media
- **Stats:** 74 total users, 4 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.10 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Twitter Trends United states Scraper

### Scrape trending tweets and hashtags on Twitter from any US states locations 🌍.

This actor scrapes the top US states locations Live trends about trending topics, tweets, hashtags on Twitter from any of the states locations listed below. It utilizes proxies to ensure reliable scraping and to avoid rate limits imposed by the endpoint. The actor outputs the trends for each country as an array of JSON objects, including the time of scraping, trend name, the time it was trending, and its volume of tweets. This data can be useful for:

- **Market research 📊:** Analyze trending topics to understand consumer interests and preferences in different regions.
- **Social media monitoring 📢:** Track trending topics to identify emerging news and conversations.
- **Content creation ✍️:** Use trending topics as inspiration for content creation relevant to specific audiences.
- **Competitive analysis 📈:** Monitor competitor activity and industry trends.

### Supported Countries:

The actor outputs a JSON array containing the Live trends for the following locations in United States:\
Time periods are:\
\*\* Live \*\*

for:

- New York
- Los Angeles
- Chicago
- Albuquerque
- Atlanta
- Austin
- Baltimore
- Baton Rouge
- Birmingham
- Boston
- Charlotte
- Cincinnati
- Cleveland
- Colorado Springs
- Columbus
- Dallas-Ft. Worth
- Denver
- Detroit
- El Paso
- Fresno
- Greensboro
- Harrisburg
- Honolulu
- Houston
- Indianapolis
- Jackson
- Jacksonville
- Kansas City
- Las Vegas
- Long Beach
- Louisville
- Memphis
- Mesa
- Miami
- Milwaukee
- Minneapolis
- Nashville
- New Haven
- New Orleans
- Norfolk
- Oklahoma City
- Omaha
- Orlando
- Philadelphia
- Phoenix
- Pittsburgh
- Portland
- Providence
- Raleigh
- Richmond
- Sacramento
- St. Louis
- Salt Lake City
- San Antonio
- San Diego
- San Francisco
- San Jose
- Seattle
- Tallahassee
- Tampa
- Tucson
- Virginia Beach
- Washington\*

The United States country level and Worldwide selection outputs a JSON array containing objects, where each object represents a trending topic at a specific point in time. Here's an example:

Time periods are:
\*\* Live \*\*\
\*\* 1 hour ago \*\*\
\*\* 3 hours ago \*\*\
\*\* 6 hours ago \*\*\
\*\* 12 hour ago \*\*\
\*\* 24 hours ago \*\*\
\*\* 2 days ago \*\*\
\*\* 3 days ago \*\*

**Important update:** X (formerly Twitter) has recently removed the tweet/post count display from trends. This change started around January 13, 2026, and users have reported it widely across forums and social media.

**Reason for Change:**\
X implemented this as part of a UI simplification effort to promote more natural engagement, reducing focus on raw numbers that could be manipulated by bots or paid promotions. It's not a bug but a deliberate update, similar to past tweaks in how trends and metrics appear.

### Output Example for New York Trends Live:

```json
[
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "No Labels",
"volume": "43,244Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Jack Smith",
"volume": "142,670Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "#SkylosFairLaunch",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "#TrumpIndictment",
"volume": "18,473Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "#ProtectMyFreedomToVote",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Subway",
"volume": "28,523Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Orwell",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "McCarthy",
"volume": "40,872Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Freedom to Vote Act",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Denji",
"volume": "18,133Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "North Korea",
"volume": "34,628Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Llama 2",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Marge",
"volume": "10,694Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Taco Tuesday",
"volume": "16,120Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "#tuesdayvibe",
"volume": "24,763Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "DO SOMETHING",
"volume": "153,596Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "The DOJ",
"volume": "86,746Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "$MSFT",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Hugh Freeze",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Burrow",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Browns",
"volume": "22,633Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Bayern",
"volume": "87,080Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "iphone wifi",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Odor",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Mark Meadows",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Rita Wilson",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Herzog",
"volume": "13,205Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "RIP Harvey",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "#EN_WORLDTOUR_FATE",
"volume": "10,201Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Garland",
"volume": "40,972Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Sorc",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Grand Jury",
"volume": "78,756Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Fournier",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Tupac Shakur",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "John Edwards",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Thibs",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Zach Arnett",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Kudus",
"volume": "16,058Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Newark",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Beto",
"volume": "16,516Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "LOCK HIM UP",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Lock Her Up",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Nerlens Noel",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Target Letter",
"volume": "82,180Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Lamar Jackson",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Fujimoto",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Jake Paul",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Mar-a-Lago",
"volume": "27,383Tweets"
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Josh Allen",
"volume": ""
},
{
"time": "2024-11-11T11:37:33.195Z",
"timePeriod": "Live",
"trend": "Jordan Love",
"volume": ""
}
]
```

**Understanding the `timePeriod` Field**

The `timePeriod` field is crucial for understanding the context of each trend. It indicates when the specific trend was observed, relative to the time the actor was run. Here's a breakdown of possible values:

- **"Live"**: This means the trend is currently trending in real-time.
- **"X hour(s) ago"**: (for US country and worldwide level) This indicates the trend was trending X hours before the actor's execution.
- **"X day(s) ago"**: (for US country and worldwide level) This indicates the trend was trending X days before the actor's execution.

By analyzing the `timePeriod` along with the trend itself, you can gain valuable insights into how trends evolve over time. For example, you can identify trends that are quickly gaining popularity ("Live") versus trends that have been sustained for a longer period ("X days ago").

**Notes**

- Twitter may occasionally change its website structure or API, which could impact the actor's functionality. If you encounter any issues, please report them on the issues tab.
- The actor relies on proxies to avoid being blocked and stay anonymous. However, there's always a small chance to be detected and block the proxies. If this happens, you might need to adjust your proxy settings to Residential, they are fast and much less blocked.

# Actor input Schema

## `usStates` (type: `string`):

Select location in United States or the whole US country

## `live` (type: `boolean`):

Add the live tweets trends to the final results.

## `hour1` (type: `boolean`):

Add the tweets trends to the final results, defaut is false.

## `hour3` (type: `boolean`):

Add the tweets trends to the final results, defaut is false.

## `hour6` (type: `boolean`):

Add the tweets trends to the final results, defaut is false.

## `hour12` (type: `boolean`):

Add the tweets trends to the final results, defaut is false.

## `hour24` (type: `boolean`):

Add the tweets trends to the final results, defaut is false.

## `day2` (type: `boolean`):

Add the tweets trends to the final results, defaut is false.

## `day3` (type: `boolean`):

Add the tweets trends to the final results, defaut is false.

## `proxyOptions` (type: `object`):

Select proxies to be used.

## Actor input object example

```json
{
  "usStates": "3",
  "live": true,
  "hour1": false,
  "hour3": false,
  "hour6": false,
  "hour12": false,
  "hour24": false,
  "day2": false,
  "day3": false,
  "proxyOptions": {
    "useApifyProxy": true
  }
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "proxyOptions": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("karamelo/twitter-trends-scraper-united-states").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "proxyOptions": { "useApifyProxy": True } }

# Run the Actor and wait for it to finish
run = client.actor("karamelo/twitter-trends-scraper-united-states").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "proxyOptions": {
    "useApifyProxy": true
  }
}' |
apify call karamelo/twitter-trends-scraper-united-states --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,karamelo/twitter-trends-scraper-united-states"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/cfOBUovsotfVLJjZd/builds/5g2gylygh8QArdWrG/openapi.json
