> ## Documentation Index
> Fetch the complete documentation index at: https://docs.opigno.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Application settings

> Retrieve client-specific application settings such as the logo for the calling app

Settings are configured per client app in the Opigno back office. When a setting has not been configured for the calling app, the API transparently falls back to the global default.

## How the calling app is identified

The query uses the access token to identify the caller. You do **not** need to pass any identifier — the calling app (and therefore the hierarchy scope it belongs to) is derived from the token.

```mermaid theme={null}
flowchart LR
  A["Mobile app"] -- "Token" --> B["Opigno API"]
  B --> C{"Token contains<br/>hierarchy level?"}
  C -- "Yes" --> D["Return related settings"]
  C -- "No" --> E["Return default settings"]
```

<Info>
  The same query also works with admin-scope tokens and authenticated user sessions; in those cases there is no app-specific scope, so the default settings are returned.
</Info>

<Snippet file="authentication-prerequisites.mdx" />

## Available query

### `getMobileAppSettings`

Returns the application settings based on hierarchy-level in auth token.

<CodeGroup>
  ```graphql Query theme={null}
  query getMobileAppSettings {
    getMobileAppSettings {
      logoUrl
    }
  }
  ```

  ```json Example response theme={null}
  {
    "data": {
      "getMobileAppSettings": {
        "logoUrl": "https://example.opigno.com/sites/default/files/2026-04/mobile-logo.svg"
      }
    }
  }
  ```

  ```json Response when no logo is configured theme={null}
  {
    "data": {
      "getMobileAppSettings": {
        "logoUrl": null
      }
    }
  }
  ```
</CodeGroup>

## Response

<ResponseField name="getMobileAppSettings" type="MobileAppSettings!" required>
  The settings resolved for the calling client app.

  <Expandable title="MobileAppSettings">
    <ResponseField name="logoUrl" type="String">
      Absolute URL of the configured logo, or `null` when no logo has been uploaded for either the calling app or the default scope.

      The file is stored as a permanent SVG in the Opigno file system and is served from the same origin as other Opigno media assets.
    </ResponseField>
  </Expandable>
</ResponseField>

## Resolution rules

The hierarchy scope used to look up the settings is determined as follows:

<Steps>
  <Step title="Identify the calling app">
    Opigno reads the calling app from the access token.

    * **App-scoped token** — the caller is identified as a specific client app.
    * **Admin-scope token or user session** — there is no app-specific scope, and the resolution skips straight to step 3.
  </Step>

  <Step title="Look up app-level settings">
    If the calling app has a hierarchy level assigned in the back office, Opigno reads the settings configured for that level.
  </Step>

  <Step title="Fall back to default settings">
    When no logo is configured at the app's level (or there is no app-specific scope at all), Opigno returns the global default settings configured by the platform administrator.
  </Step>
</Steps>

This means a single global logo configured in the back office is enough for most setups; per-app overrides are optional and useful only when you ship multiple branded apps from the same Opigno tenant.

## Related operations

<CardGroup cols={2}>
  <Card title="Firebase Integration" icon="bell" href="/OpignoEnterpriseAPI/FirebaseIntegration">
    Register the device for push notifications after sign-in.
  </Card>

  <Card title="OAuth2 Authorization" icon="key" href="/OpignoEnterpriseAPI/OAuth2Authorization">
    Obtain the access token used to identify the calling client app.
  </Card>
</CardGroup>
