# Get a company setting

Source: https://api-docs.magicdoor.com/api-reference/settings/get-company-setting

Reads the value stored at company level for one settings type, or MagicDoor's built-in default when the company has never saved one. Overrides on portfolios, properties, units and leases are ignored — this is the base of the stack, not the effective value. Requires the `settings:read` permission.

`GET https://services.magicdoor.com/settings/company-portal/settings/{settingsType}/company`

**Authentication:** bearer token in the `Authorization` header, as `Bearer <token>`.

## Path parameters

- `settingsType` (enum<string>, required) — Which family of settings to act on. Matched case-insensitively against the registered settings types. One of: `achpaymentprocessing`, `agentschat`, `associationviolation`, `autopayincentives`, `chat`, `chatai`, `chatailease`, `chataileaserenewal`, `chataileaserentersinsurance`, `chataimaintenancerequests`, `chataitranslation`, `communications`, `company`, `contribution`, `depositpayment`, `distribution`, `email`, `emailnotification`, `latefees`, `leasechartofaccount`, `leaseinvoice`, `leaserenewal`, `leaserentersinsurance`, `maintenancerequest`, `maintenancerequestrunbook`, `managementfee`, `outgoingpayments`, `property`, `rentalapplication`, `rentalapplicationbilling`, `rentalapplicationchartofaccount`, `rentalapplicationgeneral`, `rentalapplicationpayment`, `rentalapplicationpaymentaccount`, `rentalapplicationquestionnaire`, `rentalapplicationscreening`, `rentpayment`, `rentpaymentfailurefee`, `rentpaymentnotification`, `rentpaymentprocessingfees`, `syndication`, `tenantautopayfailednotification`, `tenantpaymentreminder`, `text`, `workorder`. Example: `property`.

## Example request

```bash
curl --request GET \
  --url 'https://services.magicdoor.com/settings/company-portal/settings/property/company' \
  --header 'Authorization: Bearer <token>'
```

## Responses

### 200 — The company-level value, or the built-in default.

- `…settings properties` (object) — The properties of the chosen settings type, spread across the top level of the response rather than nested. The example below is the `property` settings type.
- `level` (enum<string>) — The kind of entity this stored row is attached to. Present only when a company-level row is stored; absent when the response is the built-in default. One of: `company`, `portfolio`, `property`, `unit`, `lease`.
- `levelId` (string) — The id of the entity this stored row is attached to. At company level this is the company's own id. Present only when a company-level row is stored; absent when the response is the built-in default.
- `groupId` (string) — Identifies rows written together by a single multi-target override call. Absent on rows written on their own. Present only when a company-level row is stored; absent when the response is the built-in default.
- `source` (enum<string>) — Which level the returned value came from. Sent as the JSON value `null` when nothing is stored and the response is the built-in default. Note that this field is capitalised (`Company`, `Property`), unlike `level` elsewhere in the API. One of: `Company`, `Portfolio`, `Property`, `Unit`, `Lease`.
- `sourceId` (string) — The id of the entity the returned value is stored against, matching `source`. Sent as the JSON value `null` when the response is the built-in default.
- `isDefault` (boolean, required) — `true` when no setting is stored anywhere the endpoint looked and the response is MagicDoor's built-in default for this settings type.

```json
{
  "reserve": 350,
  "ownerApprovalLimit": 500,
  "vendorApprovalLimit": 250,
  "level": "company",
  "levelId": "1830472847398404096",
  "source": "Company",
  "sourceId": "1830472847398404096",
  "isDefault": false
}
```

### 401 — The access token is missing, expired, or invalid.

### 403 — The caller does not hold the `settings:read` permission.

### 404 — No settings type is registered under the `settingsType` in the URL.

```json
{
  "type": "https://httpstatuses.com/404",
  "title": "Not Found",
  "status": 404,
  "detail": "Unknown settings type: propertysettings",
  "instance": "/company-portal/settings/propertysettings/company",
  "traceId": "0HN7GK9C2M4PQ"
}
```

MagicDoor settings are layered. A company saves one base value per settings type, then optionally overrides it for individual portfolios, properties, units or leases. This endpoint reads **only the company-level row**. To see what actually applies to one property or lease, use [Resolve a setting](https://api-docs.magicdoor.com/api-reference/settings/resolve-setting.md).
