Skip to content
API reference/Client logins

Change what a client login may do

Try it

Replaces a client login's permissions (at least one). It applies the next time they open the editor.

PATCH/api/v1/sites/{site_id}/logins/{login_id}

Authentication

An API key as Authorization: Bearer or x-api-key. It needs the clients:write scope — add and edit clients; invite and remove client logins.

clients:writeChanges the draft or a recordIdempotency-Key optionalMCP tool: update_client_login

Parameters

Named placeholders go in the path; the rest in a JSON body.

site_idstringPath · required
The site's id.1 to 100 characters
login_idstringPath · required
The login's id.1 to 100 characters
permissionsarray of stringBody · required
What they may do: content.edit (Edit words and pictures), media.upload (Upload pictures), pages.manage (Add and arrange pages), design.edit (Change the design), blog.manage (Write blog posts), events.manage (Keep the events calendar), collections.manage (Keep the site's lists up to date), forms.view (Read form messages), seo.edit (Search settings), site.publish (Publish changes), store.manage (Run the online store), invoices.pay (See and pay invoices), donations.view (See donations), members.manage (Look after site members).

Response

200 with JSON on success (schema on the right). Errors use the standard envelope; a retry with the same Idempotency-Key gets the first answer back (how retries work).

curl
curl -X PATCH 'https://websites.workflowcorp.com/api/v1/sites/SITE_ID/logins/LOGIN_ID' \
  -H "Authorization: Bearer $WEBSITEBUDDY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"permissions":["content.edit","blog.manage"]}'
Example arguments
{
  "site_id": "SITE_ID",
  "login_id": "LOGIN_ID",
  "permissions": [
    "content.edit",
    "blog.manage"
  ]
}
Response schema
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "permissions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "client_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "created_at": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "email",
    "name",
    "permissions",
    "client_id",
    "created_at"
  ],
  "additionalProperties": false
}