Members & Clients
Provision the people on your account from your own backend. All requests need
the X-Integration-Token header, see the overview for
authentication and base URL.
Roles in one line: members are your team (they manage feedback), and clients are external reviewers (they leave feedback on projects they are invited to). Details in Clients.
Members
List members
curl -H "X-Integration-Token: $TOKEN" \
"https://www.simplecommenter.com/api/external/members"
Returns { members: [...] } including the account owner. Add
?domainId=sc_xxx and each member also gets an assigned flag for that
project.
Add a member
curl -X POST -H "X-Integration-Token: $TOKEN" \
-H "Content-Type: application/json" \
-d '{"email": "dev@acme.com", "name": "Dev", "role": "team", "domainId": "sc_xxx"}' \
"https://www.simplecommenter.com/api/external/members"
role is "user" (workspace admin) or "team" (team lead). domainId is
optional: when present, the new member is assigned to that project right away.
New members log in via magic link, no password needed.
Assign or unassign a member on a project
curl -X PUT -H "X-Integration-Token: $TOKEN" \
-H "Content-Type: application/json" \
-d '{"memberId": "MEMBER_ID", "domainId": "sc_xxx", "assigned": true}' \
"https://www.simplecommenter.com/api/external/members"
Remove a member
curl -X DELETE -H "X-Integration-Token: $TOKEN" \
"https://www.simplecommenter.com/api/external/members?memberId=MEMBER_ID"
Clients
List clients on a project
curl -H "X-Integration-Token: $TOKEN" \
"https://www.simplecommenter.com/api/external/clients?domainId=sc_xxx"
Create or sync a client
curl -X POST -H "X-Integration-Token: $TOKEN" \
-H "Content-Type: application/json" \
-d '{"domainId": "sc_xxx", "email": "jane@customer.com", "name": "Jane", "autoApprove": true}' \
"https://www.simplecommenter.com/api/external/clients"
Idempotent: if the email already exists on the project, the existing client is returned (and the name updated if it changed).
Approve or revoke a client
curl -X PUT -H "X-Integration-Token: $TOKEN" \
-H "Content-Type: application/json" \
-d '{"domainId": "sc_xxx", "email": "jane@customer.com", "approved": true}' \
"https://www.simplecommenter.com/api/external/clients"
Remove a client
curl -X DELETE -H "X-Integration-Token: $TOKEN" \
"https://www.simplecommenter.com/api/external/clients?domainId=sc_xxx&email=jane@customer.com"
Client login tokens
Mint a widget login token for an approved client, valid 30 days. This is the primitive the WordPress plugin uses for auto-login; with the JS API you normally do not need it, since a verified identify mints the token for you.
curl -X POST -H "X-Integration-Token: $TOKEN" \
-H "Content-Type: application/json" \
-d '{"domainId": "sc_xxx", "email": "jane@customer.com"}' \
"https://www.simplecommenter.com/api/external/client-token"
Returns { token, email, name }. Store the token in the visitor's browser
under the simpleCommenterUserData localStorage key before the widget loads,
or pass it via the ?simple-commenter-token= URL parameter.
Prefer the JS API for browser login flows: it handles token
storage, expiry, and re-identification for you, and creates clients on
demand. Use /client-token only when you need full control over token
delivery.