{"id":24554,"library":"salesforce-fuelsdk","title":"Salesforce Marketing Cloud Fuel SDK for Python","description":"The Salesforce Marketing Cloud Fuel SDK for Python (v1.3.0) provides a wrapper for the Salesforce Marketing Cloud SOAP and REST APIs, enabling email, audience, and data extension management. It supports OAuth2 authentication (including Public App, Web App, and refresh tokens). The SDK is in maintenance mode with infrequent releases.","status":"active","version":"1.3.0","language":"python","source_language":"en","source_url":"https://github.com/salesforce-marketingcloud/FuelSDK-Python","tags":["salesforce","marketing cloud","email","fuel sdk","soap","rest"],"install":[{"cmd":"pip install salesforce-fuelsdk","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"HTTP library for REST API calls","package":"requests","optional":false},{"reason":"SOAP client library","package":"suds-jurko","optional":false},{"reason":"Cryptographic operations for auth","package":"pycryptodome","optional":false}],"imports":[{"note":"FuelSDKClient is in the client submodule, not top-level","wrong":"from fuelSDK import FuelSDKClient","symbol":"FuelSDKClient","correct":"from fuelSDK.client import FuelSDKClient"},{"note":"Legacy client still valid, but FuelSDKClient is recommended for v1.3.0","wrong":null,"symbol":"ET_Client","correct":"from fuelSDK import ET_Client"}],"quickstart":{"code":"from fuelSDK.client import FuelSDKClient\n\nclient = FuelSDKClient(\n    client_id=os.environ.get('SFMC_CLIENT_ID', ''),\n    client_secret=os.environ.get('SFMC_CLIENT_SECRET', ''),\n    auth_base_url=os.environ.get('SFMC_AUTH_URL', 'https://mc.exacttarget.com'),\n    soap_endpoint=os.environ.get('SFMC_SOAP_URL', '')\n)\n\n# Retrieve all data extensions\nresponse = client.soap_client.retrieve('DataExtension', ['Name', 'CustomerKey'])\nprint(response)","lang":"python","description":"Initialize the SDK client using environment variables for credentials, then retrieve a list of data extensions."},"warnings":[{"fix":"Use FuelSDKClient with client_id, client_secret, auth_base_url, and soap_endpoint.","message":"In v1.3.0, OAuth2 authentication changed: you must now use the new FuelSDKClient class. The old ET_Client with legacy username/password auth is deprecated and may not work in future.","severity":"breaking","affected_versions":">=1.3.0"},{"fix":"Use `from fuelSDK.client import FuelSDKClient`.","message":"The import path for FuelSDKClient is `fuelSDK.client.FuelSDKClient`, not `fuelSDK.FuelSDKClient`. Many existing examples show the wrong import.","severity":"gotcha","affected_versions":">=1.3.0"},{"fix":"Create a new FuelSDKClient per thread or use threading locks around SOAP calls.","message":"The SDK uses suds-jurko for SOAP, which is not thread-safe. Avoid sharing a client instance across threads without proper locking.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install with `pip install salesforce-fuelsdk` and import as `import fuelSDK` or `from fuelSDK.client import FuelSDKClient`.","cause":"The package is installed as 'salesforce-fuelsdk', but the import uses the module name 'fuelSDK' (note capital letters).","error":"ModuleNotFoundError: No module named 'fuelSDK'"},{"fix":"Use `from fuelSDK.client import FuelSDKClient`.","cause":"Incorrect import path; FuelSDKClient is in the client submodule.","error":"AttributeError: module 'fuelSDK' has no attribute 'FuelSDKClient'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}