Maton

Systeme.io

Access the Systeme.io API with managed OAuth authentication. Manage contacts, tags, courses, communities, and subscriptions.

Reference

List Contacts

GET /systeme/api/contacts

Query Parameters:

  • limit - Number of items per page (10-100, optional)
  • startingAfter - ID of last received item for pagination (optional)
  • order - Sort order: asc or desc (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/tags

Get 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_fields

Create 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/courses

List Enrollments

GET /systeme/api/school/enrollments

Create 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 enroll
  • accessType - Access type: full_access, partial_access, or dripping_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/communities

List Memberships

GET /systeme/api/community/memberships

Create 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/subscriptions

Cancel Subscription

POST /systeme/api/payment/subscriptions/{id}/cancel

Resources

On this page