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. API troubleshooting
API troubleshooting

API authentication fails

Fix API v2 key, Clan ID, enabled-state, legacy-key, and header errors.

Last updated 3 September 2026

Symptom

An API v2 request returns 401 or 403 with missing_credentials, invalid_api_key, key_disabled, api_disabled, legacy_key_unsupported, or a related authentication error.

Most likely causes

  • Authorization or X-Clan-Id is absent or malformed.
  • The secret belongs to a different community.
  • The API master switch or individual key is disabled.
  • The key was deleted, rotated, copied incompletely, or exposed with extra whitespace.
  • A migrated legacy key is being used on /v2.
  • The request is going to an old host or version.

Diagnostic checks

  1. Confirm the base URL is https://v3.api.clanlabs.co and the path starts /v2.
  2. Check Authorization: Bearer YOUR_API_KEY without logging the real value.
  3. Check X-Clan-Id: COMMUNITY_ID against the API settings page.
  4. Confirm both the community API switch and key are enabled.
  5. Compare the visible key prefix and name, not the secret.
  6. Determine whether the key is marked as migrated legacy material.

Resolution

Correct the two headers or use the key belonging to that Clan ID. Enable the key and master switch if authorised. Rotate a migrated legacy key to create a current cl_live_ secret for /v2, store it once, and update the server-side secret manager.

For Roblox server scripts, keep the key in the experience's secrets store and read it with HttpService:GetSecret(). Never put the key in a LocalScript, experience source code, log, screenshot, or support request.

When to retry

Retry one harmless read after correcting headers or state. Following rotation, the old key stops immediately, or within about a minute if cache invalidation was temporarily unreachable.

Contact support

Contact Clan Labs support if a newly rotated, enabled key and matching Clan ID fail against the documented API host.

Include this information

Include method and path, HTTP status, error code and message, Clan ID, key name and visible prefix, rotation time, and a redacted header shape. Never include the secret.

PreviousSwagger migrationNext Request and rate-limit errors
On this page
  1. Symptom
  2. Most likely causes
  3. Diagnostic checks
  4. Resolution
  5. When to retry
  6. Contact support
  7. Include this information