---
title: "Invite a user to a company"
method: POST
path: "/api/v1/company-user"
tags: ["Company User"]
---

# Invite a user to a company

`POST /api/v1/company-user`

Invite a user to a company

## Request body

- CreateCompanyUserDTO
  - `username` string, required — Username of the user being invited.
  - `email` string, required — Email address of the user being invited.
  - `expiresAt` string, date-time, nullable — Expiration date and time of the invitation.
  - `teamId` string, uuid, nullable — ID of the team to which the user will be assigned
  - `rolePresetSlug` string, required — ID of the role preset to assign.
  - `companyId` string, uuid, required — ID of the company to which the user is being invited.
  - `accessList` CompanyUserAccessDTO
    - `trackersRead` boolean, nullable — Permission to read trackers.
    - `trackersWrite` boolean, nullable — Permission to write trackers.
    - `trackersDelete` boolean, nullable — Permission to delete trackers.
    - `trackersShowOwnOnly` boolean, nullable — Permission to show only own trackers.
    - `balancesRead` boolean, nullable — Permission to read balances.
    - `balancesWrite` boolean, nullable — Permission to write balances.
    - `balancesDelete` boolean, nullable — Permission to delete balances.
    - `landingsRead` boolean, nullable — Permission to read landings.
    - `landingsWrite` boolean, nullable — Permission to write landings.
    - `landingsDelete` boolean, nullable — Permission to delete landings.
    - `landingsShowOwnOnly` boolean, nullable — Permission to show only own landings.
    - `pwaRead` boolean, nullable — Permission to read PWAs.
    - `pwaWrite` boolean, nullable — Permission to write PWAs.
    - `pwaDelete` boolean, nullable — Permission to delete PWAs.
    - `pwaShowOwnOnly` boolean, nullable — Permission to show only own PWAs.
    - `pushRead` boolean, nullable — Permission to read push.
    - `pushWrite` boolean, nullable — Permission to write push
    - `pushDelete` boolean, nullable — Permission to delete push
    - `pushShowOwnOnly` boolean, nullable — Permission to show only own push
    - `pixelsRead` boolean, nullable — Permission to read pixels.
    - `pixelsWrite` boolean, nullable — Permission to write pixels.
    - `pixelsDelete` boolean, nullable — Permission to delete pixels.
    - `pixelsShowOwnOnly` boolean, nullable — Permission to show only own pixels.
    - `offersRead` boolean, nullable — Permission to read offers.
    - `offersWrite` boolean, nullable — Permission to write offers.
    - `offersDelete` boolean, nullable — Permission to delete offers.
    - `offersShowOwnOnly` boolean, nullable — Permission to show only own offers.
    - `appEventsRead` boolean, nullable — Permission to read app events.
    - `appEventsShowOwnOnly` boolean, nullable — Permission to show only own app events.
    - `teamsRead` boolean, nullable — Permission to read teams.
    - `teamsWrite` boolean, nullable — Permission to write teams.
    - `teamsDelete` boolean, nullable — Permission to delete teams.
    - `membersRead` boolean, nullable — Permission to read members.
    - `membersWrite` boolean, nullable — Permission to write members.
    - `membersDelete` boolean, nullable — Permission to delete members.

## Response `201`

Successful Response

- InvitationLinkDTO
  - `hash` string, required — URL that the invitee can use to redeem the invitation.

## Other responses

- `401` — Authentication required.
- `403` — Access denied.
- `404` — The requested resource was not found.
- `409` — Email already registered for another user.
- `422` — Validation error. Please check your input.

---

[API](https://skmtc.dev/pwapps/apis/curie-api.md) · [All operations](https://skmtc.dev/pwapps/apis/curie-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/pwapps/curie-api/revisions/060ef67e573a/schema)
