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

# Shield

> Check Roblox users against the global Shield flagged list.

These endpoints let you check whether a Roblox user is on the [Technified Shield](/shield/overview) flagged list. The list itself is maintained centrally by Technified administrators, so a guild API key can only read it. Adding and removing flags is not available through the guild API.

<Note>
  If you run the Roblox integration, enable `SYNC_SHIELD` instead of calling these endpoints yourself. See [How Shield works](/shield/how-it-works).
</Note>

## Check one user

```http theme={null}
GET /shield/check/:robloxId
```

<ParamField path="robloxId" type="number" required>
  The Roblox user ID to check.
</ParamField>

<ResponseField name="data.flagged" type="boolean" />

<ResponseField name="data.flag" type="object">
  Present only when `flagged` is `true`.

  <Expandable title="properties">
    <ResponseField name="roblox_id" type="string" />

    <ResponseField name="roblox_username" type="string" />

    <ResponseField name="reason" type="string" />

    <ResponseField name="flagged_by" type="string" />

    <ResponseField name="source" type="string" />

    <ResponseField name="category" type="string" />

    <ResponseField name="flagged_at" type="number" />
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.technified.xyz/api/v1/shield/check/261" \
    -H "X-API-Key: $TECHNIFIED_API_KEY"
  ```
</RequestExample>

<ResponseExample>
  ```json Flagged theme={null}
  {
    "status": "success",
    "code": 200,
    "data": {
      "flagged": true,
      "flag": {
        "roblox_id": "261",
        "roblox_username": "Shedletsky",
        "reason": "Condo participation",
        "category": "condo",
        "source": "technified",
        "flagged_at": 1746712921
      }
    }
  }
  ```

  ```json Not flagged theme={null}
  {
    "status": "success",
    "code": 200,
    "data": { "flagged": false }
  }
  ```
</ResponseExample>

<Tip>
  When you call this with a guild key and the user is flagged, Technified also posts a Shield flag kick entry to your Discord log channel if **Shield Flag Kick** logging is enabled. See [How Shield works](/shield/how-it-works#log-shield-kicks).
</Tip>

## Check many users

Check up to 200 Roblox IDs in one call.

```http theme={null}
POST /shield/batch
```

<ParamField body="roblox_ids" type="number[]" required>
  Up to 200 Roblox user IDs.
</ParamField>

<ResponseField name="data.flagged" type="array">
  Only the flagged users from your list are returned, each with `roblox_id`, `roblox_username`, `reason`, `source`, and `category`. IDs that are not flagged are simply absent.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.technified.xyz/api/v1/shield/batch" \
    -H "X-API-Key: $TECHNIFIED_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{ "roblox_ids": [261, 156, 1] }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "status": "success",
    "code": 200,
    "data": {
      "flagged": [
        {
          "roblox_id": "261",
          "roblox_username": "Shedletsky",
          "reason": "Condo participation",
          "source": "technified",
          "category": "condo"
        }
      ]
    }
  }
  ```
</ResponseExample>
