Python SDK: Compliance API
⚠️
Preview — this feature is being built; the design below is the spec.
Enterprise records access with a compliance-scoped Admin key: SynticAdmin(compliance=True) sets the compliance beta flag.
from syntic import SynticAdmin
admin = SynticAdmin() # reads SYNTIC_ADMIN_KEY| Method | Endpoint | Returns |
|---|---|---|
compliance.activities.list | GET /v1/compliance/activities | SyncPage[Activity] |
compliance.exports.create | POST /v1/compliance/exports | ComplianceExport |
compliance.exports.download | GET /v1/compliance/exports/{export_id}/content | None (writes the file) |
compliance.legal_holds.create | POST /v1/compliance/legal_holds | LegalHold |
Methods
compliance.activities.list
Iterate activity records. Maps to GET /v1/compliance/activities.
for item in admin.compliance.activities.list(
starting_at="2026-11-01T00:00:00Z",
product="chat,code",
):
print(item.id if hasattr(item, 'id') else item)compliance.exports.create
Start a bulk export. Maps to POST /v1/compliance/exports.
result = admin.compliance.exports.create(
kind="chats",
starting_at="2026-10-01T00:00:00Z",
ending_at="2026-11-01T00:00:00Z",
)compliance.exports.download
Stream an export to disk. Maps to GET /v1/compliance/exports/{export_id}/content.
result = admin.compliance.exports.download('cexp_01JCS5T7V9X1Z3B5D7F9', path="chats.jsonl")compliance.legal_holds.create
Preserve records for named people. Maps to POST /v1/compliance/legal_holds.
result = admin.compliance.legal_holds.create(
name="Matter 2026-117",
user_ids=["user_01J9Y0A2C4E6G8J0L2N4"],
)Conventions
Every method accepts extra_headers, extra_query, extra_body and timeout keyword arguments, and has an async twin on AsyncSyntic. List methods return pages that iterate across all pages automatically.
See the Python SDK overview for installation, errors and retries.
Was this page helpful?