Get Setup Effective Fees
Returns a setup's effective fees per entity (owner, platform owner, node) as they were last pushed to the setup's fee contract: the resolved rates, the scope level and fee row each rate came from, the per-category overrides, and whether that push is still pending, confirmed on-chain or failed. The node must be inside your API key's node subtree and the setup must belong to the node.
A setup gets these entries when its contracts are deployed, and they are rewritten by every later fee push to the setup. A setup that is not deployed answers items: []. To preview what would apply without a deployment, use Get Effective Fee. See Fees Overview.
Required permission: fee:view
Request
GET /v2/admin/fees/nodes/{node_id}/setups/{setup_id}/effective
Parameters
| Name | Type | In | Description |
|---|---|---|---|
node_id | string | path | Required. Node that owns the setup |
setup_id | string | path | Required. Setup ID |
Headers
| Name | Description |
|---|---|
Authorization | Required. Bearer <access_token> |
Example
curl --request GET \
--url '{{baseUrl}}/v2/admin/fees/nodes/6a4bef2b1e781b11c22e9707/setups/6a552db09c6088e126a4be87/effective' \
--header 'Authorization: Bearer <access_token>'
Response
{
"items": [
{
"entity": 3,
"value": {
"tokenization": {
"asset_tokenization": { "value": "3.5" },
"tokenized_asset_sales": { "value": "1" },
"management": { "value": "0.5" }
},
"secondary_market": {
"buy_order": { "value": "1" },
"sell_order": { "value": "1" },
"otc_sale": { "value": "1.5" }
},
"lending": {
"borrower": { "value": "0" },
"lending": { "value": "0" },
"liquidation": { "value": "0" }
}
},
"sources": {
"asset_tokenization": { "level": "setup", "fee_id": "6a5530c19c6088e126a4be9a" },
"tokenized_asset_sales": { "level": "setup", "fee_id": "6a5530c19c6088e126a4be9a" },
"management": { "level": "setup", "fee_id": "6a5530c19c6088e126a4be9a" },
"buy_order": { "level": "node_network", "fee_id": "680be1f55d63bcee848d38e7" },
"sell_order": { "level": "node_network", "fee_id": "680be1f55d63bcee848d38e7" },
"otc_sale": { "level": "node_network", "fee_id": "680be1f55d63bcee848d38e7" },
"borrower": { "level": "default", "fee_id": "680be1f55d63bcee848d38e5" },
"lending": { "level": "default", "fee_id": "680be1f55d63bcee848d38e5" },
"liquidation": { "level": "default", "fee_id": "680be1f55d63bcee848d38e5" }
},
"categories": [
{
"id": "667e9251ca818a2138ed4915",
"int_id": 111,
"path": "1.4.108.111",
"is_leaf": true,
"name": { "en": "Residential", "tr": "Konut" },
"value": {
"tokenization": {
"asset_tokenization": { "value": "2" },
"tokenized_asset_sales": { "value": "1" },
"management": { "value": "0.5" }
}
}
}
],
"status": "confirmed",
"transaction_hash": "0x9f2c1b7e4a0d3c5b6e8f1a2b3c4d5e6f708192a3b4c5d6e7f8091a2b3c4d5e6f",
"updated_at": "2026-10-02T09:14:27.512Z"
}
]
}
Response Fields
| Field | Type | Description |
|---|---|---|
items | array | One entry per entity the setup has effective fees for |
items[].entity | integer | 1 owner, 2 platform owner, 3 node |
items[].value | object | The rates the contract holds, grouped as tokenization, secondary_market and lending |
items[].value.<group>.<leaf>.value | string | Rate in percent. A leaf that no scope priced is omitted |
items[].sources | object | Per rate (keyed by leaf name, for example buy_order): where it came from. A rate that no scope priced has no entry |
items[].sources.<leaf>.level | string | Scope level that supplied the rate: setup, node_network, node, network or default |
items[].sources.<leaf>.fee_id | string | Fee row that supplied the rate |
items[].categories | array | Per-category overrides pushed for this entity |
items[].categories[].id | string | Category ID |
items[].categories[].int_id | integer | Category numeric ID |
items[].categories[].path | string | Category path |
items[].categories[].is_leaf | boolean | Whether the category is a leaf |
items[].categories[].name | object | Localized category name (en, tr). Omitted when the category could not be read |
items[].categories[].value | object | Rates for this category, same shape as value |
items[].status | string | pending (push sent, not confirmed yet; the contract may still hold the previous rates), confirmed (the contract holds these rates) or failed (the push failed; the contract still holds the previous rates) |
items[].transaction_hash | string | Hash of the transaction that wrote these rates. Empty while none is known |
items[].updated_at | string | When this entry last changed |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | 10015 | Validation failed — see details |
| 400 | 10016 | node_id or setup_id is not a 24-character hex ID |
| 400 | 10001 (domain 2) | Node not found, or the setup does not belong to the node |
| 403 | 10005 (domain 2) | The node is outside your API key's node subtree |
| 500 | 10000 | Unexpected server error |
See Errors for the error format and common codes.