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

# Look up advanced account associations

> Requires a paid guild-scoped API key with advanced Alt Detection entitlement. Global keys are rejected. The target must belong to the selected guild. Supply Discord or Roblox IDs; raw IP lookup is rejected with HTTP 400 IP_LOOKUP_NOT_AVAILABLE. Results are review signals, not proof of common ownership or wrongdoing. Pro or Enterprise entitlement is required. resolved defaults to true.



## OpenAPI

````yaml api/openapi-v2.json GET /v2/alts/advanced
openapi: 3.1.0
info:
  title: Dock API v2
  version: 2.0.0
  summary: >-
    Discord to Roblox verification, account linking, alt detection, API key
    management, and bot configuration.
  description: >-
    API v2 is the recommended Dock API for new integrations. It uses consistent
    response envelopes, stable error codes, request IDs, rate-limit metadata,
    and first-class bulk endpoints.


    Use the API only for legitimate verification, moderation, analytics, and
    automation workflows. Do not scrape, bypass rate limits, rotate keys or IPs
    to avoid limits, resell the service, or use detection outputs as definitive
    proof of wrongdoing. By using Dock, you agree to the Terms of Service and
    Privacy Policy.
  termsOfService: https://docksys.xyz/terms
  contact:
    name: Dock Support
    url: https://docksys.xyz/discord
  license:
    name: Dock Terms of Service
    url: https://docksys.xyz/terms
servers:
  - url: https://api.docksys.xyz
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Lookups
    description: >-
      Read account links, verification status, and Premium alt detection
      results.
  - name: Bulk
    description: Run ordered batch lookups with per-item results.
  - name: Verification Sessions
    description: Create hosted verification sessions and read completion state.
  - name: Writes
    description: Create, update, or delete account-link data in the current API-key scope.
externalDocs:
  description: Privacy Policy
  url: https://docksys.xyz/privacy
paths:
  /v2/alts/advanced:
    get:
      tags:
        - Lookups
      summary: Look up advanced account associations
      description: >-
        Requires a paid guild-scoped API key with advanced Alt Detection
        entitlement. Global keys are rejected. The target must belong to the
        selected guild. Supply Discord or Roblox IDs; raw IP lookup is rejected
        with HTTP 400 IP_LOOKUP_NOT_AVAILABLE. Results are review signals, not
        proof of common ownership or wrongdoing. Pro or Enterprise entitlement
        is required. resolved defaults to true.
      operationId: getV2AdvancedAltLookup
      parameters:
        - $ref: '#/components/parameters/OptionalDiscordIdQuery'
        - $ref: '#/components/parameters/OptionalRobloxIdQuery'
        - name: guildId
          in: query
          required: true
          schema:
            type: string
            pattern: ^\d+$
          description: The guild authorized for this paid key.
        - name: resolved
          in: query
          required: false
          schema:
            type: boolean
            default: true
          description: Include resolved provider profiles.
      responses:
        '200':
          description: Advanced association lookup completed.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/V2SuccessEnvelope'
                  - type: object
                    properties:
                      data:
                        $ref: '#/components/schemas/AdvancedAltLookup'
        '400':
          description: >-
            Invalid or missing input; raw ip query values return
            IP_LOOKUP_NOT_AVAILABLE.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2ErrorEnvelope'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: >-
            PREMIUM_REQUIRED for global/unpaid keys; BASIC_ALT_REQUIRED or
            ADVANCED_ALT_REQUIRED for insufficient plan tier; FORBIDDEN for a
            target outside the authorized guild.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2ErrorEnvelope'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  parameters:
    OptionalDiscordIdQuery:
      name: discordId
      in: query
      required: false
      description: Discord user ID.
      schema:
        type: string
        pattern: ^\d+$
        example: '123456789012345678'
    OptionalRobloxIdQuery:
      name: robloxId
      in: query
      required: false
      description: Roblox user ID.
      schema:
        type: string
        pattern: ^\d+$
        example: '156319135'
  schemas:
    V2SuccessEnvelope:
      type: object
      required:
        - status
        - data
        - meta
        - timestamp
      properties:
        status:
          type: integer
          example: 200
        data:
          description: Endpoint-specific response payload.
          nullable: true
        meta:
          $ref: '#/components/schemas/V2Meta'
        timestamp:
          type: string
          format: date-time
    AdvancedAltLookup:
      allOf:
        - $ref: '#/components/schemas/AltLookup'
        - type: object
          required:
            - analysis
          properties:
            analysis:
              type: object
              properties:
                tier:
                  type: string
                  enum:
                    - advanced
                associationCount:
                  type: integer
                includesResolvedProfiles:
                  type: boolean
                historicalAnalysisAvailable:
                  type: boolean
    V2ErrorEnvelope:
      type: object
      required:
        - status
        - error
        - meta
        - timestamp
      properties:
        status:
          type: integer
          example: 429
        error:
          type: object
          required:
            - code
            - message
            - details
          properties:
            code:
              type: string
              example: RATE_LIMITED
            message:
              type: string
              example: Too many requests. Please retry after 1 seconds.
            details:
              nullable: true
              additionalProperties: true
        meta:
          $ref: '#/components/schemas/V2Meta'
        timestamp:
          type: string
          format: date-time
    V2Meta:
      type: object
      required:
        - requestId
        - version
        - rateLimit
      properties:
        requestId:
          type: string
          example: req_9d7b8c6a5f4e
        version:
          type: string
          example: 2.0.0
        rateLimit:
          $ref: '#/components/schemas/RateLimitMeta'
        tier:
          type: string
          enum:
            - free
            - premium
          description: Present on API-key authenticated developer endpoints.
      additionalProperties: true
    AltLookup:
      type: object
      required:
        - target
        - matches
        - risk
        - summary
        - resolved
      properties:
        target:
          type: object
          properties:
            discordId:
              type: string
              nullable: true
            robloxId:
              type: string
              nullable: true
            guildId:
              type: string
              nullable: true
        matches:
          type: array
          items:
            type: object
            properties:
              discordId:
                type: string
              robloxId:
                type: string
                nullable: true
              resolved:
                $ref: '#/components/schemas/ResolvedProfiles'
        risk:
          type: object
          properties:
            score:
              type: integer
              minimum: 0
              maximum: 100
              nullable: true
            severity:
              type: string
              example: MEDIUM
              nullable: true
            scoreType:
              type: string
              enum:
                - relative
            calibratedProbability:
              type: boolean
              enum:
                - false
            reviewRecommended:
              type: boolean
            reasons:
              type: array
              items:
                type: string
        summary:
          type: object
          properties:
            matchCount:
              type: integer
        resolved:
          type: boolean
        assessment:
          type: string
          description: >-
            Association assessment; inconclusive when evidence is insufficient
            or filtered.
        verifiedLinks:
          type: array
          items:
            type: object
            required:
              - discordId
              - robloxId
            properties:
              discordId:
                type: string
              robloxId:
                type: string
          description: >-
            Public, filtered evidence only. No raw network identifiers are
            returned.
        communitySignals:
          type: array
          items:
            type: object
            properties:
              kind:
                type: string
                enum:
                  - recent_guild_verification
              occurredAt:
                type: string
                format: date-time
                nullable: true
          description: >-
            Public, filtered evidence only. No raw network identifiers are
            returned.
    RateLimitMeta:
      type: object
      required:
        - limit
        - remaining
        - resetAt
        - retryAfter
        - scope
      properties:
        limit:
          type: integer
          nullable: true
        remaining:
          type: integer
          nullable: true
        resetAt:
          type: string
          format: date-time
          nullable: true
        retryAfter:
          type: integer
          nullable: true
        scope:
          type: string
          nullable: true
          example: api_key
        bucket:
          type: string
          nullable: true
          example: sessions_create
    ResolvedProfiles:
      type: object
      properties:
        roblox:
          nullable: true
          description: Expanded Roblox profile when requested and available.
          additionalProperties: true
        discord:
          nullable: true
          description: >-
            Expanded Discord profile or array of profiles when requested and
            available.
          additionalProperties: true
  responses:
    Unauthorized:
      description: The API key is missing, invalid, expired, revoked, or suspended.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V2ErrorEnvelope'
          example:
            status: 401
            error:
              code: INVALID_API_KEY
              message: Invalid API key.
              details: null
            meta:
              requestId: req_9d7b8c6a5f4e
              version: 2.0.0
              rateLimit:
                limit: null
                remaining: null
                resetAt: null
                retryAfter: null
                scope: null
            timestamp: '2026-05-07T16:30:00.000Z'
    RateLimited:
      description: >-
        Too many requests. Back off and retry after the `Retry-After` header or
        `meta.rateLimit.retryAfter` value.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
        X-RateLimit-Limit:
          description: Current short-window pacing limit.
          schema:
            type: integer
        X-RateLimit-Remaining:
          description: Remaining requests in the short-window bucket.
          schema:
            type: integer
        X-RateLimit-Reset:
          description: Unix timestamp when the short-window bucket resets.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V2ErrorEnvelope'
    InternalError:
      description: Dock could not complete the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/V2ErrorEnvelope'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Dock API key. Send `Authorization: Bearer <api key>`.'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.