---
title: "Build creator fee enforcement transactions"
method: POST
path: "/api/v2/collections/{slug}/creator_fee_enforcement"
tags: ["Collection Endpoints"]
---

# Build creator fee enforcement transactions

`POST /api/v2/collections/{slug}/creator_fee_enforcement`

## Request

- Base URL: `https://api.opensea.io`
- URL: `https://api.opensea.io/api/v2/collections/{slug}/creator_fee_enforcement`
- Auth: API key in header `x-api-key` and OpenID Connect (`https://auth.opensea.io/.well-known/openid-configuration`, scopes: `write:collections`)
- TypeScript: <https://skmtc.dev/opensea/apis/opensea-api/docs/api/v2/collections/:slug/creator_fee_enforcement/post.ts> (a function with typed inputs; its response is checked against the schema)

Build the transactions that turn creator fee enforcement on or off for a collection, for the owner to sign and send. Turning it on sets OpenSea's transfer validator on the contract (the Creator earnings tab in Studio); turning it off removes it. Nothing changes until the transactions are mined. Only the collection owner can call this, and the contract must be owned onchain by that wallet. When enforcement is already in the requested state, transactions is empty and there is nothing to send. Check the result with GET /api/v2/collections/{slug}/creator_fee_enforcement.

## Path parameters

- `slug` string, required

## Request body

- SetCreatorFeeEnforcementRequest: Request body for turning creator fee enforcement on or off
  - `enabled` boolean, required: true sets OpenSea's transfer validator on the contract so creator fees are enforced. false removes the validator.

## Response `200`

Transactions to sign

- CollectionTransactionsResponse: Ready-to-sign transactions. Send them in order from the address in each one's from field.
  - `transactions` CollectionTransactionResponse[], required: Transactions to send, in order. Empty when nothing needs to change onchain.
    - `chain` string, required: Chain identifier
    - `data` string, required: Encoded transaction data (hex)
    - `from` string, required: Address the transaction must be sent from: the contract's onchain owner. Sent from any other address it reverts.
    - `to` string, required: Transaction target contract address
    - `value` string, required: Transaction value in wei

## Other responses

- `400`: For error reasons, review the response data.
- `401`: Invalid or missing API key
- `403`: Wallet token lacks permission for this request
- `404`: Resource not found
- `409`: Conflict
- `500`: Internal server error. Please open a support ticket so OpenSea can investigate.

## Changes

- **2026-11-03** `2c7935d84f90`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/opensea/apis/opensea-api/changes/api/v2/collections/:slug/creator_fee_enforcement/post.md)

---

[API](https://skmtc.dev/opensea/apis/opensea-api.md) - [All operations](https://skmtc.dev/opensea/apis/opensea-api/llms.txt) - [OpenAPI document](https://skmtc.dev/opensea/apis/opensea-api/revisions/2c7935d84f90?raw)
