API Reference

Bans

Look up and manage ban records for integrations and moderation tooling.

Lists visible bans for an administrator-linked key, lists public bans for legacy read keys, or looks up public bans by Discord ID, Fluxer ID, username, or display name.

Authentication

API key. Session-based admin browsing is available with admin=true outside the public integration flow.

Modes: API key

API key: bans:read

Permissions or Scopes

bans:read

Request Headers

HeaderValueDescription
AuthorizationBearer prapi_your_keyUse this header for API-key authentication.
x-api-keyprapi_your_keyAlternative API-key header.
x-api-tokenprapi_your_keyLegacy API-key header.

Parameters

NameInRequiredDescription
lookupTypequeryYesOne of fluxerId, discordId, username, or displayName. field is also accepted as an alias.
lookupqueryYesIdentity value to search for. search is also accepted as an alias.
pagequeryNoPage number. Defaults to 1.
limitqueryNoResults per page. Defaults to 48 and is capped at 100.

Validation

  • Validated by the server route before side effects. Invalid requests return 400 with an error message.

Errors

400 Invalid or missing lookup fields.

401 Missing, invalid, or expired API key.

403 API key is not allowed from the current IP address or is missing bans:read.

403 Administrator-linked API key is missing permission to view scoped ban records.

Rate Limits

No route-specific rate limit is documented. Global abuse protection and upstream proxy limits may still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl -H "Authorization: Bearer prapi_your_key" "https://playroom.date/api/bans?lookupType=discordId&lookup=123456789012345678"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/bans?lookupType=discordId&lookup=123456789012345678', {
  method: 'GET',
  headers: {
    "Authorization": "Bearer prapi_your_key"
  },
});
const data = await response.json();

Python

import requests

headers = {"Authorization": "Bearer prapi_your_key"}
response = requests.get('https://playroom.date/api/bans?lookupType=discordId&lookup=123456789012345678', headers=headers)
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "bans": [
      {
        "id": "ban_id",
        "user": {
          "username": "example",
          "displayName": "Example"
        },
        "providerIds": {
          "discordId": "123456789012345678",
          "fluxerId": null
        },
        "reason": "Rule violation",
        "community": null,
        "timestamps": {
          "createdAt": "2026-05-17T00:00:00.000Z",
          "updatedAt": "2026-05-17T00:00:00.000Z",
          "expiresAt": null
        },
        "status": {
          "active": true,
          "expired": false,
          "temporary": false,
          "public": true,
          "publicAfterExpiry": false
        }
      }
    ],
    "total": 1,
    "pages": 1,
    "currentPage": 1,
    "pagination": {
      "total": 1,
      "pages": 1,
      "currentPage": 1,
      "pageSize": 48
    },
    "lookupType": "discordId"
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

Request

GET /api/bans?lookupType=discordId&lookup=123456789012345678&page=1&limit=48

curl Equivalent

curl "https://playroom.date/api/bans?lookupType=discordId&lookup=123456789012345678&page=1&limit=48"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "bans": [
      {
        "id": "ban_id",
        "user": {
          "username": "example",
          "displayName": "Example"
        },
        "providerIds": {
          "discordId": "123456789012345678",
          "fluxerId": null
        },
        "reason": "Rule violation",
        "community": null,
        "timestamps": {
          "createdAt": "2026-05-17T00:00:00.000Z",
          "updatedAt": "2026-05-17T00:00:00.000Z",
          "expiresAt": null
        },
        "status": {
          "active": true,
          "expired": false,
          "temporary": false,
          "public": true,
          "publicAfterExpiry": false
        }
      }
    ],
    "total": 1,
    "pages": 1,
    "currentPage": 1,
    "pagination": {
      "total": 1,
      "pages": 1,
      "currentPage": 1,
      "pageSize": 48
    },
    "lookupType": "discordId"
  },
  "error": null
}

Fetches one ban by ID. API keys must include bans:read and be linked to an administrator with permission to view the ban community.

Authentication

API key or admin session.

Modes: logged-in user, API key

API key: bans:read

Permissions or Scopes

bans:read

Request Headers

HeaderValueDescription
AuthorizationBearer prapi_your_keyAPI-key authentication.
x-api-keyprapi_your_keyAlternative API-key header.

Parameters

NameInRequiredDescription
idpathYesBan ID.

Validation

  • Validated by the server route before side effects. Invalid requests return 400 with an error message.

Errors

401 Missing, invalid, or expired API key.

403 Token is missing bans:read or the linked administrator cannot view this ban.

404 Ban not found.

Rate Limits

No route-specific rate limit is documented. Global abuse protection and upstream proxy limits may still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl -H "Authorization: Bearer prapi_your_key" "https://playroom.date/api/bans/resource_id"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/bans/resource_id', {
  method: 'GET',
  headers: {
    "Authorization": "Bearer prapi_your_key"
  },
});
const data = await response.json();

Python

import requests

headers = {"Authorization": "Bearer prapi_your_key"}
response = requests.get('https://playroom.date/api/bans/resource_id', headers=headers)
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "ban": {
      "id": "ban_id",
      "providerIds": {
        "discordId": "123456789012345678",
        "fluxerId": null
      },
      "reason": "Rule violation",
      "status": {
        "active": true,
        "expired": false,
        "temporary": false,
        "public": true,
        "publicAfterExpiry": false
      }
    }
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

Request

GET /api/bans/

curl Equivalent

curl "https://playroom.date/api/bans/"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "ban": {
      "id": "ban_id",
      "providerIds": {
        "discordId": "123456789012345678",
        "fluxerId": null
      },
      "reason": "Rule violation",
      "status": {
        "active": true,
        "expired": false,
        "temporary": false,
        "public": true,
        "publicAfterExpiry": false
      }
    }
  },
  "error": null
}

Creates a ban. API keys must include bans:write and be linked to an administrator. The linked administrator must have equivalent create-ban permissions for the target community.

Authentication

API key or admin session + CSRF.

Modes: logged-in user, API key

API key: bans:write

Permissions or Scopes

bans:write

Request Headers

HeaderValueDescription
AuthorizationBearer prapi_your_keyAPI-key authentication.
x-api-keyprapi_your_keyAlternative API-key header.
Content-Typeapplication/jsonRequired for JSON request bodies.

Parameters

NameInRequiredDescription
userIdbodyNoWebsite user ID to ban.
discordIdbodyNoLegacy Discord ID shortcut. Use accounts for new integrations.
accountsbodyNoLinked Discord/Fluxer accounts. Provide at least one account when userId and discordId are absent.
reasonbodyYesReason, 10-500 characters.
descriptionbodyNoOptional staff-facing description, up to 1000 characters.
isPermanentbodyNoDefaults to true. Temporary bans require durationValue and durationUnit.
communityIdbodyNoCommunity scope. Requires create access for that community.

Validation

  • Validated by the server route before side effects. Invalid requests return 400 with an error message.

Errors

400 Validation error or duplicate active ban.

401 Missing, invalid, or expired API key.

403 Missing bans:write or linked administrator lacks create permission.

Rate Limits

No route-specific rate limit is documented. Global abuse protection and upstream proxy limits may still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl -X POST -H "Authorization: Bearer prapi_your_key" -H "Content-Type: application/json" -d '{"userId":"user_id","discordId":"discord_id","accounts":"example-accounts","reason":"Repeated rule violations","description":"example-description","isPermanent":"example-isPermanent","communityId":"community_id"}' "https://playroom.date/api/bans"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/bans', {
  method: 'POST',
  headers: {
    "Authorization": "Bearer prapi_your_key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "userId": "user_id",
    "discordId": "discord_id",
    "accounts": "example-accounts",
    "reason": "Repeated rule violations",
    "description": "example-description",
    "isPermanent": "example-isPermanent",
    "communityId": "community_id"
  }),
});
const data = await response.json();

Python

import requests

headers = {"Authorization": "Bearer prapi_your_key"}
response = requests.post('https://playroom.date/api/bans', headers=headers, json={"userId": "user_id", "discordId": "discord_id", "accounts": "example-accounts", "reason": "Repeated rule violations", "description": "example-description", "isPermanent": "example-isPermanent", "communityId": "community_id"})
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "ban": {
      "id": "ban_id",
      "providerIds": {
        "discordId": "123456789012345678",
        "fluxerId": null
      },
      "reason": "Rule violation",
      "status": {
        "active": true,
        "expired": false,
        "temporary": false,
        "public": true,
        "publicAfterExpiry": false
      }
    }
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

Request

POST /api/bans

Request Payload

{
  "reason": "Repeated rule violations"
}

curl Equivalent

curl -X POST -H "Content-Type: application/json" -d '{"reason":"Repeated rule violations"}' "https://playroom.date/api/bans"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "ban": {
      "id": "ban_id",
      "providerIds": {
        "discordId": "123456789012345678",
        "fluxerId": null
      },
      "reason": "Rule violation",
      "status": {
        "active": true,
        "expired": false,
        "temporary": false,
        "public": true,
        "publicAfterExpiry": false
      }
    }
  },
  "error": null
}

Updates ban metadata, evidence visibility, duration, linked accounts, or community. API keys must include bans:write and be linked to an administrator with edit permission.

Authentication

API key or admin session + CSRF.

Modes: logged-in user, API key

API key: bans:write

Permissions or Scopes

bans:write

Request Headers

HeaderValueDescription
AuthorizationBearer prapi_your_keyAPI-key authentication.
x-api-keyprapi_your_keyAlternative API-key header.
Content-Typeapplication/jsonRequired for JSON request bodies.

Parameters

NameInRequiredDescription
idpathYesBan ID.
reasonbodyNoUpdated reason, 10-500 characters.
descriptionbodyNoUpdated description, up to 1000 characters.
isPermanentbodyNoWhen false, durationValue and durationUnit are required.
evidencePublicbodyNoWhether public evidence is visible in API responses.

Validation

  • Validated by the server route before side effects. Invalid requests return 400 with an error message.

Errors

400 Validation error.

401 Missing, invalid, or expired API key.

403 Missing bans:write or linked administrator lacks edit permission.

404 Ban not found.

Rate Limits

No route-specific rate limit is documented. Global abuse protection and upstream proxy limits may still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl -X PATCH -H "Authorization: Bearer prapi_your_key" -H "Content-Type: application/json" -d '{"reason":"Repeated rule violations","description":"example-description","isPermanent":"example-isPermanent","evidencePublic":"example-evidencePublic"}' "https://playroom.date/api/bans/resource_id"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/bans/resource_id', {
  method: 'PATCH',
  headers: {
    "Authorization": "Bearer prapi_your_key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "reason": "Repeated rule violations",
    "description": "example-description",
    "isPermanent": "example-isPermanent",
    "evidencePublic": "example-evidencePublic"
  }),
});
const data = await response.json();

Python

import requests

headers = {"Authorization": "Bearer prapi_your_key"}
response = requests.patch('https://playroom.date/api/bans/resource_id', headers=headers, json={"reason": "Repeated rule violations", "description": "example-description", "isPermanent": "example-isPermanent", "evidencePublic": "example-evidencePublic"})
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "ban": {
      "id": "ban_id",
      "providerIds": {
        "discordId": "123456789012345678",
        "fluxerId": null
      },
      "reason": "Rule violation",
      "status": {
        "active": true,
        "expired": false,
        "temporary": false,
        "public": true,
        "publicAfterExpiry": false
      }
    }
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

Request

PATCH /api/bans/

Request Payload

{
  "reason": "Repeated rule violations"
}

curl Equivalent

curl -X PATCH -H "Content-Type: application/json" -d '{"reason":"Repeated rule violations"}' "https://playroom.date/api/bans/"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "ban": {
      "id": "ban_id",
      "providerIds": {
        "discordId": "123456789012345678",
        "fluxerId": null
      },
      "reason": "Rule violation",
      "status": {
        "active": true,
        "expired": false,
        "temporary": false,
        "public": true,
        "publicAfterExpiry": false
      }
    }
  },
  "error": null
}

Updates a ban by path ID. This route is kept for clients that use PUT; PATCH /api/bans/{id} is preferred for partial updates.

Authentication

API key or admin session + CSRF.

Modes: logged-in user, API key

API key: bans:write

Permissions or Scopes

bans:write

Request Headers

HeaderValueDescription
AuthorizationBearer prapi_your_keyAPI-key authentication.
x-api-keyprapi_your_keyAlternative API-key header.
Content-Typeapplication/jsonRequired for JSON request bodies.

Parameters

NameInRequiredDescription
idpathYesBan ID.
reasonbodyNoUpdated reason, 10-500 characters.
descriptionbodyNoUpdated description, up to 1000 characters.
isPermanentbodyNoWhen false, durationValue and durationUnit are required.
evidencePublicbodyNoWhether public evidence is visible in API responses.

Validation

  • Validated by the server route before side effects. Invalid requests return 400 with an error message.

Errors

400 Validation error.

401 Missing, invalid, or expired API key.

403 Missing bans:write or linked administrator lacks edit permission.

404 Ban not found.

Rate Limits

No route-specific rate limit is documented. Global abuse protection and upstream proxy limits may still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl -X PUT -H "Authorization: Bearer prapi_your_key" -H "Content-Type: application/json" -d '{"reason":"Repeated rule violations","description":"example-description","isPermanent":"example-isPermanent","evidencePublic":"example-evidencePublic"}' "https://playroom.date/api/bans/resource_id"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/bans/resource_id', {
  method: 'PUT',
  headers: {
    "Authorization": "Bearer prapi_your_key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "reason": "Repeated rule violations",
    "description": "example-description",
    "isPermanent": "example-isPermanent",
    "evidencePublic": "example-evidencePublic"
  }),
});
const data = await response.json();

Python

import requests

headers = {"Authorization": "Bearer prapi_your_key"}
response = requests.put('https://playroom.date/api/bans/resource_id', headers=headers, json={"reason": "Repeated rule violations", "description": "example-description", "isPermanent": "example-isPermanent", "evidencePublic": "example-evidencePublic"})
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "ban": {
      "id": "ban_id",
      "providerIds": {
        "discordId": "123456789012345678",
        "fluxerId": null
      },
      "reason": "Rule violation",
      "status": {
        "active": true,
        "expired": false,
        "temporary": false,
        "public": true,
        "publicAfterExpiry": false
      }
    }
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

Request

PUT /api/bans/

Request Payload

{
  "reason": "Repeated rule violations"
}

curl Equivalent

curl -X PUT -H "Content-Type: application/json" -d '{"reason":"Repeated rule violations"}' "https://playroom.date/api/bans/"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "ban": {
      "id": "ban_id",
      "providerIds": {
        "discordId": "123456789012345678",
        "fluxerId": null
      },
      "reason": "Rule violation",
      "status": {
        "active": true,
        "expired": false,
        "temporary": false,
        "public": true,
        "publicAfterExpiry": false
      }
    }
  },
  "error": null
}

Legacy-compatible update route that accepts banId in the JSON body. Prefer PATCH /api/bans/{id} for new integrations.

Authentication

API key or admin session + CSRF.

Modes: logged-in user, API key

API key: bans:write

Permissions or Scopes

bans:write

Request Headers

HeaderValueDescription
AuthorizationBearer prapi_your_keyAPI-key authentication.
x-api-keyprapi_your_keyAlternative API-key header.
Content-Typeapplication/jsonRequired for JSON request bodies.

Parameters

NameInRequiredDescription
banIdbodyYesBan ID to update.
reasonbodyNoUpdated reason, 10-500 characters.
descriptionbodyNoUpdated description, up to 1000 characters.

Validation

  • Validated by the server route before side effects. Invalid requests return 400 with an error message.

Errors

400 Validation error.

401 Missing, invalid, or expired API key.

403 Missing bans:write or linked administrator lacks edit permission.

404 Ban not found.

Rate Limits

No route-specific rate limit is documented. Global abuse protection and upstream proxy limits may still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl -X PUT -H "Authorization: Bearer prapi_your_key" -H "Content-Type: application/json" -d '{"banId":"ban_id","reason":"Repeated rule violations","description":"example-description"}' "https://playroom.date/api/bans"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/bans', {
  method: 'PUT',
  headers: {
    "Authorization": "Bearer prapi_your_key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "banId": "ban_id",
    "reason": "Repeated rule violations",
    "description": "example-description"
  }),
});
const data = await response.json();

Python

import requests

headers = {"Authorization": "Bearer prapi_your_key"}
response = requests.put('https://playroom.date/api/bans', headers=headers, json={"banId": "ban_id", "reason": "Repeated rule violations", "description": "example-description"})
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "ban": {
      "id": "ban_id",
      "providerIds": {
        "discordId": "123456789012345678",
        "fluxerId": null
      },
      "reason": "Rule violation",
      "status": {
        "active": true,
        "expired": false,
        "temporary": false,
        "public": true,
        "publicAfterExpiry": false
      }
    }
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

Request

PUT /api/bans

Request Payload

{
  "banId": "",
  "reason": "Repeated rule violations"
}

curl Equivalent

curl -X PUT -H "Content-Type: application/json" -d '{"banId":"","reason":"Repeated rule violations"}' "https://playroom.date/api/bans"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "ban": {
      "id": "ban_id",
      "providerIds": {
        "discordId": "123456789012345678",
        "fluxerId": null
      },
      "reason": "Rule violation",
      "status": {
        "active": true,
        "expired": false,
        "temporary": false,
        "public": true,
        "publicAfterExpiry": false
      }
    }
  },
  "error": null
}

Alias for the legacy-compatible update route. Accepts banId in the JSON body. Prefer PATCH /api/bans/{id}.

Authentication

API key or admin session + CSRF.

Modes: logged-in user, API key

API key: bans:write

Permissions or Scopes

bans:write

Request Headers

HeaderValueDescription
AuthorizationBearer prapi_your_keyAPI-key authentication.
x-api-keyprapi_your_keyAlternative API-key header.
Content-Typeapplication/jsonRequired for JSON request bodies.

Parameters

NameInRequiredDescription
banIdbodyYesBan ID to update.

Validation

  • Validated by the server route before side effects. Invalid requests return 400 with an error message.

Errors

400 Validation error.

401 Missing, invalid, or expired API key.

403 Missing bans:write or linked administrator lacks edit permission.

Rate Limits

No route-specific rate limit is documented. Global abuse protection and upstream proxy limits may still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl -X PATCH -H "Authorization: Bearer prapi_your_key" -H "Content-Type: application/json" -d '{"banId":"ban_id"}' "https://playroom.date/api/bans"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/bans', {
  method: 'PATCH',
  headers: {
    "Authorization": "Bearer prapi_your_key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "banId": "ban_id"
  }),
});
const data = await response.json();

Python

import requests

headers = {"Authorization": "Bearer prapi_your_key"}
response = requests.patch('https://playroom.date/api/bans', headers=headers, json={"banId": "ban_id"})
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "ban": {
      "id": "ban_id",
      "providerIds": {
        "discordId": "123456789012345678",
        "fluxerId": null
      },
      "reason": "Rule violation",
      "status": {
        "active": true,
        "expired": false,
        "temporary": false,
        "public": true,
        "publicAfterExpiry": false
      }
    }
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

Request

PATCH /api/bans

Request Payload

{
  "banId": ""
}

curl Equivalent

curl -X PATCH -H "Content-Type: application/json" -d '{"banId":""}' "https://playroom.date/api/bans"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "ban": {
      "id": "ban_id",
      "providerIds": {
        "discordId": "123456789012345678",
        "fluxerId": null
      },
      "reason": "Rule violation",
      "status": {
        "active": true,
        "expired": false,
        "temporary": false,
        "public": true,
        "publicAfterExpiry": false
      }
    }
  },
  "error": null
}

Legacy-compatible delete route that accepts banId as a query parameter. Prefer DELETE /api/bans/{id} for new integrations.

Authentication

API key or admin session + CSRF.

Modes: logged-in user, API key

API key: bans:write

Permissions or Scopes

bans:write

Request Headers

HeaderValueDescription
AuthorizationBearer prapi_your_keyAPI-key authentication.
x-api-keyprapi_your_keyAlternative API-key header.

Parameters

NameInRequiredDescription
banIdqueryYesBan ID to remove.

Validation

  • Validated by the server route before side effects. Invalid requests return 400 with an error message.

Errors

400 Missing banId.

401 Missing, invalid, or expired API key.

403 Missing bans:write or linked administrator lacks delete permission.

Rate Limits

No route-specific rate limit is documented. Global abuse protection and upstream proxy limits may still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl -X DELETE -H "Authorization: Bearer prapi_your_key" "https://playroom.date/api/bans?banId=ban_id"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/bans?banId=ban_id', {
  method: 'DELETE',
  headers: {
    "Authorization": "Bearer prapi_your_key"
  },
});
const data = await response.json();

Python

import requests

headers = {"Authorization": "Bearer prapi_your_key"}
response = requests.delete('https://playroom.date/api/bans?banId=ban_id', headers=headers)
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "deleted": true,
    "banId": "ban_id"
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

Request

DELETE /api/bans

curl Equivalent

curl -X DELETE "https://playroom.date/api/bans"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "deleted": true,
    "banId": "ban_id"
  },
  "error": null
}

Revokes/removes a ban. API keys must include bans:write and be linked to an administrator with delete permission.

Authentication

API key or admin session + CSRF.

Modes: logged-in user, API key

API key: bans:write

Permissions or Scopes

bans:write

Request Headers

HeaderValueDescription
AuthorizationBearer prapi_your_keyAPI-key authentication.
x-api-keyprapi_your_keyAlternative API-key header.

Parameters

NameInRequiredDescription
idpathYesBan ID.

Validation

  • Validated by the server route before side effects. Invalid requests return 400 with an error message.

Errors

401 Missing, invalid, or expired API key.

403 Missing bans:write or linked administrator lacks delete permission.

404 Ban not found.

Rate Limits

No route-specific rate limit is documented. Global abuse protection and upstream proxy limits may still apply.

Examples and Try It

Request examples, sample output, and the live tester below apply only to this endpoint.

cURL

curl -X DELETE -H "Authorization: Bearer prapi_your_key" "https://playroom.date/api/bans/resource_id"

JavaScript / TypeScript

const response = await fetch('https://playroom.date/api/bans/resource_id', {
  method: 'DELETE',
  headers: {
    "Authorization": "Bearer prapi_your_key"
  },
});
const data = await response.json();

Python

import requests

headers = {"Authorization": "Bearer prapi_your_key"}
response = requests.delete('https://playroom.date/api/bans/resource_id', headers=headers)
print(response.json())

Example Output

{
  "success": true,
  "data": {
    "deleted": true,
    "banId": "ban_id"
  },
  "error": null
}

Try It

Checking sign-in state...

Auth: No authentication

Request

DELETE /api/bans/

curl Equivalent

curl -X DELETE "https://playroom.date/api/bans/"
Sample Response

Sample Response Body

{
  "success": true,
  "data": {
    "deleted": true,
    "banId": "ban_id"
  },
  "error": null
}