Skip to main content
GET
/
api
/
v1
/
public
/
detections
/
alt
Alt Detection Lookup
curl --request GET \
  --url https://api.docksys.xyz/api/v1/public/detections/alt \
  --header 'Authorization: Bearer <token>'
{ "status": 200, "data": { "target": { "discordIds": [ "112233445566778899" ], "robloxIds": [ "7744112233" ], "guildId": "998877665544331122" }, "alts": [ { "discordId": "221133445566778800", "robloxId": "66442211" }, { "discordId": "556677889900112233", "robloxId": null } ], "risk": { "score": 72, "label": "medium", "breakdown": { "overall": 72, "alt": 40, "vpn": 90 } }, "summary": { "totalAlts": 2, "robloxAltIds": [ "66442211" ] }, "warnings": [ "Failed to decrypt login activity IP for 112233445566778899: [REDACTED_IP]" ] }, "timestamp": "2025-11-14T18:30:22.192Z", "version": "3.4.1", "requestsRemaining": 492, "ipRequestsRemaining": 98 }
Premium Only Bearer Auth Detection Intel
Use this endpoint to get a fast confidence readout on whether a user may be operating alternate accounts based on linked records and hashed login metadata.

Overview

This endpoint is designed for moderation, trust, and abuse-prevention flows where you need a quick alt-risk assessment.

Access rules

Only Bearer tokens tied to premium subscriptions or global keys can access this endpoint. All other keys receive a 403 Forbidden.

Quota visibility

Dock includes requestsRemaining and ipRequestsRemaining in the response envelope so you can monitor both standard quota usage and shared-IP quota pressure.

Input requirements

You must provide at least one of discordId, robloxId, or ip. Supplying multiple seeds improves match depth and association quality.
Non-global keys must include guildId so Dock can verify that the bot is in the guild and scope results to real members of that server.
For non-global keys, IDs that are not found inside the scoped guild are ignored during the search process.
If you are not using a global key, always include guildId. Without it, Dock cannot properly scope detection results for your tenant.

What the detection pipeline does

1

Seed and expand the search set

Dock starts with your provided IDs and expands the search using linked records from the shared User collection and the tenant-specific req.userModel.
2

Build the network footprint

collectNetworkFootprint decrypts stored IPs, hashes manual inputs, masks addresses, and appends decrypt or hash warnings where needed.
3

Find associations

findAssociations retrieves up to 150 Discord IDs that share hashed IPs with your targets, excluding the original seeds.
4

Merge and scope alt records

Alt candidates combine login matches and Roblox links, then re-check guild membership for non-global keys. Raw IP metadata is only exposed when permitted.
5

Score and trim the results

finaliseAltRecords calculates the final confidence score and label, then returns only the top 25 freshest matches.
Operator warnings are scrubbed of literal IPv4 and IPv6 strings before being returned. You only receive redacted tokens such as [REDACTED_IP].

Sample request and response

curl -G "https://api.docksys.xyz/api/v1/public/detections/alt" \
  -d "discordId=112233445566778899" \
  -d "guildId=998877665544331122" \
  -H "Authorization: Bearer dock_live_premium_xxxxxx"

Response highlights

data.target
object
required
The scoped target identity set used as the basis for detection, including discovered Discord IDs, Roblox IDs, and the active guild scope when present.
data.alts
object[]
required
Candidate alternate accounts returned after expansion, association matching, and freshness filtering.
data.risk
object
required
Final confidence metadata, including the overall score, risk label, and breakdown values used to summarize the result.
data.summary
object
required
Lightweight aggregate summary of the detection result, such as total alt count and Roblox alt IDs.
data.warnings
string[]
Non-fatal operator warnings generated during IP enrichment, hashing, or decryption steps. Literal IP values are redacted before being returned.
requestsRemaining
number
Remaining requests in the standard authenticated quota bucket.
ipRequestsRemaining
number
Remaining requests in the shared-IP quota bucket when shared-IP enforcement is active.

Failure behavior

Any failure in the detection pipeline, such as an enrichment outage, returns Dock’s standardized error envelope so clients can retry safely and handle errors consistently.

Good use cases

Moderation review

Investigate suspicious account clusters tied to the same login footprint or linked Roblox identities.

Abuse prevention

Use the confidence score and alt summary to support anti-fraud workflows, trust checks, and escalation tooling.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

discordId
string

Seed Discord ID to investigate. At least one of discordId, robloxId, or ip is required.

guildId
string

Guild scope required for non-global keys so the bot can confirm membership before sharing alt data.

Response

Successful response with alt matches, risk, and warning metadata.

status
enum<integer>

The HTTP status code of the response.

Available options:
200
data
object
timestamp
string<date-time>

The timestamp of the response in ISO 8601 format.

version
string

The API version.

Example:

"3.4.1"

requestsRemaining
integer | null

Number of standard requests remaining in the daily quota.

ipRequestsRemaining
integer | null

Remaining IP-linked quota shared across API keys detected on the same IP.