Developer documentation

The REST API and MCP server let you read and manage company, member, lead, class, attendance, invoice, messaging, and automation data. They are free on every plan.

Get an API key

Owners and users with the required privileges can create keys at API Access. A key is shown once; choose scopes, set an optional expiry, and revoke it there. High-risk scopes are unchecked by default.

Authentication

Send the key in the Bearer authorization header.

curl -H "Authorization: Bearer us_YOUR_API_KEY" https://users.solutions/api/v1/account

Base URL: https://users.solutions/api/v1

Scopes

ScopeAccessRequired users.solutions privilegeEnabled by default
attendance:readRead attendancePrivilege 3Yes
attendance:writeRecord attendancePrivilege 5Yes
automations:readRead automationsPrivilege 35Yes
automations:writeEnable or disable automationsPrivilege 35Yes
classes:readRead classes, rooms, and teachersPrivilege 3Yes
classes:writeManage classesPrivilege 18Yes
company:readRead companyNoneYes
company:writeEdit companyPrivilege 1Yes
deleteDelete or deactivate recordsPrivilege 2 or 4No
fields:readRead member fieldsPrivilege 3Yes
fields:writeCreate and edit member fieldsPrivilege 2Yes
invoices:readRead invoicesPrivilege 15Yes
invoices:writeCreate and manage invoicesPrivilege 7Yes
leads:readRead leadsPrivilege 34Yes
leads:writeCreate and edit leadsPrivilege 34Yes
members:readRead membersPrivilege 3Yes
members:writeCreate and edit membersPrivilege 4Yes
messages:readRead message logsPrivilege 16Yes
messages:sendSend messagesPrivilege 16No
payments:writeMark invoices paidPrivilege 8No

Safety and limits

Pagination and errors

List endpoints use limit and cursor where documented. Responses include next_cursor when another page is available. Errors use an error object; validation details may also be returned in errors.

{
  "error": {
    "code": "validation_error",
    "message": "The request could not be processed."
  },
  "errors": { "name": "This field is required." }
}

REST endpoint reference

Generated from the current OpenAPI document at request time. See OpenAPI 3.1 JSON.

Attendance

MethodPathSummaryScope
GET/attendanceList attendance recordsattendance:read
POST/attendanceRecord attendance idempotentlyattendance:write

Automations

MethodPathSummaryScope
GET/automationsList company automations with step summariesautomations:read
GET/automations/{id}Get an automation and its latest 20 runsautomations:read
POST/automations/{id}/disableDisable an automationautomations:write
POST/automations/{id}/enableEnable an automationautomations:write

Classes

MethodPathSummaryScope
GET/classesList company classes with schedule and enrolled membersclasses:read
POST/classesCreate a classclasses:write
GET/classes/{id}Get a class with days, times, room, teacher, and enrolled membersclasses:read
PATCH/classes/{id}Update a classclasses:write
POST/classes/{id}/membersEnroll a member in a classclasses:write
DELETE/classes/{id}/members/{member_id}Preview or confirm class unenrollmentclasses:write

Company

MethodPathSummaryScope
GET/companyRead the key's companycompany:read
PATCH/companyUpdate editable company contact fieldscompany:write

Fields

MethodPathSummaryScope
GET/fieldsList member fieldsfields:read
POST/fieldsCreate a member fieldfields:write
DELETE/fields/{id}Deactivate a member field after confirmationfields:write + delete
PATCH/fields/{id}Update a member fieldfields:write

Invoices

MethodPathSummaryScope
GET/auto-invoicesList company automatic invoice rulesinvoices:read
GET/invoice-categoriesList active invoice categoriesinvoices:read
GET/invoicesList invoicesinvoices:read
POST/invoicesCreate an invoiceinvoices:write
DELETE/invoices/{id}Preview or confirm invoice deletioninvoices:write + delete
GET/invoices/{id}Get an invoice with its web and pay URLsinvoices:read
POST/invoices/{id}/mark-paidPreview or confirm a manual mark-paid updatepayments:write
POST/invoices/{id}/sendPreview or confirm an invoice remindermessages:send

Leads

MethodPathSummaryScope
GET/leadsList leadsleads:read
POST/leadsCreate a leadleads:write
GET/leads/{id}Get a lead and recent activityleads:read
PATCH/leads/{id}Update lead contact fields, stage, and tagsleads:write
POST/leads/{id}/notesAdd a lead noteleads:write

Members

MethodPathSummaryScope
GET/member-formGet standard and custom member fieldsmembers:read
GET/membersList membersmembers:read
POST/membersCreate a membermembers:write
DELETE/members/{id}Deactivate a member after confirmationmembers:write + delete
GET/members/{id}Get a member and custom field valuesmembers:read
PATCH/members/{id}Update a membermembers:write

Messages

MethodPathSummaryScope
GET/messagesRead SMS and email usage logsmessages:read
POST/messages/emailPreview or send email to members and leadsmessages:send
POST/messages/smsPreview or send SMS to members and leadsmessages:send

OpenAPI

MethodPathSummaryScope
GET/openapi.jsonGet this OpenAPI documentPublic

Rooms

MethodPathSummaryScope
GET/roomsList active company roomsclasses:read

Teachers

MethodPathSummaryScope
GET/teachersList company teachersmembers:read

MCP

MCP URL: https://users.solutions/mcp

Available tools: get_company, update_company, get_member_form, list_members, search_members, get_member, create_member, update_member, delete_member, list_fields, create_field, update_field, delete_field, list_leads, search_leads, get_lead, create_lead, update_lead, add_lead_note, list_classes, get_class, create_class, update_class, enroll_member, unenroll_member, list_rooms, list_teachers, list_attendance, mark_attendance, list_invoices, get_invoice, create_invoice, send_invoice, mark_invoice_paid, delete_invoice, list_invoice_categories, list_auto_invoices, send_email, send_sms, list_messages, list_automations, get_automation, enable_automation, disable_automation.

Cursor

{
   "mcpServers" : {
      "users-solutions" : {
         "headers" : {
            "Authorization" : "Bearer us_YOUR_API_KEY"
         },
         "url" : "https://users.solutions/mcp"
      }
   }
}

Claude Code

claude mcp add --transport http users-solutions https://users.solutions/mcp --header "Authorization: Bearer us_YOUR_API_KEY"

Syntax: Claude Code MCP documentation.

Claude Desktop

Using the mcp-remote stdio bridge:

{
   "mcpServers" : {
      "users-solutions" : {
         "args" : [
            "-y",
            "mcp-remote",
            "https://users.solutions/mcp",
            "--header",
            "Authorization: Bearer us_YOUR_API_KEY"
         ],
         "command" : "npx"
      }
   }
}

To connect from ChatGPT or claude.ai, add this MCP URL as a custom connector, then sign in to approve access. OAuth does not require an API key.

Powered by Omega Concepts · Developer docs