HF PanelDocsv1.0.0

API: team members and reseller addresses

List, invite, change, suspend and remove an account's team members, and read a reseller's own addresses through the token API.

These endpoints run the Team screen of the Control Panel and the Your panel address card of My brand. They use the same checks and messages, and every change is written to the activity log.

bash
A=https://api.yourdomain.com:2087/v1
H="Authorization: Bearer hf_xxx"

Who may call them

Token Team endpoints Reseller addresses
Customer their own account —
Reseller their customers' accounts themselves
Administrator every account every reseller
Scoped to a team role, or a team member's own token never —

Changes need a Read & change token.

List the team

bash
curl -s -H "$H" $A/accounts/sarahbakes/team

The answer has members (each with id, name, email, role, role_label, screens, status, two_factor, last_login_at, created_at), the plan's limit (-1 = no limit) and how many are used. GET /accounts/{username}/team/{id} reads one member.

Invite someone

bash
curl -s -H "$H" -H "Content-Type: application/json" -X POST $A/accounts/sarahbakes/team \
  -d '{"name":"Tom","email":"tom@example.com","role":"files"}'
Field What it is
email required; one team login per email address on the panel
role required: full, sites, webdns, files, email, databases, billing, readonly or custom
screens for custom: the screens (routes), for example ["dns","email"]
name optional, up to 80 characters

They get the invitation email with a link to choose their password (48 hours). The plan's limit and the 20 invitations an hour apply. Answers 201 with the member.

Change, suspend or remove

bash
curl -s -H "$H" -H "Content-Type: application/json" -X PATCH $A/accounts/sarahbakes/team/5 -d '{"role":"email"}'
curl -s -H "$H" -H "Content-Type: application/json" -X PATCH $A/accounts/sarahbakes/team/5 -d '{"status":"suspended"}'
curl -s -H "$H" -X DELETE $A/accounts/sarahbakes/team/5

status is suspended (signed out at once) or active (let in again). Removing a member also removes their passkeys and their own API tokens.

Team members' own tokens

A team member can make API tokens for their own login on My login. Such a token can use only what the member's role allows at the time of each call — /accounts/{username}/email/… for an email role, the DNS and domains for Websites & DNS, and so on — and answers 401 as soon as the member is suspended or removed. What it changes is logged with the member's name.

A reseller's own addresses

bash
curl -s -H "$H" $A/resellers/brightweb/domain
curl -s -H "$H" -X POST $A/resellers/brightweb/domain/check

The answer has panel_host, website_url, webmail_host, files_host, sender_name, allowed (both privileges given), brand_on, in_use (the panel address in use, or empty), checked_at and checks — per name its kind, dns, addresses, cname, ssl, ssl_expires and error. POST …/domain/check checks the names live first.

Hook events

team.member_invited, team.member_changed, team.member_removed, reseller.domain_changed and reseller.domain_verified — see Event hooks.