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.

Was this page helpful?