Users

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 or if an inline role assignment names a tenant other than the one its resource instance already exists in. 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

Request

  • Base URL
    https://api.permit.io (the document declares no server; this is the origin it was published from)
  • Auth
    HTTP bearer

Path parameters

proj_idstring required

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").

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"
    }
  ]
}

Changes

    • info

      added the non-success response with the status

    • info

      added the non-success response with the status