# Get language, time zone and privacy

Source: https://workroad.app/docs/api/get-preferences

`GET https://workroad.app/api/v1/settings/preferences`

The app language, the account's time zone and leaderboard visibility.

- MCP tool: `getPreferences` on `https://workroad.app/api/mcp`
- Required scopes: settings:view
- Test mode: `GET https://workroad.app/api/test/v1/settings/preferences` checks the request and returns the example response without changing anything.

## Response

`200` OK

- `data`: object, required
  - `locale`: one of `"en"`, `"de"`, `"es"`, `"fr"`, `"it"` or null, required. The language of the app, emails, notifications and calendar feeds. Null until the user picks one; the app then follows the browser.
  - `timeZone`: string or null, required. The IANA time zone the account's days and due dates use, such as `Europe/London`. Null until the app has captured one; the API then uses UTC.
  - `showOnLeaderboards`: boolean, required. Whether the user appears on the global task and streak leaderboards and shows study stats on their profile.

### Example

```json
{
  "data": {
    "locale": "en",
    "timeZone": "Europe/London",
    "showOnLeaderboards": true
  }
}
```

## Errors

Every error has the body `{ "error": { "code", "message", "details" } }`.

- `400`: Invalid request body or query
- `401`: Missing, invalid, disabled or expired API key
- `403`: The API key lacks the required scope
- `404`: No endpoint exists at this path.
- `405`: Method not allowed. Use a method from the Allow header.
- `429`: Rate limit exceeded. Wait for Retry-After before retrying. The rate-limit headers are absent when the key's own limiter rejected the request before the per-endpoint bucket check ran.
- `500`: Internal server error
