This is a regression in 1.7.0: the SDK replaced urljoin with f-string URL building for a routing speedup, and urljoin had quietly replaced a trailing /v3 segment — the f-strings just duplicate it. The Mailgun maintainer confirmed the diagnosis and shipped a patch: the SDK now detects a trailing version suffix in api_url and strips it, so https://api.eu.mailgun.net/v3 keeps working without changes. Fix: upgrade to the latest 1.7.x release, or remove the /v3 suffix from api_url. Source: https://github.com/mailgun/mailgun-python/issues/40
Source: https://github.com/mailgun/mailgun-python/issues/40