Use the MainWP Postman collection as the source of truth for request and response schemas.
{id_or_domain} accepts either a numeric site ID or a site domain.
Route Matrix
| Method | Path | Purpose | Key Params |
|---|---|---|---|
| GET | /users | List users across selected sites | clients, groups, websites, search, roles |
| POST | /users/create | Create user(s) on selected sites | username, email, optional password, role, first_name, last_name, user_url, send_password, plus site filters |
| PUT, PATCH | /users/{id_or_domain}/{user_id}/edit | Edit a user on one site | id_or_domain, user_id, editable profile fields |
| DELETE | /users/{id_or_domain}/{user_id}/delete | Delete a user on one site | id_or_domain, user_id |
| PUT, PATCH | /users/update-admin-password | Update administrator password across selected sites | password, plus clients/groups/websites filters |
| POST | /users/import | Import users from CSV | csv_file (multipart upload), optional has_header |
CSV Import Format
/users/import expects a CSV with 10 columns per row:
usernameemailfirst_namelast_nameuser_urlpasswordsend_password(true/false)role(administrator,subscriber,editor,author,contributor)select_sites(semicolon-separated site URLs)select_groups(semicolon-separated group names)
has_header=true (default), the first line is skipped.