---
title: "Block user"
method: POST
path: "/api/user/blocks"
tags: ["User"]
---

# Block user

`POST /api/user/blocks`

Persist a block. Body must include blockedUserId or handle (User.id or display handle; empty strings rejected).

## Request body

- union
  - object
    - `blockedUserId` string, required
    - `handle` string
  - object
    - `blockedUserId` string
    - `handle` string, required

## Response `201`

{ success, data: { id, blockerId, blockedId, createdAt } }

## Other responses

- `400` — { success: false, error, code: VALIDATION_ERROR } — missing/empty blockedUserId or handle, or self-block
- `401` — { success: false, error, code: UNAUTHORIZED }
- `404` — { success: false, error, code: NOT_FOUND } — blockedUserId/handle did not resolve
- `500` — { success: false, error, code: INTERNAL_ERROR }

---

[API](https://skmtc.net/d-sports-ecosystem/apis/d-sports-api.md) · [All operations](https://skmtc.net/d-sports-ecosystem/apis/d-sports-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/d-sports-ecosystem/d-sports-api/revisions/cbc84b00330e/schema)
