---
title: "Block or unblock an affiliate"
method: POST
path: "/admin/affiliates/{address}/blocked"
tags: ["Admin"]
---

# Block or unblock an affiliate

`POST /admin/affiliates/{address}/blocked`

## Request

- Base URL: `https://api.testnet.rise.trade`
- URL: `https://api.testnet.rise.trade/admin/affiliates/{address}/blocked`
- Auth: none required
- TypeScript: <https://skmtc.dev/rise/apis/risex-rest-api/docs/admin/affiliates/:address/blocked/post.ts> (a function with typed inputs; its response is checked against the schema)

Block or unblock an affiliate (internal). Blocking sets their tier to NONE (stops future accrual immediately, bypassing the one-tier-per-call downgrade cap on UpdateAffiliate — this is a distinct emergency action) and locks them out of their own dashboard/referrals/payout-history/claim endpoints. Existing CLAIMABLE/PAID payouts are unaffected. Unblocking clears the lock but does not restore their prior tier.

## Path parameters

- `address` string, required

## Request body

- AffiliateServiceSetAffiliateBlockedBody
  - `blocked` boolean
  - `reason` string: Why this affiliate is being blocked, e.g. an incident link or fraud case ID. Required when blocked=true, ignored when unblocking. Stored as-is (admin-only surface) and shown back on the affiliate's admin row.

## Response `200`

A successful response.

- ApiSetAffiliateBlockedResponse
  - `affiliate` ApiAffiliateAdminDto: AffiliateAdminDto is one affiliates row as seen by the admin listing — address as "0x"-prefixed hex, unlike the internal []byte storage.
    - `address` string
    - `name` string
    - `tier_id` integer
    - `qualified` boolean
    - `rolling_30d_volume` string
    - `updated_at` string
    - `below_tier_since` string: RFC3339 UTC; set when the daily job has frozen this affiliate below their current tier instead of auto-downgrading (unset = not flagged).
    - `blocked_at` string: RFC3339 UTC; set when an admin has blocked this affiliate (unset = not blocked).
    - `blocked_reason` string

## Other responses

- `default`: An unexpected error response.

## Changes

- **2026-11-03** `98eabcd6a6ad`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rise/apis/risex-rest-api/changes/admin/affiliates/:address/blocked/post.md)

---

[API](https://skmtc.dev/rise/apis/risex-rest-api.md) - [All operations](https://skmtc.dev/rise/apis/risex-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rise/apis/risex-rest-api/revisions/98eabcd6a6ad?raw)
