---
title: "Create API Client Credentials"
slug: "create-api-client-credential"
updated: 2025-01-13T09:02:07Z
published: 2025-06-23T14:52:52Z
canonical: "docs.plainid.io/create-api-client-credential"
stale: true
---
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plainid.io/llms.txt
> Use this file to discover all available pages before exploring further.
# Create API Client Credentials
Post/env-mgmt/1.0/api-key/clients
This API enables users to create Client Credentials associated to a Tenant or Environment.
### Notice
Accessing the Policy Management APIs is through a dedicated domain/URL according to your PlainID Tenant Location:
`https://api.{REGION}.plainid.io`
**United States (US)** -
`https://api.us1.plainid.io`
**Canada (US)** -
`https://api.ca1.plainid.io`
**Europe (US)** -
`https://api.eu1.plainid.io`
Replace`{REGION}` with your PlainID Tenant region (e.g. us1, eu1, ca1, etc.).
### Important note about headers
Refer to the headers below to modify your cURL sample. Check if the following headers are in the sample, if not, ensure you add it to your cURL sample before pasting into your API tool.
#### Headers
*Required
| Header | Value | cURL Line |
| --- | --- | --- |
| Accept | `application/json` | `-H"Accept: application/json"` |
| Content-Type | `application/json` | `-H"Content-Type: application/json"` |
### cURL Sample Guidelines
In order for the relevant parameters to appear in the cURL sample, you can input the values in the interactive API console on the right. They will then appear in the cURL sample on the bottom of the page in the correct format.
### Using HTML Encoded Special Characters
Use HTML encoded patterns when working with values that contain special characters like spaces, dashes, etc. Refer to this [HTML URL Encoding Reference](https://www.w3schools.com/tags/ref_urlencode.ASP) for a full list.
SecurityHTTPType bearer
For more details about Administration API Authentication, check out the Authentication APIs documentation. Provide your bearer token in the Authorization header when making requests to protected resources. Example: `Authorization: Bearer 123`
Body parametersEnvironment Admin Sample
```json
{
"ownerId": "b0e1f961-2061-4f83-8392-b5aa19fed0c1",
"ownerType": "ENVIRONMENT",
"name": "Name21",
"description": "Name21 Description",
"tokenDuration": "PT1440M",
"permission": "ADMIN"
}
```
Environment Viewer Sample
```json
{
"ownerId": "b0e1f961-2061-4f83-8392-b5aa19fed0c1",
"ownerType": "ENVIRONMENT",
"name": "Name22",
"description": "Name22 Description",
"tokenDuration": "PT1440M",
"permission": "VIEWER"
}
```
Tenant Admin Sample
```json
{
"ownerId": null,
"ownerType": "TENANT",
"name": "Name23",
"description": "Name23 Description",
"tokenDuration": "PT1440M",
"permission": "ADMIN"
}
```
object ownerIdstring (UUID) | null Required
Client Owner is the Environment ID. The Environment ID can be found under the **Details tab** in the **Environment Settings**. If this is for a **Tenant Admin**, input **null or -** in the **`ownerId`** field.
ownerTypestring Required
Type of Client Owner.
Valid values[
"ENVIRONMENT",
"TENANT"
]
namestring Required
API Client Credential Name
Max length100
descriptionstring
API Client Credential Description
Max length200
tokenDurationstring (ISO-8601 duration) Required
Client Token Duration
ExamplePT90M
permissionstring Required
Client Access Permissions. When configuring Client Credentials for a Tenant, Permissions can be set to ADMIN only.
Valid values[
"ADMIN",
"VIEWER"
]
Responses201
Client Created Successfully
object idstring
Copy and save this id to use as your Client ID.
ownerIdstring (UUID)
ownerTypestring
namestring
descriptionstring
secretstring
Copy and save this secret to use as your Client Secret.
tokenDurationstring (ISO-8601 duration)
permissionstring
400
Bad Request
client count limitation
```json
{
"id": "EW68XA",
"status": 400,
"name": "clientCountLimitation",
"message": "Client count limitation exceeded"
}
```
client already exists
```json
{
"id": "EW69XA",
"status": 400,
"name": "clientAlreadyExists",
"message": "Client {name} already exists"
}
```
Expand Allobject codestring
idstring
statusinteger
namestring
messagestring
argsobject pathstring
403
Forbidden
forbidden environment
```json
{
"id": "EW65XA",
"status": 403,
"name": "forbiddenEnvironment",
"message": "operation get for resource Environment {ownerId} is not allowed because the current user does not have the appropriate permissions"
}
```
forbidden tenant
```json
{
"id": "EW66XA",
"status": 403,
"name": "forbiddenTenant",
"message": "Operation GET for resource Tenant {tenantId} is not allowed because the current user does not have the appropriate permissions."
}
```
Expand Allobject codestring
idstring
statusinteger
namestring
messagestring
argsobject pathstring
404
NotFound
environment not found
```json
{
"code": "EVM-002",
"id": "EW67XA",
"status": 404,
"name": "environmentNotFoundError",
"message": "envId: {ownerId} does not exist"
}
```
Expand Allobject codestring
idstring
statusinteger
namestring
messagestring
argsobject pathstring
422
unprocessable entity
unsupported owner type
```json
{
"id": "EW51XA",
"status": 422,
"name": "UnsupportedOwnerType",
"message": "{ownerType} is not supported"
}
```
Expand Allobject codestring
idstring
statusinteger
namestring
messagestring
argsobject pathstring