<commit_before># Remove subscriptions

Unsubscribe yourself or other users from one or more streams.

`DELETE {{ api_url }}/v1/users/me/subcriptions`

## Arguments

{generate_api_arguments_table|arguments.json|remove-subscriptions.md}

## Usage examples
<div class="code-section" markdown="1">
<ul class="nav">
<li data-language="curl">curl</li>
<li data-language="python">Python</li>
</ul>
<div class="blocks">

<div data-language="curl" markdown="1">

```
curl -X "DELETE" {{ api_url }}/v1/users/me/subscriptions \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    -d 'subscriptions=["Denmark"]'
```

You may specify the `principals` argument like so:

```
curl -X "DELETE" {{ api_url }}/v1/users/me/subscriptions \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    -d 'subscriptions=["Denmark"]' \
    -d 'principals=["<EMAIL>"]'
```

**Note**: Unsubscribing another user from a stream requires
administrative privileges.
</div>

<div data-language="python" markdown="1">

```python
#!/usr/bin/env python

import zulip

# Download ~/zuliprc-dev from your dev server
client = zulip.Client(config_file="~/zuliprc-dev")

# Unsubscribe from the stream "Denmark"
print(client.remove_subscriptions(
    ['Denmark']
))

# Unsubscribe Zoe from the stream "Denmark"
print(client.remove_subscriptions(
    ['Denmark'],
    principals=['<EMAIL>']
))
```

</div>

</div>

</div>

#### Return values

* `removed`: A list of the names of streams which were unsubscribed from as
  a result of the query.

* `not_subscribed`: A list of the names of streams that the user is already
  unsubscribed from, and hence doesn't need to be unsubscribed.

#### Example response
<commit_msg>api/remove-subscriptions: Add JavaScript example.<commit_after># Remove subscriptions

Unsubscribe yourself or other users from one or more streams.

`DELETE {{ api_url }}/v1/users/me/subcriptions`

## Arguments

{generate_api_arguments_table|arguments.json|remove-subscriptions.md}

## Usage examples
<div class="code-section" markdown="1">
<ul class="nav">
<li data-language="curl">curl</li>
<li data-language="python">Python</li>
<li data-language="javascript">JavaScript</li>
</ul>
<div class="blocks">

<div data-language="curl" markdown="1">

```
curl -X "DELETE" {{ api_url }}/v1/users/me/subscriptions \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    -d 'subscriptions=["Denmark"]'
```

You may specify the `principals` argument like so:

```
curl -X "DELETE" {{ api_url }}/v1/users/me/subscriptions \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    -d 'subscriptions=["Denmark"]' \
    -d 'principals=["<EMAIL>"]'
```

**Note**: Unsubscribing another user from a stream requires
administrative privileges.
</div>

<div data-language="python" markdown="1">

```python
#!/usr/bin/env python

import zulip

# Download ~/zuliprc-dev from your dev server
client = zulip.Client(config_file="~/zuliprc-dev")

# Unsubscribe from the stream "Denmark"
print(client.remove_subscriptions(
    ['Denmark']
))

# Unsubscribe Zoe from the stream "Denmark"
print(client.remove_subscriptions(
    ['Denmark'],
    principals=['<EMAIL>']
))
```

</div>

<div data-language="javascript" markdown="1">
More examples and documentation can be found [here](https://github.com/zulip/zulip-js).
```js
const zulip = require('zulip-js');

// Download zuliprc-dev from your dev server
const config = {
    zuliprc: 'zuliprc-dev',
};

zulip(config).then((client) => {
    // Unsubscribe from the stream "Denmark"
    const meParams = {
        subscriptions: JSON.stringify(['Denmark']),
    };
    client.users.me.subscriptions.remove(meParams).then(console.log);

    // Unsubscribe Zoe from the stream "Denmark"
    const zoeParams = {
        subscriptions: JSON.stringify(['Denmark']),
        principals: JSON.stringify(['<EMAIL>']),
    };
    client.users.me.subscriptions.remove(zoeParams).then(console.log);
});
```
</div>

</div>

</div>

#### Return values

* `removed`: A list of the names of streams which were unsubscribed from as
  a result of the query.

* `not_subscribed`: A list of the names of streams that the user is already
  unsubscribed from, and hence doesn't need to be unsubscribed.

#### Example response

{'fraction_non_alphanumeric': 0.1545673076923077, 'fraction_numerical': 0.003125, 'mean_word_length': 4.503968253968254, 'pattern_counts': {'":': 0, '<': 40, '<?xml version=': 0, '>': 41, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 3, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4545573', 'n_tokens_mistral': 1447, 'n_tokens_neox': 1411, 'n_words': 361}