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

# App Configuration

> Returns both system URLs and social media URLs configuration.

Retrieve all app configuration settings including system URLs and social media URLs.

This endpoint returns the complete configuration that mobile apps need to render
links, show support information, and display social media connections.

## Response

The response includes two main configuration objects:

* **systemUrls**: Legal and support-related URLs
  * `termsAndConditions`: Terms and conditions page URL
  * `privacyPolicy`: Privacy policy page URL
  * `faqs`: Frequently asked questions page URL
  * `supportEmail`: Customer support email address

* **socialMediaUrls**: Social media profile URLs
  * `facebook`: Facebook page URL
  * `instagram`: Instagram profile URL
  * `linkedin`: LinkedIn company page URL
  * `twitter`: Twitter/X profile URL

## Usage

This endpoint is typically called once when the app starts to cache the configuration
locally. The URLs are displayed in:

* Settings screens
* About pages
* Footer links
* Share dialogs
* Contact support flows

## Example

### Request

```bash cURL theme={null}
curl -X GET 'https://api.handauncle.com/app/config' \
  -H 'Accept: application/json'
```

```javascript JavaScript theme={null}
const response = await fetch('https://api.handauncle.com/app/config', {
  method: 'GET',
  headers: {
    'Accept': 'application/json'
  }
});

const config = await response.json();
console.log('System URLs:', config.data.systemUrls);
console.log('Social URLs:', config.data.socialMediaUrls);
```

```kotlin Kotlin/Android theme={null}
val client = OkHttpClient()
val request = Request.Builder()
    .url("https://api.handauncle.com/app/config")
    .get()
    .build()

val response = client.newCall(request).execute()
val config = JSONObject(response.body?.string())
```

### Response

```json theme={null}
{
  "success": true,
  "data": {
    "systemUrls": {
      "termsAndConditions": "https://www.handauncle.com/terms-and-conditions",
      "privacyPolicy": "https://www.handauncle.com/privacy-policy",
      "faqs": "https://www.handauncle.com/terms-and-conditions",
      "supportEmail": "hello@handauncle.com"
    },
    "socialMediaUrls": {
      "facebook": "https://facebook.com/handauncle",
      "instagram": "https://instagram.com/handauncle",
      "linkedin": "https://www.linkedin.com/company/handauncle",
      "twitter": "https://twitter.com/handauncle"
    }
  },
  "meta": {
    "timestamp": "2025-12-10T14:32:18.445Z",
    "request_id": "req_674e2f4a8c1b3d5e7f9a2b4c"
  }
}
```

## Configuration Management

To update these URLs, administrators can use the dedicated update endpoints:

* [Update System URLs](/api-reference/endpoint/app-config-update-system-urls)
* [Update Social Media URLs](/api-reference/endpoint/app-config-update-social-urls)

Both update endpoints require the `BACKEND_SECRET` for authentication.


## OpenAPI

````yaml GET /app/config
openapi: 3.1.0
info:
  title: Handa Uncle API
  version: 1.0.0
  description: Public specification for the Handa Uncle web and mobile APIs.
  contact:
    name: Handa Uncle Engineering
    email: hello@handauncle.com
servers:
  - url: https://handauncle-backend-prod-205012263523.asia-south1.run.app
    description: Prod API base (Cloud Run)
  - url: https://api.handauncle.com
    description: Production
  - url: https://staging-api.handauncle.com
    description: Staging
  - url: http://localhost:8080
    description: Local development
security: []
tags:
  - name: Mobile App
    description: Endpoints used by the native Handa Uncle app.
  - name: Platform
    description: Cross-service operational endpoints.
  - name: Auth
    description: Authentication endpoints handled by the backend adapter.
  - name: AI
    description: LLM chat endpoints supporting streaming and device-auth guests.
  - name: OTP
    description: Phone OTP lifecycle powered by Exotel.
  - name: Webhooks
    description: Server-to-server hooks invoked by Auth0.
  - name: Conversations
    description: Authenticated user conversation management.
  - name: Chat Share
    description: Create, manage, and consume shared conversations.
  - name: Files
    description: Upload, list, and delete user files.
  - name: Prompt management
    description: Admin and public APIs for managing masked pre-prompts.
  - name: User Profile
    description: Profile card collection and user data for personalized AI responses.
  - name: Visual Embeds
    description: Manage visual embed images that attach to AI chat responses.
  - name: Second Opinion
    description: Admin and public APIs for Second Opinion suggestion cards.
  - name: Profile Cards
    description: >-
      APIs for managing profile card questions used in onboarding and
      personalization.
paths:
  /app/config:
    get:
      tags:
        - Mobile App
      summary: Get all app configurations
      description: Returns both system URLs and social media URLs configuration.
      operationId: getAppConfig
      responses:
        '200':
          description: Configuration data returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppConfigResponseEnvelope'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    AppConfigResponseEnvelope:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - true
        data:
          $ref: '#/components/schemas/AppConfigData'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
      required:
        - success
        - data
        - meta
      example:
        success: true
        data:
          systemUrls:
            termsAndConditions: https://www.handauncle.com/terms
            privacyPolicy: https://www.handauncle.com/privacy
            faqs: https://www.handauncle.com/faqs
            supportEmail: hello@handauncle.com
          socialMediaUrls:
            facebook: https://www.facebook.com/handauncle
            instagram: https://www.instagram.com/handauncle
            linkedin: https://www.linkedin.com/company/handauncle
            twitter: https://twitter.com/handauncle
        meta:
          requestId: req_674e2f4a8c1b3d5e7f9a2b4c
          timestamp: '2025-12-10T14:32:18.445Z'
    AppConfigData:
      type: object
      properties:
        systemUrls:
          $ref: '#/components/schemas/SystemUrls'
        socialMediaUrls:
          $ref: '#/components/schemas/SocialMediaUrls'
      required:
        - systemUrls
        - socialMediaUrls
      example:
        systemUrls:
          termsAndConditions: https://www.handauncle.com/terms
          privacyPolicy: https://www.handauncle.com/privacy
          faqs: https://www.handauncle.com/faqs
          supportEmail: hello@handauncle.com
        socialMediaUrls:
          facebook: https://www.facebook.com/handauncle
          instagram: https://www.instagram.com/handauncle
          linkedin: https://www.linkedin.com/company/handauncle
          twitter: https://twitter.com/handauncle
    ResponseMeta:
      type: object
      properties:
        timestamp:
          type: string
          format: date-time
        requestId:
          type: string
          description: Server generated correlation identifier.
      required:
        - timestamp
        - requestId
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - false
        error:
          $ref: '#/components/schemas/ErrorObject'
        meta:
          $ref: '#/components/schemas/ResponseMeta'
      required:
        - success
        - error
        - meta
    SystemUrls:
      type: object
      properties:
        termsAndConditions:
          type: string
          format: uri
        privacyPolicy:
          type: string
          format: uri
        faqs:
          type: string
          format: uri
        supportEmail:
          type: string
          format: email
      required:
        - termsAndConditions
        - privacyPolicy
        - faqs
        - supportEmail
      example:
        termsAndConditions: https://www.handauncle.com/terms
        privacyPolicy: https://www.handauncle.com/privacy
        faqs: https://www.handauncle.com/faqs
        supportEmail: hello@handauncle.com
    SocialMediaUrls:
      type: object
      properties:
        facebook:
          type: string
          format: uri
        instagram:
          type: string
          format: uri
        linkedin:
          type: string
          format: uri
        twitter:
          type: string
          format: uri
      required:
        - facebook
        - instagram
        - linkedin
        - twitter
      example:
        facebook: https://www.facebook.com/handauncle
        instagram: https://www.instagram.com/handauncle
        linkedin: https://www.linkedin.com/company/handauncle
        twitter: https://twitter.com/handauncle
    ErrorObject:
      type: object
      properties:
        message:
          type: string
          description: Human-readable error message describing the issue.
          example: Please enter a valid 10-digit phone number (e.g., 9876543210)
        code:
          type: string
          description: Error code for programmatic handling.
          example: VALIDATION_ERROR
        details:
          type: array
          description: >-
            Array of field-specific validation errors (for VALIDATION_ERROR
            responses).
          items:
            type: object
            properties:
              field:
                type: string
                description: Field name that failed validation.
                example: phone
              message:
                type: string
                description: Specific validation error message for this field.
                example: Please enter a valid 10-digit phone number (e.g., 9876543210)
            required:
              - field
              - message
      required:
        - message
  responses:
    InternalError:
      description: Unexpected server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'

````