> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zbdpay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete Blocklist Entry

> Remove a blocklist entry to restore client-side reward sending for your Rewards App.

This operation re-enables client SDK access for the specified API route that was previously blocked.

<Warning>
  Deleting a blocklist entry immediately re-enables client-side reward sending for that API route. Make sure you understand the security implications.
</Warning>

<Info>
  Reversible Action. You can always [add the blocklist entry back](/earn/sdk/restrict-client-rewards) if you need to restrict client-side rewards again.
</Info>

## Configuration

### Header Parameters

<ParamField required header="z-client" type="string" initialValue="developer-dashboard">
  Client identifier (use <code>"developer-dashboard"</code> )
</ParamField>

<ParamField required header="Authorization" type="string">
  Bearer token for authentication

  Format: `Bearer {JWT_TOKEN}`
</ParamField>

### Path Parameters

<ParamField required path="rewardsAppId" type="string">
  Your Rewards App ID
</ParamField>

<ParamField required path="blocklistId" type="string">
  The ID of the blocklist entry to delete
  Get this ID from the "Get Blocklist Entries" endpoint
</ParamField>

<ResponseExample>
  ```json 200 - Success theme={null}
  {
    "success": true,
    "message": "API version blocklist deleted successfully."
  }
  ```
</ResponseExample>

<ResponseExample>
  ```json 400 - Bad Request theme={null}
  {
    "success": false,
    "message": "Invalid UUID"
  }
  ```

  ```json 401 - Unauthorized theme={null}
  {
    "success": false,
    "message": "Authentication required"
  }
  ```

  ```json 403 - Forbidden theme={null}
  {
    "success": false,
    "message": "Developer does not own this app"
  }
  ```

  ```json 404 - Not Found theme={null}
  {
    "success": false,
    "message": "Blocklist entry not found"
  }
  ```

  ```json 500 - Server Error theme={null}
  {
    "success": false,
    "message": "Internal server error"
  }
  ```
</ResponseExample>

## Response Fields

| Field     | Type    | Description                         |
| --------- | ------- | ----------------------------------- |
| `success` | boolean | Whether the deletion was successful |
| `message` | string  | Confirmation message                |

***

### Response Status Codes

| Code  | Description                                 |
| ----- | ------------------------------------------- |
| `200` | Blocklist entry deleted successfully        |
| `400` | Bad request - invalid UUID                  |
| `401` | Unauthorized - authentication required      |
| `403` | Forbidden - developer does not own this app |
| `404` | Blocklist entry not found                   |
| `500` | Internal server error                       |

## Code Examples

<CodeGroup>
  ```javascript Node.js theme={null}
  const rewardsAppId = 'YOUR_REWARDS_APP_ID';
  const blocklistId = 'YOUR_BLOCKLIST_ID';
  const jwtToken = 'YOUR_JWT_TOKEN';

  async function deleteBlocklistEntry(rewardsAppId, blocklistId) {
    const response = await fetch(
      `https://api.zbdpay.com/api/v1/rewards/app/${rewardsAppId}/api-version-blocklist/${blocklistId}`,
      {
        method: 'DELETE',
        headers: {
          'z-client': 'developer-dashboard',
          'Authorization': `Bearer ${jwtToken}`
        }
      }
    );

    const data = await response.json();

    if (data.success) {
      console.log('✅ Blocklist entry deleted successfully!');
      console.log('Client-side rewards are now enabled.');
      return data;
    } else {
      throw new Error(`Failed: ${data.message}`);
    }
  }

  // Delete entry
  await deleteBlocklistEntry(
    'b28e0306-2c06-4092-8d56-a1623d6b97fb',
    'bb6178d1-4fb5-4b35-93d6-31fe052b73dd'
  );
  ```

  ```bash cURL theme={null}
  curl --location --request DELETE 'https://api.zbdpay.com/api/v1/rewards/app/{rewardsAppId}/api-version-blocklist/{blocklistId}' \
  --header 'z-client: developer-dashboard' \
  --header 'Authorization: Bearer {JWT_TOKEN}'
  ```

  ```python Python theme={null}
  import requests
  import os

  jwt_token = os.getenv('JWT_TOKEN')

  def delete_blocklist_entry(rewards_app_id, blocklist_id):
      """Delete a blocklist entry to re-enable client rewards"""

      url = f"https://api.zbdpay.com/api/v1/rewards/app/{rewards_app_id}/api-version-blocklist/{blocklist_id}"
      headers = {
          "z-client": "developer-dashboard",
          "Authorization": f"Bearer {jwt_token}"
      }

      response = requests.delete(url, headers=headers)
      data = response.json()

      if data["success"]:
          print("✅ Blocklist entry deleted successfully!")
          print("Client-side rewards are now enabled.")
          return data
      else:
          raise Exception(f"Failed: {data['message']}")

  # Delete entry
  delete_blocklist_entry(
      "b28e0306-2c06-4092-8d56-a1623d6b97fb",
      "bb6178d1-4fb5-4b35-93d6-31fe052b73dd"
  )
  ```
</CodeGroup>

## What Happens After Deletion?

<CardGroup cols={2}>
  <Card title="Before Deletion Client SDK Blocked" icon="lock" color="#ef4444">
    Client cannot send rewards
  </Card>

  <Card title="After Deletion Client SDK Enabled " icon="unlock" color="#22c55e">
    Client can send rewards again
  </Card>
</CardGroup>

## Try It Out

Ready to delete a blocklist entry? Use our API playground on the right to test with your JWT token.

## What's Next?

Now that you’ve managed your blocklist entries, you can move on to managing your API keys:

* **[List API Keys](/earn/sdk/list-api-keys)**. View and manage the API keys used for backend authentication.
* **[Restrict Client-Side Rewards](/earn/sdk/restrict-client-rewards)**. Create a blocklist entry to disable client-side rewards again.
