---
updatedAt: 2025-04-03T21:41:29.000Z
agentTools:
  projectIndex: https://replicated.readme.io/llms.txt
---

# Provisioning API

You are (optionally) responsible for implementing a provisioning API to enable full identity sync.  Once enabled, Replicated will make calls into this API when changes are detected in the directory service.

When implemented and defined in the `Identity` configuration, this API will receive the list of LDAP users (initially) and updates when users are added, edited, and removed.

## /v1/ping

This call is used to advertise the API's readiness.

### Response

HTTP status on success: `204`\
All other status codes will be interpreted as errors and sync will not be initiated.

## /v1/user/create

This endpoint is called when a new user record is being added.

### Request Payload

<Table align={["left","left","left"]}>
  <thead>
    <tr>
      <th>
        Name
      </th>

      <th>
        Type
      </th>

      <th>
        Description
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        uuid
      </td>

      <td>
        String
      </td>

      <td>
        (Required) This is the permanent unique user identifier.  Note that `username` can change but still identify the same user.
      </td>
    </tr>

    <tr>
      <td>
        user\_id
      </td>

      <td>
        String
      </td>

      <td>
        (Optional) User ID if one is defined by the LDAP server.
      </td>
    </tr>

    <tr>
      <td>
        username
      </td>

      <td>
        String
      </td>

      <td>
        (Optional) Username as defined by the `ldap_username_field` setting.
      </td>
    </tr>

    <tr>
      <td>
        first\_name
      </td>

      <td>
        String
      </td>

      <td>
        (Optional) First name
      </td>
    </tr>

    <tr>
      <td>
        last\_name
      </td>

      <td>
        String
      </td>

      <td>
        (Optional) Last name
      </td>
    </tr>

    <tr>
      <td>
        full\_name
      </td>

      <td>
        String
      </td>

      <td>
        (Optional) Full name
      </td>
    </tr>

    <tr>
      <td>
        password\_format
      </td>

      <td>
        String
      </td>

      <td>
        (Optional) Password (encryption/hashing) format
      </td>
    </tr>

    <tr>
      <td>
        password
      </td>

      <td>
        String
      </td>

      <td>
        (Optional) Password.  Note that this maybe clear text password.  This will be indicated by the value in `password_format`
      </td>
    </tr>

    <tr>
      <td>
        email
      </td>

      <td>
        String
      </td>

      <td>
        (Optional) Email
      </td>
    </tr>
  </tbody>
</Table>

### Response

HTTP status on success: `201`\
All other status codes will be interpreted as errors and sync will not continue.

## /v1/user/modify

This endpoint is called when an existing user record is being update.

### Request Payload

At this time the request payload is the same as for `/v1/user/create`

### Response

HTTP status on success: `204`\
All other status codes will be interpreted as errors and sync will not continue.

## /v1/user/:uuid

This endpoint is called when an existing user record is being deleted.

### Request Payload

None

### Response

HTTP status on success: `204`\
All other status codes will be interpreted as errors and sync will not continue.