Skip to main content

POST /api/v1/internal/projects/:projectUuid/apps/:appUuid/users

Invites a user to an app by email. The invited user receives the app's invitation email and completes activation by setting a password.

Account email input is case-insensitive. The invited user's email is stored and returned in lowercase.

Source route file: src/api/routes/internal/private/bearer/projects/apps/users/post.ts

Request Method

POST

Base URL

https://api.userdocks.local:5000

Endpoint

/api/v1/internal/projects/:projectUuid/apps/:appUuid/users

Path Variables

VariableTypeRequiredDescription
projectUuidstringtrueProject UUID that owns the app.
appUuidstringtrueApp UUID to invite the user into.

Query Parameters

VariableTypeRequiredDescription
languagestringfalseEmail template language. Defaults to en.

HTTP Headers

VariableTypeRequiredDescription
AuthorizationstringtrueBearer token in the form Bearer <jwt>.
Content-TypestringtrueUse application/json.

Request Body

Schema reference: inviteAppUserSchema

{
"email": "user@example.com"
}

Successful Response

Success status code(s): 201.

{
"kind": "appUsers",
"totalItems": 1,
"itemsLength": 1,
"items": [
{
"uuid": "user_11111111-1111-1111-1111-111111111111",
"email": "user@example.com",
"emailVerified": false,
"isDisabled": false,
"appUuid": "app_11111111-1111-1111-1111-111111111111",
"tenantsAsAdmin": [
{
"tenant": {
"uuid": "tenant_11111111-1111-1111-1111-111111111111",
"name": "generated-tenant-name",
"isDisabled": false
}
}
],
"tenantsAsUser": []
}
]
}

Error Responses

HTTP StatusExample Error
401{"errors":[{"validation":"unauthorized","code":"[E0024]","message":"Unauthorized"}]}
403{"errors":[{"validation":"forbidden","code":"[E0002]","message":"Forbidden: App is disabled. Contact support."}]}
400{"errors":[{"validation":"bad request","code":"[E0044]","message":"Bad Request: User is already verified."}]}
500{"errors":[{"validation":"error","code":"[E0000]","message":"Internal Server Error"}]}

Example

const query = new URLSearchParams({
language: 'en',
});
const url = `https://api.userdocks.local:5000/api/v1/internal/projects/projectUuid-value/apps/appUuid-value/users?${query.toString()}`;

const response = await fetch(url, {
method: 'POST',
headers: {
Authorization: 'Bearer <jwt>',
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: 'user@example.com',
}),
});
const data = await response.json();
console.log(response.status, data);