---
title: "Assign a hosted tenant role to a user"
method: POST
path: "/tenant/users/roles/assign"
---

# Assign a hosted tenant role to a user

`POST /tenant/users/roles/assign`

## Request

- Base URL: `https://api.gravityads.dev` (the document declares no server; this is the origin it was published from)
- URL: `https://api.gravityads.dev/tenant/users/roles/assign`
- Auth: HTTP bearer

## Request body

- object
  - `user_id` string, required
  - `role_id` string, required

## Response `200`

Role assignment result

- object
  - `status` 'user_role_assigned' | 'user_role_revoked' | 'user_role_revoke_not_found' | 'user_role_mutation_unconfigured' | 'user_role_mutation_failed' | 'user_role_mutation_degraded', required
  - `source` string
  - `tenant_id` string, required
  - `user_count` integer, required
  - `users` object[], required
    - `id` string
    - `tenant_id` string
    - `email_hash_prefix` string
    - `oidc_sub` string
    - `feishu_open_id` string
    - `display_name` string
    - `status` string
    - `created_at` string
    - `roles` string[]
  - `role_count` integer, required
  - `roles` object[], required
    - `id` string
    - `name` string
    - `description` string
  - `database_url_configured` boolean
  - `hosted_auth_context` object
  - `raw_secrets_returned` false, required
  - `user_id` string
  - `role_id` string
  - `revoked_count` integer

---

[API](https://skmtc.dev/gravityads/apis/gravityads-api.md) · [All operations](https://skmtc.dev/gravityads/apis/gravityads-api/llms.txt) · [OpenAPI document](https://skmtc.dev/gravityads/apis/gravityads-api/revisions/124cd07d534d?raw)
