# Revoke Whitelist

This endpoint enables the revocation of a product license from a user within your hub. By executing this route, you can withdraw access to a particular product from a user, ensuring control over product licensing and adherence to your hub's guidelines or user agreements.

## Revoke a Whitelist from a user

<mark style="color:red;">`DELETE`</mark> `https://v2.parcelroblox.com/whitelist/revoke`

#### Headers

<table><thead><tr><th width="256">Name</th><th width="170">Type</th><th>Description</th></tr></thead><tbody><tr><td>Authorization<mark style="color:red;">*</mark></td><td>string</td><td>prod_DGzVhVsrqNJi4b0Chd9mMPUI9</td></tr><tr><td>Content-Type</td><td>string</td><td>application/json</td></tr></tbody></table>

#### Request Body

| Name                                           | Type   | Description               |
| ---------------------------------------------- | ------ | ------------------------- |
| product\_id<mark style="color:red;">\*</mark>  | string | Product ID                |
| userid<mark style="color:red;">\*</mark>       | string | Roblox or Discord User ID |
| userid\_type<mark style="color:red;">\*</mark> | string | "roblox" or "discord"     |

{% tabs %}
{% tab title="200: OK " %}
If everything was able to process properly:

```javascript
 { "status": "200", "message": "OK", "data": { "userid": string, "userid_type": string, "product_id": string, "state": "License has been revoked" } }
```

{% endtab %}

{% tab title="500: Internal Server Error " %}
If something was wrong on our end:

```javascript
{ "status": "500", "message": "Internal Server Error" }
```

{% endtab %}

{% tab title="404: Not Found " %}
If the product ID that you supplied does not exist:

```javascript
{ "status": "404", "message": "Product does not exist.", "data": {} }
```

If the user ID that you supplied does not exist within our Database:

```javascript
{ "status": "404", "message": "No Roblox Account associated to this Discord User ID.", "data": {} }
```

{% endtab %}

{% tab title="401: Unauthorized " %}
If you provided an invalid authorization key:

```javascript
{ "status": "401", "message": "Invalid authorization key." }
```

If you did not provide an authorization key:

```javascript
{ "status": "401", "message": "No authorization key was provided." }
```

{% endtab %}

{% tab title="400: Bad Request " %}
If you did not supply the Product ID, User ID and User ID Type:

```javascript
{ "status": "400", "message": "Missing Body Parameters.\nRequired params: product_id, userid, userid_type", "data": {} }
```

If the user does not own the license:

```javascript
{ "status": "400", "message": "User does not own this license.", "data": { } }
```

If you provided an invalid User ID Type:

```javascript
{ "status": "400", "message": "Invalid type.\nAvailable types: roblox, discord", "data": {} }
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://v2-docs.parcelroblox.com/whitelist-endpoints/revoke-whitelist.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
