---
title: "Provision a new portal user"
method: POST
path: "/api/v1/admin/portal-users"
tags: ["Admin APIs", "portal-users"]
---

# Provision a new portal user

`POST /api/v1/admin/portal-users`

## Request body

- PortalUserCreate — Admin request to provision a new portal user. Okta provisioning happens server-side — callers supply a name and email; the backend creates the Okta user and stores the returned okta_user_id. At least one portal assignment is required.
  - `first_name` string, required
  - `last_name` string, required
  - `email` string, required
  - `notes` string, nullable
  - `portals` PortalUserPortalAssignment[], required
    - `portal_key` string, required
    - `meta_data` object

## Response `201`

Successful Response

- PortalUserCreateResponse — Response returned only on portal user creation. Includes the one-time activation URL. Not returned by list/get endpoints — the token must not be re-exposed after the initial create response.
  - `id` string, uuid, required
  - `okta_user_id` string, required
  - `first_name` string, required
  - `last_name` string, required
  - `email` string, required
  - `is_active` boolean, required
  - `notes` string, nullable, required
  - `portals` PortalUserPortalRead[]
    - `portal_id` string, uuid, required
    - `portal_key` string, required
    - `portal_name` string, required
    - `meta_data` object, required
  - `okta_status` string
  - `activation_url` string, nullable
  - `okta_user_already_existed` boolean

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/carbonarc/apis/carbon-arc-client-admin-api.md) · [All operations](https://skmtc.net/carbonarc/apis/carbon-arc-client-admin-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/carbonarc/carbon-arc-client-admin-api/revisions/a8ca30023371/schema)
