Skip to content
Clan LabsAPIv2
GuidesWebsite Open dashboard
OverviewAuthenticationAPI keysRequestsErrorsMigrationEndpoints
API reference
API v2
  • API overview
  • Authentication
  • API keys and scopes
  • Requests and responses
  • Errors and rate limits
  • Versioning and migration
  • Swagger migration
Troubleshooting
  • Authentication failures
  • Request and rate-limit errors
Members
  • GETList members
  • GETFetch one member
  • POSTChange a member's experience
  • POSTChange a member's quota points
  • PUTSet a member's rank
  • POSTPromote a member one rank
  • POSTDemote a member one rank
  • POSTAward a medal
  • DELETERemove a medal
  • POSTAward a qualification
  • DELETERemove a qualification
  • GETList a member's suspensions
  • POSTSuspend a member
  • POSTRestore a member's active suspension
  • POSTCancel a member's active suspension
Configuration
  • GETList ranks
  • GETFetch one rank
  • GETList medals
  • GETFetch one medal by name
  • GETList qualifications
  • GETFetch one qualification by name
Moderation
  • GETList blacklist entries
  • POSTCreate a blacklist entry
  • GETFetch one blacklist entry
  • PATCHUpdate a blacklist entry's description
  • DELETERemove a blacklist entry
  • GETList warnings
  • POSTIssue a warning
  • GETFetch one warning
  • PATCHUpdate a warning
  • DELETEDelete a warning
Events
  • GETList events
  • POSTCreate and announce an event
  • GETList curated event types
  • GETList approved event locations
  • GETFetch one event
  • POSTCancel an event
  • POSTFinish an event
  • POSTCreate a fresh Discord announcement
GuidesClan Labs websiteOpen dashboard Support
API v2
  • API overview
  • Authentication
  • API keys and scopes
  • Requests and responses
  • Errors and rate limits
  • Versioning and migration
  • Swagger migration
Troubleshooting
  • Authentication failures
  • Request and rate-limit errors
Members
  • GETList members
  • GETFetch one member
  • POSTChange a member's experience
  • POSTChange a member's quota points
  • PUTSet a member's rank
  • POSTPromote a member one rank
  • POSTDemote a member one rank
  • POSTAward a medal
  • DELETERemove a medal
  • POSTAward a qualification
  • DELETERemove a qualification
  • GETList a member's suspensions
  • POSTSuspend a member
  • POSTRestore a member's active suspension
  • POSTCancel a member's active suspension
Configuration
  • GETList ranks
  • GETFetch one rank
  • GETList medals
  • GETFetch one medal by name
  • GETList qualifications
  • GETFetch one qualification by name
Moderation
  • GETList blacklist entries
  • POSTCreate a blacklist entry
  • GETFetch one blacklist entry
  • PATCHUpdate a blacklist entry's description
  • DELETERemove a blacklist entry
  • GETList warnings
  • POSTIssue a warning
  • GETFetch one warning
  • PATCHUpdate a warning
  • DELETEDelete a warning
Events
  • GETList events
  • POSTCreate and announce an event
  • GETList curated event types
  • GETList approved event locations
  • GETFetch one event
  • POSTCancel an event
  • POSTFinish an event
  • POSTCreate a fresh Discord announcement
  1. API reference
  2. /
  3. Moderation
API v2 · Moderation

Create a blacklist entry

POST/v2/blacklists
Last updated 3 September 2026

Overview

A community may blacklist a given target once; a duplicate returns 409.

Permission scope
blacklists.write
Community feature
blacklists
Content type
application/json

Authentication

Two headers are required

Send a current cl_live_… key as a Bearer token and the community’s Clan ID separately.

Authorization: Bearer YOUR_API_KEY
X-Clan-Id: COMMUNITY_ID

The key must be enabled, the community API master switch must be on, and the key must include blacklists.write.

Parameters

This endpoint has no path or query parameters.

Request body

A JSON request body is required.

FieldTypeRequiredConstraints and description
typeUser | GroupYes—
idintegerYesmin 1, max 9007199254740991 · Roblox user id or group id, per `type`.
namestringYesmin length 1 · Display name for the entry. The canonical Roblox name is used instead whenever it can be resolved; this is the fallback when Roblox is unreachable.
descriptionstringYesmin length 1

Error responses

StatusWhen it is returned
400The request was malformed or failed validation.
401The API key is missing, malformed, or not recognised for this community.
403The key is disabled, lacks the required permission, or the community's subscription or tier does not cover API access or this feature.
404The requested resource does not exist.
409That target is already blacklisted.
429Rate limited.
500Unexpected server error.
Handle error codes, not prose
Error bodies use error.code as the stable machine-readable value. The message is for people and may become clearer over time.

Rate limits

This endpoint shares the API key’s configured request budget. A 429 response includes a Retry-After header and limit, remaining, and resetMs values in error.details. Wait for the indicated interval before retrying.

Related endpoints

GETList blacklist entries/v2/blacklistsGETFetch one blacklist entry/v2/blacklists/{type}/{id}PATCHUpdate a blacklist entry's description/v2/blacklists/{type}/{id}DELETERemove a blacklist entry/v2/blacklists/{type}/{id}

Examples use placeholders. Never put an API key in source control, a Roblox place file, screenshots, or support messages.

PreviousList blacklist entriesNext Fetch one blacklist entry
Server-side examples

After HTTP requests are enabled, Roblox Lua uses HttpService:GetSecret() from a server Script, never a LocalScript.

Request

POST
curl --request POST \
  --url 'https://v3.api.clanlabs.co/v2/blacklists' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'X-Clan-Id: COMMUNITY_ID' \
  --header 'Content-Type: application/json' \
  --data '{
  "type": "User",
  "id": 987654,
  "name": "Troublemaker",
  "description": "Exploiting"
}'

Response

201

The created entry

{
  "data": {
    "type": "User",
    "targetId": 987654,
    "name": "Troublemaker",
    "description": "Exploiting",
    "createdAt": 1735689600000,
    "lastUpdatedAt": 1735689600000
  }
}