Waze Traffic Scraper avatar
Waze Traffic Scraper

Pricing

Pay per event

Go to Apify Store
Waze Traffic Scraper

Waze Traffic Scraper

Extract real-time traffic data from Waze including accidents, hazards, police reports, road closures, and live traffic congestion. Perfect for logistics routing, fleet optimization, and traffic analysis.

Pricing

Pay per event

Rating

5.0

(2)

Developer

Phantom Coder

Phantom Coder

Maintained by Community

Actor stats

2

Bookmarked

3

Total users

0

Monthly active users

5 days ago

Last modified

Share

Extract real-time traffic data from Waze including accidents, hazards, police reports, road closures, and live traffic congestion. Perfect for logistics routing, fleet optimization, and traffic analysis.

📦 What you get

  • Traffic alerts: Accidents, hazards, road closures, police traps, construction zones
  • Traffic jams: Real-time congestion with speed, severity, and delay information
  • User activity: Waze user locations (anonymized by default for privacy)
  • Configurable area: Search any location with custom radius

⚠️ Important: Understanding empty results

Getting 0 alerts or 0 jams is completely normal! This simply means there's no traffic data in that location at that specific moment. The Actor is working correctly.

How to verify the Actor is working:

  • ✅ If you see any users in the results, the Actor is working perfectly
  • ⚠️ If you get 0 alerts, 0 jams, AND 0 users, this might indicate an issue, though in very remote areas or during off-peak hours, this could occasionally be legitimate

Many locations have quiet periods with no incidents. Try a busy city center during rush hour for more data, or schedule runs every few minutes to capture data as it appears.


⚙️ Input

Configure what data to collect and where:

FieldTypeRequiredDescription
latitudenumberYesCenter point latitude (e.g., 40.7128 for NYC)
longitudenumberYesCenter point longitude (e.g., -74.0060 for NYC)
radiusKmnumberNoSearch radius in kilometers (default: 10, max: 100)
includeAlertsbooleanNoInclude traffic alerts (default: true)
includeTrafficJamsbooleanNoInclude traffic jams (default: true)
anonymizeUsernamesbooleanNoRemove usernames for privacy (default: true, recommended)

Example input:

{
"latitude": 34.0522,
"longitude": -118.2437,
"radiusKm": 15,
"includeAlerts": true,
"includeTrafficJams": true,
"anonymizeUsernames": true
}

📊 Output

The scraper returns structured data with human-readable fields:

Alert structure

{
"id": "alert-123456/abc-def-ghi",
"uuid": "abc-def-ghi-jkl-mno",
"type": "ACCIDENT",
"subtype": "ACCIDENT_MAJOR",
"description": "Multi-vehicle accident",
"location": {
"x": -118.2437,
"y": 34.0522
},
"reportedAt": "2026-01-26T15:30:00.000Z",
"reportedAtMillis": 1737907800000,
"reliability": 10,
"confidence": 8,
"source": "Waze User",
"reportedBy": "User",
"thumbsUp": 15,
"commentCount": 3,
"comments": [...]
}

Traffic jam structure

{
"uuid": "jam-xyz-123-abc",
"street": "I-405 North",
"city": "Los Angeles",
"country": "US",
"level": 4,
"severity": "Severe",
"type": "Large",
"speedKmh": 8.5,
"speedMph": 5,
"lengthMeters": 1200,
"lengthMiles": "0.75",
"delaySeconds": 420,
"delayMinutes": 7,
"reportedAt": "2026-01-26T15:35:00.000Z",
"reportedAtMillis": 1737908100000,
"route": [
{ "x": -118.243, "y": 34.052 },
{ "x": -118.244, "y": 34.053 }
]
}

📖 Understanding the data

Alert types

  • ACCIDENT: Traffic accidents (MINOR, MAJOR)
  • HAZARD: Road hazards (ON_ROAD, ON_SHOULDER, CONSTRUCTION, WEATHER)
  • POLICE: Police presence or speed traps (user-reported)
  • ROAD_CLOSED: Road closures
  • WEATHERHAZARD: Weather-related hazards

Traffic jam severity levels

  • Level 1: Light traffic - minimal slowdown
  • Level 2: Moderate traffic - noticeable delay
  • Level 3: Heavy traffic - significant slowdown
  • Level 4: Severe traffic - very slow movement
  • Level 5: Standstill - traffic at a complete stop

Reliability scores

  • Reliability (0-10): Overall trustworthiness based on reporter history and confirmations
  • Confidence (0-10): Waze's internal confidence based on number of reports and validations
  • Thumbs up: Number of users who confirmed the alert is still accurate

Timestamps

All timestamps are provided in two formats:

  • reportedAt: Human-readable ISO 8601 format (e.g., "2026-01-26T15:30:00.000Z")
  • reportedAtMillis: Unix timestamp in milliseconds for calculations

To convert millis to a date:

const date = new Date(1737907800000);
console.log(date.toISOString()); // "2026-01-26T15:30:00.000Z"

⚠️ Important limitations

199 alert cap: Waze returns a maximum of 199 alerts per query, regardless of area size. In busy cities, this means you'll only see a fraction of all alerts.

Single snapshot: Each run captures one moment in time. Alerts appear and disappear within minutes.

Better coverage: For comprehensive monitoring, schedule the scraper to run every 3-5 minutes. This can capture 50-70% of alerts in busy areas instead of just 10-20%.

Radius optimization: Larger areas don't always give more data due to the 199 cap. In dense cities, use a smaller radius (3-5 km) to focus on your area of interest, or run multiple locations.

💼 Common use cases

  • Logistics routing: Optimize delivery routes with real-time traffic conditions
  • Fleet management: Monitor traffic patterns across multiple locations
  • Urban planning: Analyze traffic patterns and incident frequency
  • Traffic monitoring: Track incidents in real-time for specific areas
  • Research: Study traffic trends and congestion patterns over time
  • Alert systems: Build notifications for specific types of incidents

⏰ Scheduling for better coverage

To capture more data, schedule regular runs:

Every 5 minutes (Apify cron: */5 * * * *)

  • Cost: ~$2-3/month for one location
  • Coverage: 50-70% of alerts

Every 10 minutes (Apify cron: */10 * * * *)

  • Cost: ~$1-2/month for one location
  • Coverage: 30-50% of alerts

Every 30 minutes (Apify cron: */30 * * * *)

  • Cost: ~$0.50/month for one location
  • Coverage: 15-25% of alerts

💡 Cost savings tip: Higher Apify subscription tiers (Bronze, Silver, Gold) offer volume discounts on pay-per-event charges. With a Gold plan, you can save up to 70% compared to the base price.

💡 Tips for best results

  1. Start with a medium radius (10 km) and adjust based on results
  2. Keep anonymizeUsernames enabled for privacy protection (enabled by default)
  3. Monitor alert counts - if you consistently get exactly 199 alerts, try a smaller radius
  4. Multiple locations - for city-wide coverage, run multiple smaller areas instead of one large area
  5. Frequent runs - schedule every 3-5 minutes for better coverage in busy areas

🔒 Privacy and ethical use

This scraper collects publicly visible data. User data is anonymized by default to protect privacy.

Recommendations:

  • Keep anonymizeUsernames enabled (default)
  • Don't use this data to track, stalk, or harass individuals
  • Comply with local privacy laws (GDPR, CCPA, etc.)
  • Use data for legitimate purposes like research, traffic analysis, or public safety

What we do:

  • Only access publicly available data
  • Anonymize user information by default
  • Provide privacy controls (anonymization options)
  • Warn users about privacy implications
  • Don't bypass any authentication or restrictions

💬 Support

Have questions or issues? Please create an issue in the Actor's Issues tab on Apify.