30+
International Air & Sea Carriers Integrated
5
Scraping Methods (JSON, Gateway, Playwright, Selenium, CAPTCHA Bypass)
AI
Audio CAPTCHA Solved Automatically via AssemblyAI
The Problem

Every Freight Carrier Has Its Own Portal — Manual Tracking Across 30+ Is Unmanageable

Freight forwarding companies need to track shipments across dozens of airlines and shipping lines — each with a completely different tracking interface. Some carriers have clean JSON APIs. Others render tracking data with JavaScript after several redirects. Others are behind Cloudflare with reCAPTCHA or audio CAPTCHA challenges. A few use internal SOAP/XML formats. There was no single system that could query all of them and return standardised tracking data without human intervention.
Our Solution

A Five-Method Scraping Engine Covering Every Carrier Protection Level

We built the freight tracker as a Flask REST API with a dedicated scraper module per carrier, each using the right tool for that carrier's specific protection level. Simple carriers are handled with direct aiohttp/requests JSON calls with browser-spoofing headers. The freight.aero gateway handles 15+ airlines via a single POST with the IATA carrier code — with 2captcha integration for reCAPTCHA-protected variants. Playwright with headless Firefox and Webshare rotating proxies handles JS-rendered pages (FedEx, Saudia Cargo), extracting multi-stage tracking event tables after waiting for Angular/React app rendering. For CMA CGM — which combines JS rendering and audio CAPTCHA — we built a full automated bypass: Playwright detects the CAPTCHA iframe, clicks the audio challenge button, captures the MP3 audio URL, submits it to AssemblyAI's transcription API, polls for completion, extracts the digit string from the transcript, and types each digit into the CAPTCHA input. The entire flow completes without human involvement. HMM sea freight required iframe navigation and extraction of six distinct data tables in a single session. Swiss World Cargo required Selenium Wire for proxy-level traffic interception to capture session tokens before making bid requests.
Architecture
Flask microservice API (threaded, port 5000). API key authentication. Playwright (headless Firefox) with Webshare rotating proxy pool. Selenium Wire + Undetected ChromeDriver for Cloudflare-protected carriers. aiohttp async HTTP scraping. BeautifulSoup + lxml XPath parsing. 2captcha API for reCAPTCHA v2/v3 solving. AssemblyAI audio CAPTCHA transcription bypass. scraping.narf.ai JS rendering proxy for Hapag-Lloyd. CrawlBase fallback scraper. Fake user agent rotation.
The Result

30+ Carriers, One API Call — Fully Automated Including Audio CAPTCHA Resolution

The Global Freight Tracking API gave the client a single integration point for all 30+ carrier tracking systems — replacing a manual process of logging into individual carrier portals with a single authenticated API call per shipment. Every carrier returns the same standardised JSON structure: carrier name, AWB prefix, shipment summary, and a timestamped tracking event array. The audio CAPTCHA bypass via AssemblyAI eliminated the last manual bottleneck — CMA CGM's combined JS-rendering and audio CAPTCHA challenge, which previously required human intervention, is now solved fully automatically in every request. The freight.aero gateway expanded single-carrier coverage into 15+ airlines with one integration. The standardised response format means the client's freight management system displays tracking events from any carrier in the same UI component. Adding new carriers requires only a new scraper module — no API contract changes, no client-side updates. Freight forwarders get a real-time, unified view of every shipment across every carrier from a single integration.
Want scalable architecture and measurable results like this?
Book an Architecture Audit
Build Something Like This
// free scoping call · senior engineers · no commitment

Project scope, timelines, and architecture options in one 45-minute session.

Start a Project
More Work

Related Projects

The Marble Group: Natural Stone Inventory Intelligence Platform for UK Stone Buyers
Django Docker PostgreSQL
The Marble Group: Natural Stone Inventory Intelligence Platform for UK Stone Buyers
One dashboard for 10 UK stone suppliers — automated price reconciliation, real-time stock alerts, instant PDF/Excel export. Replace 15+ hours of manual supplier research every week.
View Details
Django Node.js PostgreSQL
Farming Product Monitor: Real-Time Agricultural Price & Stock Intelligence for Pakistani Markets
Get instant Discord alerts on price and stock changes across Kissanghar.pk and Syngenta Pakistan. Full change history, stealth scraping, and full-catalogue auto-discovery built in.
View Details
SlateDesk: Film & TV Talent Submission Management — From Public Pitch Link to Structured Deal Pipeline
Django Material UI PostgreSQL
SlateDesk: Film & TV Talent Submission Management — From Public Pitch Link to Structured Deal Pipeline
Structured film and TV submission management for executives and reps. Public submission URLs, internal pipeline, meeting scheduling, contact management, and Stripe subscription tiers.
View Details