Access the Systeme.io API with managed OAuth authentication. Manage contacts, tags, courses, communities, and subscriptions.
Reference
List Contacts
GET /systeme/api/contactsQuery Parameters:
limit- Number of items per page (10-100, optional)startingAfter- ID of last received item for pagination (optional)order- Sort order:ascordesc(default:desc, optional)
Get Contact
GET /systeme/api/contacts/{id}Create Contact
POST /systeme/api/contacts
Content-Type: application/json
{
"email": "john@example.com",
"firstName": "John",
"lastName": "Doe",
"phoneNumber": "+1234567890",
"locale": "en",
"fields": [
{
"slug": "custom_field_slug",
"value": "custom value"
}
]
}Update Contact
PATCH /systeme/api/contacts/{id}
Content-Type: application/merge-patch+json
{
"firstName": "Jane",
"lastName": "Smith"
}Delete Contact
DELETE /systeme/api/contacts/{id}List Tags
GET /systeme/api/tagsGet Tag
GET /systeme/api/tags/{id}Create Tag
POST /systeme/api/tags
Content-Type: application/json
{
"name": "VIP Customer"
}Update Tag
PUT /systeme/api/tags/{id}
Content-Type: application/json
{
"name": "Premium Customer"
}Delete Tag
DELETE /systeme/api/tags/{id}Assign Tag to Contact
POST /systeme/api/contacts/{id}/tags
Content-Type: application/json
{
"tagId": 12345
}Remove Tag from Contact
DELETE /systeme/api/contacts/{id}/tags/{tagId}List Contact Fields
GET /systeme/api/contact_fieldsCreate Contact Field
POST /systeme/api/contact_fields
Content-Type: application/json
{
"name": "Company Name",
"slug": "company_name"
}Update Contact Field
PATCH /systeme/api/contact_fields/{slug}
Content-Type: application/merge-patch+json
{
"name": "Organization Name"
}Delete Contact Field
DELETE /systeme/api/contact_fields/{slug}List Courses
GET /systeme/api/school/coursesList Enrollments
GET /systeme/api/school/enrollmentsCreate Enrollment
POST /systeme/api/school/courses/{courseId}/enrollments
Content-Type: application/json
{
"contactId": 12345,
"accessType": "full_access"
}Required Fields:
contactId- The ID of the contact to enrollaccessType- Access type:full_access,partial_access, ordripping_content
Note: If accessType is partial_access, you must also provide a modules array with module IDs.
Delete Enrollment
DELETE /systeme/api/school/enrollments/{id}List Communities
GET /systeme/api/community/communitiesList Memberships
GET /systeme/api/community/membershipsCreate Membership
POST /systeme/api/community/communities/{communityId}/memberships
Content-Type: application/json
{
"contactId": 12345
}Delete Membership
DELETE /systeme/api/community/memberships/{id}List Subscriptions
GET /systeme/api/payment/subscriptionsCancel Subscription
POST /systeme/api/payment/subscriptions/{id}/cancel