# delete\_\_organization\_users\_{userId}

`DELETE /organization/users/{userId}`

*Delete Organization User*

Soft delete a user from the authenticated user's organization. This endpoint requires user management permissions (WORKSPACES role or higher) and both users must be in the same organization. The user is not permanently removed but marked as deleted with a timestamp.

#### Path Parameters <a href="#delete__organization_users__userid-pathparameters" id="delete__organization_users__userid-pathparameters"></a>

| Name     | Type   | Required | Description                             |
| -------- | ------ | -------- | --------------------------------------- |
| » userId | string | true     | Unique identifier of the user to delete |

#### TypeScript Client Library

```typescript
// Using the Flashback TypeScript client
import { FlashbackClient } from '@flashback/client';

const client = new FlashbackClient({
  accessToken: 'your-access-token'
});

// Delete an organization user
try {
  const result = await client.organization.users.delete('user-id');
  console.log('User deleted:', result);
} catch (error) {
  console.error('Failed to delete user:', error);
}
```

#### Code Samples

{% tabs %}
{% tab title="Shell" %}

```shell
# You can also use wget
curl -X DELETE https://backend.flashback.tech/organization/users/550e8400-e29b-41d4-a716-446655440000 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {access-token}'
```

{% endtab %}

{% tab title="HTTP" %}

```http
DELETE https://backend.flashback.tech/organization/users/550e8400-e29b-41d4-a716-446655440000 HTTP/1.1
Host: localhost:3000
Accept: application/json
Authorization: Bearer {access-token}
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const headers = {
  'Accept':'application/json',
  'Authorization':'Bearer {access-token}'
};

fetch('https://backend.flashback.tech/organization/users/550e8400-e29b-41d4-a716-446655440000',
{
  method: 'DELETE',
  headers: headers
})
.then(function(res) {
    return res.json();
}).then(function(body) {
    console.log(body);
});
```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'rest-client'
require 'json'

headers = {
  'Accept' => 'application/json',
  'Authorization' => 'Bearer {access-token}'
}

result = RestClient.delete 'https://backend.flashback.tech/organization/users/550e8400-e29b-41d4-a716-446655440000',
  params: {
  }, headers: headers

p JSON.parse(result)
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
headers = {
  'Accept': 'application/json',
  'Authorization': 'Bearer {access-token}'
}

r = requests.delete('https://backend.flashback.tech/organization/users/550e8400-e29b-41d4-a716-446655440000', headers = headers)

print(r.json())
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

require 'vendor/autoload.php';

$headers = array(
    'Accept' => 'application/json',
    'Authorization' => 'Bearer {access-token}',
);

$client = new \GuzzleHttp\Client();

try {
    $response = $client->request('DELETE','https://backend.flashback.tech/organization/users/550e8400-e29b-41d4-a716-446655440000', array(
        'headers' => $headers,
       )
    );
    print_r($response->getBody()->getContents());
 }
 catch (\GuzzleHttp\Exception\BadResponseException $e) {
    // handle exception or api errors.
    print_r($e->getMessage());
 }

```

{% endtab %}

{% tab title="Java" %}

```java
URL obj = new URL("https://backend.flashback.tech/organization/users/550e8400-e29b-41d4-a716-446655440000");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
con.setRequestProperty("Accept", "application/json");
con.setRequestProperty("Authorization", "Bearer {access-token}");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
    new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
    response.append(inputLine);
}
in.close();
System.out.println(response.toString());
```

{% endtab %}

{% tab title="Go" %}

```go
package main

import (
       "bytes"
       "net/http"
)

func main() {

    headers := map[string][]string{
        "Accept": []string{"application/json"},
        "Authorization": []string{"Bearer {access-token}"},
    }

    data := bytes.NewBuffer([]byte{})
    req, err := http.NewRequest("DELETE", "https://backend.flashback.tech/organization/users/550e8400-e29b-41d4-a716-446655440000", data)
    req.Header = headers

    client := &http.Client{}
    resp, err := client.Do(req)
    // ...
}
```

{% endtab %}
{% endtabs %}

> Example responses

> 200 Response

```json
{
  "success": true,
  "message": "User deleted successfully"
}
```

> 400 Response

```json
{
  "success": false,
  "message": "Cannot delete yourself"
}
```

> 403 Response

```json
{
  "success": false,
  "message": "Insufficient permissions to delete users"
}
```

> 404 Response

```json
{
  "success": false,
  "message": "User not found"
}
```

> 500 Response

```json
{
  "success": false,
  "message": "Internal server error"
}
```

#### Responses <a href="#delete__organization_users__userid-responses" id="delete__organization_users__userid-responses"></a>

| Status | Meaning                                                                    | Description                                                | Schema |
| ------ | -------------------------------------------------------------------------- | ---------------------------------------------------------- | ------ |
| 200    | [OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)                    | User deleted successfully                                  | Inline |
| 400    | [Bad Request](https://tools.ietf.org/html/rfc7231#section-6.5.1)           | Cannot delete yourself                                     | Inline |
| 403    | [Forbidden](https://tools.ietf.org/html/rfc7235#section-3.3)               | Insufficient permissions or users not in same organization | Inline |
| 404    | [Not Found](https://tools.ietf.org/html/rfc7231#section-6.5.4)             | User not found                                             | Inline |
| 500    | [Internal Server Error](https://tools.ietf.org/html/rfc7231#section-6.6.1) | Internal server error                                      | Inline |

#### Response Schema <a href="#delete__organization_users__userid-responseschema" id="delete__organization_users__userid-responseschema"></a>

Status Code **200**

| Name      | Type    | Required | Restrictions | Description                             |
| --------- | ------- | -------- | ------------ | --------------------------------------- |
| » success | boolean | false    | none         | Indicates if the request was successful |
| » message | string  | false    | none         | Success message                         |

Status Code **400**

| Name      | Type    | Required | Restrictions | Description                             |
| --------- | ------- | -------- | ------------ | --------------------------------------- |
| » success | boolean | false    | none         | Indicates if the request was successful |
| » message | string  | false    | none         | Error message describing the issue      |

Status Code **403**

| Name      | Type    | Required | Restrictions | Description                                   |
| --------- | ------- | -------- | ------------ | --------------------------------------------- |
| » success | boolean | false    | none         | Indicates if the request was successful       |
| » message | string  | false    | none         | Error message describing the permission issue |

Status Code **404**

| Name      | Type    | Required | Restrictions | Description                             |
| --------- | ------- | -------- | ------------ | --------------------------------------- |
| » success | boolean | false    | none         | Indicates if the request was successful |
| » message | string  | false    | none         | Error message describing the issue      |

Status Code **500**

| Name      | Type    | Required | Restrictions | Description                               |
| --------- | ------- | -------- | ------------ | ----------------------------------------- |
| » success | boolean | false    | none         | Indicates if the request was successful   |
| » message | string  | false    | none         | Error message describing the server issue |

#### Security

* **BearerAuth**: Bearer token authentication required
* **Permissions**: Requires WORKSPACES role or higher to access user management functions
* **Organization Access**: Both users must be in the same organization
* **Role Modification**: Current user must have sufficient permissions to modify the target user's role

#### Notes

* This is a soft delete operation - the user is marked as deleted with a timestamp but not permanently removed
* Users cannot delete themselves through this endpoint
* Deleted users can be reactivated using the `/organization/users/{userId}/activate` endpoint
* The `deletedAt` field will be set to the current timestamp when the user is deleted
* Deleted users will not appear in user listing endpoints but their data is preserved
