Create and manage segments with the Mailrify Python SDK.
from mailrify import Mailrify client = Mailrify("sk_your_secret_key")
segments.list
segments = client.segments.list() print(len(segments))
segments.create
segment = client.segments.create( name="Premium users", description="Users on paid plans", condition={ "logic": "AND", "groups": [ { "filters": [ {"field": "data.plan", "operator": "equals", "value": "premium"} ] } ], }, track_membership=True, ) print(segment.id, segment.member_count)
from mailrify import FilterCondition, FilterGroup, SegmentFilter condition = FilterCondition( logic="AND", groups=[ FilterGroup( filters=[SegmentFilter(field="subscribed", operator="equals", value=True)] ) ], ) segment = client.segments.create( name="Subscribed users", condition=condition, ) print(segment.id)
segments.get
existing = client.segments.get(segment.id) print(existing.name)
segments.update
updated = client.segments.update( segment.id, name="VIP users", condition={ "logic": "AND", "groups": [ { "filters": [ {"field": "subscribed", "operator": "equals", "value": True} ] } ], }, ) print(updated.name)
segments.list_contacts
members = client.segments.list_contacts(segment.id, page=1, page_size=20) print(members.total, members.page, len(members.data))
segments.delete
client.segments.delete(segment.id)
from mailrify import AsyncMailrify async def run() -> None: async with AsyncMailrify("sk_your_secret_key") as client: segments = await client.segments.list() created = await client.segments.create( name="SDK segment", condition={"logic": "AND", "groups": [{"filters": []}]}, ) fetched = await client.segments.get(created.id) await client.segments.update(fetched.id, name="SDK segment updated") members = await client.segments.list_contacts(fetched.id, page=1, page_size=20) await client.segments.delete(fetched.id) print(len(segments), members.total)