These endpoints are available only when Murph is enabled for the caller’s
account.
Set a conversation scope
POST /api/v2/murph/chat
The first message of a conversation accepts an optional scope. Omit it —
or send scopeType: "customer" — for an account-scoped conversation. Send
scopeType: "advertiser" with the advertiser’s id in scopeId to scope the
conversation to one advertiser.
curl
Request fields
The scope is honored only on the first message of a conversation — it is
set once at creation and is immutable. Sending
scopeType/scopeId on a
later turn of an existing conversation has no effect; the stored scope always
wins. To work in a different scope, start a new conversation.
Read the scope
GET /api/v2/murph/conversations
Every conversation summary carries its scope, so you can group or filter
conversations by the account or advertiser they belong to. The
single-conversation endpoint, GET /api/v2/murph/conversations/{conversationUid},
returns the same fields.
Response (excerpt)
Search conversation history
Add a literalsearch term to the conversation-list endpoint to find a prior
Murph room by title, participant, or user/assistant transcript text:
curl
Scope and access
Conversation scope is contextual: it organizes your conversations and frames Murph’s responses around the chosen node. It does not change what a conversation can access. Every Murph conversation is isolated by thecustomer_id of the
authenticated caller, and that account remains the access boundary regardless of
the conversation’s scope — choosing an advertiser narrows the conversation’s
focus, not its permissions.
Internal TARS project and initiative scope
Authenticated TARS PM-seat surfaces can also bind a conversation to one Linear project or initiative. This internal scope is selected by the trusted host and is not supplied through the publicscopeType or scopeId fields above. TARS
uses it to read the canonical investment recommendation and to ensure a staged
PM investment decision can be confirmed only for the same accountable human,
project or initiative, and proposal targets that were originally displayed.
The scope is preserved with a pending confirmation so an approved replay cannot
drift to a newly selected project or initiative. Admin, ordinary TARS chat, and
Slack therefore produce the same durable decision semantics even though the
server records their provenance separately. This binding narrows the PM
conversation context; it grants no Build Room nomination, admission, launch, or
funding authority.
Errors
400 VALIDATION_ERROR—scopeTypeis notcustomeroradvertiser, orscopeIdexceeds 120 characters.401 UNAUTHORIZED— missing or invalid bearer token.403 FORBIDDEN— Murph is not enabled for the caller’s account.
Related
Ask Murph
How Murph works as the in-product assistant.
Murph user preferences
Set Murph’s default language and read display preferences.