Update a kit

Rename a kit or replace its branding.

PATCH /organizations/{org}/kits/{kitId}

The body is the mask. branding is replaced whole when you send it, so send every one of its fields. Every page and email wearing the kit picks up the change.

Authorization

Org owner. Anyone else gets 403 forbidden.

Path parameters

NameTypeDescription
orgstringThe organization: its id (org_…) or its slug. It has to be an org your token can manage (see Who can call it)
kitIdstringThe kit, kit_…

Body

FieldTypeRequiredDescription
namestringno1–120 characters, trimmed
brandingobjectnoAll nine fields required, as below
branding.favicon, branding.logo, branding.og_imagestringwith brandinghttps URLs
branding.og_image_width, branding.og_image_heightintegerwith brandingPositive integers
branding.primary_color_light, branding.primary_color_darkstringwith branding#rrggbb
branding.tagline, branding.descriptionstringwith brandingUp to 2000 characters

At least one of name and branding is required.

Response

200 OK with the updated kit.

{
  "id": "kit_65f1c2a9e4b0d3f7a1c8e906",
  "name": "Acme brand",
  "branding": {
    "favicon": "https://ui-avatars.com/api/?name=Acme&size=32",
    "logo": "https://ui-avatars.com/api/?name=Acme&size=128",
    "og_image": "https://placehold.co/1200x630",
    "og_image_width": 1200,
    "og_image_height": 630,
    "primary_color_light": "#4f46e5",
    "primary_color_dark": "#818cf8",
    "tagline": "",
    "description": ""
  }
}

Errors

StatuserrorWhen
400invalid_requestAn empty body, an unknown field, or a value that fails validation. The detail names it
403forbiddenYou are not an owner of the org
404not_foundNo such kit in this org, or the id is not a kit_ id
404not_foundThe org does not exist, or your token cannot manage it

Example

curl -X PATCH https://loginwith.loginwith.dev/organizations/acme/kits/kit_65f1c2a9e4b0d3f7a1c8e906 \
  -H "Authorization: Bearer $TOKEN" -H "content-type: application/json" \
  -d '{"name": "Acme brand (2026)"}'