v4

latestOpenAPI 3.1.02026-08-02261331761.5 KB
Users

Create User

Creates a new user inside the Permit.io system, from that point forward you may run permission checks on that user.

Returns 201 if the user is created, 409 if the user already exists. User is identified by its key, and you can only create one user with the same key inside a Permit environment.

post/v2/facts/{proj_id}/{env_id}/users

Path parameters

proj_idstring required

Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").

Either the unique id of the project, or the URL-friendly key of the project (i.e: the "slug").

env_idstring required

Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").

Either the unique id of the environment, or the URL-friendly key of the environment (i.e: the "slug").

Request body

keystring required

A unique id by which Permit will identify the user for permission checks.

emailstring email

The email of the user. If synced, will be unique inside the environment.

first_namestring

First name of the user.

last_namestring

Last name of the user.

attributesobject

Arbitrary user attributes that will be used to enforce attribute-based access control policies.

Example request

{
  "key": "user|892179821739812389327",
  "email": "jane@coolcompany.com",
  "first_name": "Jane",
  "last_name": "Doe",
  "attributes": {
    "department": "marketing",
    "age": 30,
    "subscription": {
      "tier": "pro",
      "expired": false
    }
  },
  "role_assignments": [
    {
      "role": "admin",
      "tenant": "stripe-inc"
    },
    {
      "role": "viewer",
      "tenant": "othercompany.com"
    }
  ]
}

Response

Successful Response

keystring required

A unique id by which Permit will identify the user for permission checks.

idstring uuid required

Unique id of the user

organization_idstring uuid required

Unique id of the organization that the user belongs to.

project_idstring uuid required

Unique id of the project that the user belongs to.

environment_idstring uuid required

Unique id of the environment that the user belongs to.

created_atstring date-time required

Date and time when the user was created (ISO_8601 format).

updated_atstring date-time required

Date and time when the user was last updated/modified (ISO_8601 format).

emailstring email

The email of the user. If synced, will be unique inside the environment.

first_namestring

First name of the user.

last_namestring

Last name of the user.

attributesobject

Arbitrary user attributes that will be used to enforce attribute-based access control policies.

Example response

{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "organization_id": "7c60d51f-b44e-4682-87d6-449835ea4de6",
  "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",
  "environment_id": "40ef0e48-a11f-4963-a229-e396c9f7e7c4",
  "key": "user|892179821739812389327",
  "email": "jane@coolcompany.com",
  "created_at": "2019-08-24T14:15:22Z",
  "updated_at": "2019-08-24T14:15:22Z",
  "first_name": "Jane",
  "last_name": "Doe",
  "attributes": {
    "department": "marketing",
    "age": 30,
    "subscription": {
      "tier": "pro",
      "expired": false
    }
  },
  "associated_tenants": [
    {
      "tenant": "stripe-inc",
      "roles": [
        "admin"
      ],
      "status": "active"
    },
    {
      "tenant": "othercompany.com",
      "roles": [
        "viewer"
      ],
      "status": "pending"
    }
  ],
  "roles": [
    {
      "role": "admin",
      "tenant": "stripe-inc"
    },
    {
      "role": "viewer",
      "tenant": "othercompany.com"
    }
  ]
}