Documentation Index
Fetch the complete documentation index at: https://docs.mailglyph.com/llms.txt
Use this file to discover all available pages before exploring further.
Use a secret key client for segments methods.
from mailglyph import MailGlyph
client = MailGlyph("sk_your_secret_key")
List segments (segments.list)
segments = client.segments.list()
print(len(segments))
Create a segment (segments.create)
Create with a condition dictionary
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)
Create with typed filter models
from mailglyph 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)
Get one segment (segments.get)
existing = client.segments.get(segment.id)
print(existing.name)
Update a segment (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)
members = client.segments.list_contacts(segment.id, page=1, page_size=20)
print(members.total, members.page, len(members.data))
Delete a segment (segments.delete)
client.segments.delete(segment.id)
Async equivalents
from mailglyph import AsyncMailGlyph
async def run() -> None:
async with AsyncMailGlyph("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)
See full details in the Segments API reference.