{"id":221,"library":"messagebird","title":"MessageBird (now Bird)","description":"MessageBird rebranded as Bird in February 2024. The old messagebird PyPI package (last version 2.2.0, released 2022) is no longer maintained and targets the legacy API. The new Python SDK is bird-python on PyPI, targeting the Bird API at docs.bird.com. LLMs almost universally generate the old package name.","status":"deprecated","version":"2.2.0","language":"python","source_language":"en","source_url":"https://github.com/GearPlug/bird_python","tags":["sms","whatsapp","messaging","communications","bird","cpaas"],"install":[{"cmd":"pip install messagebird","lang":"bash","label":"DEPRECATED — legacy package, unmaintained since 2022"},{"cmd":"pip install bird-python","lang":"bash","label":"Current — new Bird SDK (post-rebrand)"}],"dependencies":[{"reason":"Required by both packages.","package":"requests","optional":false}],"imports":[{"note":"The import name messagebird is used in BOTH the old and new SDKs. The difference is which PyPI package you install: messagebird (old, dead) vs bird-python (new, active). The new Bird API has a completely different structure with workspaces and channels.","wrong":"# pip install messagebird pulls the unmaintained 2.2.0 package\n# targeting the old API — new Bird features (workspaces, channels, WhatsApp)\n# are not available","symbol":"messagebird.Client","correct":"# New Bird SDK (post-rebrand 2024):\nimport messagebird  # import name still messagebird inside bird-python\nclient = messagebird.Client('YOUR_ACCESS_KEY')\n\n# Legacy API (still works against old rest.messagebird.com):\nimport messagebird\nclient = messagebird.Client('YOUR_ACCESS_KEY')\nmsg = client.message_create('+31612345678', ['+14155551234'], 'Hello!')"}],"quickstart":{"code":"# Install: pip install bird-python\nimport messagebird  # import name unchanged in bird-python\n\nclient = messagebird.Client('YOUR_ACCESS_KEY')\n\ntry:\n    # New Bird API — workspace + channel based\n    client.workspaces = client.workspace_list()['results'][0]['id']\n    channel_id = client.channel_list()['results'][0]['id']\n\n    response = client.send_message(\n        channels_id=channel_id,\n        body={\n            'receiver': {\n                'contacts': [{'identifierValue': '+14155551234'}]\n            },\n            'body': {\n                'type': 'text',\n                'text': {'text': 'Hello from Bird!'}\n            }\n        }\n    )\nexcept messagebird.client.ErrorException as e:\n    for error in e.errors:\n        print(error.description)","lang":"python","description":"New Bird SDK pattern. Requires workspace and channel selection before sending."},"warnings":[{"fix":"pip uninstall messagebird && pip install bird-python. Update API documentation reference from developers.messagebird.com to docs.bird.com.","message":"MessageBird rebranded as Bird in February 2024. The messagebird PyPI package (2.2.0) is unmaintained and targets the legacy API. New features (workspaces, channels, WhatsApp via Bird API) are only available in the bird-python package.","severity":"breaking","affected_versions":"all"},{"fix":"Set workspace: client.workspaces = client.workspace_list()['results'][0]['id']. Get channel ID: client.channel_list(). Then send with the new body format.","message":"The new Bird API has a completely different message-sending model. Instead of client.message_create(src, dst, text), it uses workspace + channel selection followed by client.send_message(channels_id, body). All old code patterns break.","severity":"breaking","affected_versions":"bird-python (new API)"},{"fix":"Check which PyPI package is installed (pip show messagebird vs pip show bird-python). The new Bird API requires workspace/channel setup before sending.","message":"Both the old messagebird package and the new bird-python package use import messagebird as the import statement. This makes it impossible to tell from the import line alone which API version the code targets.","severity":"gotcha","affected_versions":"all"},{"fix":"Generate new API keys at manage.bird.com. Old keys from manage.messagebird.com may be valid during transition but should be rotated.","message":"Access keys from the old MessageBird dashboard may not work with the new Bird API. The Bird platform uses a new authentication system via manage.bird.com.","severity":"gotcha","affected_versions":"bird-python"}],"env_vars":null,"search_vec":"'2.2.0':18 '2022':20 '2024':10 'almost':47 'api':29,43 'bird':3,7,36,42,58 'bird-python':35 'communic':57 'cpaa':59 'docs.bird.com':45 'februari':9 'generat':49 'last':16 'legaci':28 'llms':46 'longer':23 'maintain':24 'messag':56 'messagebird':1,4,13 'name':53 'new':31 'old':12,51 'packag':15,52 'pypi':14,39 'python':32,37 'rebrand':5 'releas':19 'sdk':33 'sms':54 'target':26,40 'univers':48 'version':17 'whatsapp':55","created_at":"2026-03-27T04:38:29.549797+00:00","updated_at":"2026-04-17T14:44:35.284191+00:00","problems":{"verify_error":"no import statement found"},"ecosystem":"pypi","meta_description":null,"install_score":80,"quickstart_score":0,"quickstart_tag":"stale","pypi_latest":"2.2.0","cli_name":"","cli_version":null,"type":"library","homepage":"https://bird.com","github":"https://github.com/messagebird/python-rest-api","docs":null,"changelog":null,"pypi":"https://pypi.org/project/messagebird/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["communication"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-28","last_verified":"2026-08-27","next_check":"2026-07-05","install_tag":"verified"}}