---
title: "Open Data Chat"
method: GET
path: "/api/v1/apps/{app_id}/data-chat"
tags: ["apps-data-chat"]
---

# Open Data Chat

`GET /api/v1/apps/{app_id}/data-chat`

Open (or create) the caller's app-data-chat thread.

## Path parameters

- `app_id` string, uuid, required

## Query parameters

- `embed_host_app_id` string, uuid, nullable

## Response `200`

Successful Response

- AppDataChatRead — The caller's app-data-chat thread id. Deliberately thin — the message history for this chat is read through the generic `domains/chats` endpoints, so nothing here duplicates that shape. Those endpoints gate an `app_data` chat TWICE (`domains/chats/api/endpoints.py`): `_require_personal_chat_owner` makes it creator-only (404, never 403), and `_require_chat_perm` additionally requires the caller's level on `(APP, Chat.app_id)`. Not the branch-chat gate an `app` chat gets — an `app_data` chat carries the app FK directly and has no branch — and STRICTER than it: an app grant alone never opens another member's thread, because `extra_metadata.widgets` holds rows materialised under the creator's RLS.
  - `chat_id` string, uuid, required
  - `entity_names` string[]

## Other responses

- `422` — Validation Error

## Changes

> 35 revisions in range; 1 not diffed.

- **2026-09-09** `1d0069006494` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/netter/apis/dmi-backend/changes/api/v1/apps/:app_id/data-chat/get.md)

---

[API](https://skmtc.dev/netter/apis/dmi-backend.md) · [All operations](https://skmtc.dev/netter/apis/dmi-backend/llms.txt) · [OpenAPI document](https://skmtc.dev/netter/apis/dmi-backend/revisions/77d4fd215b57?raw)
