Organization settings API reference
Read, list, create, update, and delete an organization's key-value settings through the DALP Platform API, including the base currency, system address, target currencies, and account abstraction toggle.
Each organization keeps a set of key-value settings that configure how its platform behaves: the reporting base currency, the deployed system address, the fiat currencies that get on-chain price feeds, and whether account abstraction is enabled. Use these endpoints to read and write that store directly.
Reach for them when your integration manages organization configuration programmatically instead of through the Console. Each setting is scoped to the active organization, so you only ever see and change your own values.
The /settings path also hosts dedicated catalogs with richer schemas and their own pages: asset class definitions, instrument templates, and compliance templates. The endpoints below handle only the plain key-value store.
Endpoints
| Endpoint | Use it for |
|---|---|
GET /api/v2/settings | List settings with pagination, search, sorting, and facet counts. |
GET /api/v2/settings/{key} | Read one setting value by its key. |
POST /api/v2/settings | Create or update a setting value. |
DELETE /api/v2/settings/{key} | Delete a setting. |
Read responses use the DALP single-resource envelope with data and links.self. List responses use the collection envelope with data, meta, and pagination links. Delete responses return { "data": null }.
Set the participant and wallet context with the standard request headers before calling these endpoints. See Request headers.
Required roles
| Operation | Roles (any of) |
|---|---|
| Read, list | admin, owner, member |
| Create, update, delete | admin, owner |
Any authenticated member of the organization can read settings. Only administrators and owners can change or remove them.
Setting fields
List responses
GET /api/v2/settings returns a paginated collection. Each item in data contains these fields:
| Field | Type | Description |
|---|---|---|
key | string | The unique key that identifies the setting. |
value | string | The setting value, stored and returned as text. |
lastUpdated | string | Timestamp when the value was last written. |
Values are always strings. A setting that holds a list, such as the set of target currencies, stores a JSON-encoded array in value.
Read and upsert responses
GET /api/v2/settings/{key} and POST /api/v2/settings return a single-resource envelope with only value inside data:
{
"data": { "value": "EUR" },
"links": { "self": "/v2/settings/BASE_CURRENCY" }
}A key that has never been set returns "value": null.
Well-known keys
Some keys carry validation and behavior beyond a plain string write.
| Key | Expected value | Notes |
|---|---|---|
BASE_CURRENCY | An ISO 4217 currency code, such as EUR. | The currency used to express portfolio and statistics values. |
SYSTEM_ADDRESS | An Ethereum address (0x...), or an empty string. | The deployed system contract for the organization. |
TARGET_CURRENCIES | A JSON array of ISO 4217 codes, such as ["EUR","USD"]. | Currencies that get on-chain price feeds. Additive only; see below. |
AA_ENABLED | "true" or "false". | Whether account abstraction is enabled for the organization. One-way; see below. |
AA_WARN_DAYS | A positive integer as a string, such as "7". | Days before account-abstraction expiry to show a warning. Cannot be POST-upserted; delete and re-create to reset. |
AA_CRITICAL_DAYS | A positive integer as a string, such as "3". | Days before account-abstraction expiry to show a critical alert. Cannot be POST-upserted; delete and re-create to reset. |
The write schema accepts only BASE_CURRENCY, SYSTEM_ADDRESS, TARGET_CURRENCIES, and AA_ENABLED. POSTing any other key fails validation. The read and delete parameters accept all six keys above, so a request for an unknown key still returns a validation error rather than a not-found response.
List settings
GET /api/v2/settings returns the active organization's settings. The list supports pagination, global search across key and value, sorting by key (default) or lastUpdated, and filtering by key, value, or an lastUpdated date range. The value field is filterable but not sortable.
curl --globoff "https://your-platform.example.com/api/v2/settings?filter[key]=CURRENC&sort=key" \
-H "x-api-key: YOUR_API_KEY"{
"data": [
{
"key": "BASE_CURRENCY",
"value": "EUR",
"lastUpdated": "2026-01-01T00:00:00.000Z"
},
{
"key": "TARGET_CURRENCIES",
"value": "[\"EUR\",\"USD\"]",
"lastUpdated": "2026-01-01T00:00:00.000Z"
}
],
"meta": {
"total": 2,
"facets": {}
},
"links": {
"self": "/v2/settings?filter[key]=CURRENC&sort=key&page[offset]=0&page[limit]=50",
"first": "/v2/settings?filter[key]=CURRENC&sort=key&page[offset]=0&page[limit]=50",
"prev": null,
"next": null,
"last": "/v2/settings?filter[key]=CURRENC&sort=key&page[offset]=0&page[limit]=50"
}
}Read a setting
GET /api/v2/settings/{key} returns one value. A key that has never been set returns "value": null rather than an error, so a client can probe for a setting without handling a not-found case.
curl "https://your-platform.example.com/api/v2/settings/BASE_CURRENCY" \
-H "x-api-key: YOUR_API_KEY"{
"data": { "value": "EUR" },
"links": { "self": "/v2/settings/BASE_CURRENCY" }
}Create or update a setting
POST /api/v2/settings writes a value, creating the key if it does not exist. Send a key and a value.
curl -X POST "https://your-platform.example.com/api/v2/settings" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"key": "BASE_CURRENCY",
"value": "EUR"
}'{
"data": { "value": "EUR" },
"links": { "self": "/v2/settings/BASE_CURRENCY" }
}Target currencies are additive
TARGET_CURRENCIES drives on-chain price feeds, and a feed cannot be removed once it exists. Each write must therefore be a superset of the current set. You can add currencies, but a request that drops a previously enabled currency is rejected with DALP-0600. Every added currency must be supported by the configured exchange-rate provider. An unsupported code returns DALP-0601, which lists the offending codes.
curl -X POST "https://your-platform.example.com/api/v2/settings" \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"key": "TARGET_CURRENCIES",
"value": "[\"EUR\",\"USD\"]"
}'Account abstraction is one-way
AA_ENABLED can be turned on but not off. Once it is "true", a request to set it back to "false" returns DALP-0652. Enabling it also requires account abstraction to be enabled at the platform level first. Without that, the request returns DALP-0617.
Delete a setting
DELETE /api/v2/settings/{key} removes a setting. Deleting a key that does not exist returns DALP-0172.
curl -X DELETE "https://your-platform.example.com/api/v2/settings/SYSTEM_ADDRESS" \
-H "x-api-key: YOUR_API_KEY"{
"data": null
}