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

# private/send_concierge_message

> Sends a plain-text message, not blank and at most 500 characters, to the concierge and returns it. Each wallet has one private conversation with the concierge: the caller's messages and the concierge's replies arrive live on the {wallet}.concierge channel. The text must not contain control characters other than newlines, or bidi override characters (U+202A to U+202E and U+2066 to U+2069). The concierge is open to wallets with a fee tier and to every wallet the concierge has messaged; other wallets get concierge_locked (15002). A wallet that loses its fee tier gets concierge_locked again, unless the concierge has messaged it. A ban from chat rooms or a disabled account does not close the concierge. Requires the account-info scope.



## OpenAPI

````yaml /openapi.json post /private/send_concierge_message
openapi: 3.1.0
info:
  title: Derive v3 API
  version: 0.2.0
  description: JSON-RPC 2.0 methods, served over WebSocket and HTTP POST.
servers:
  - url: https://api.derive.xyz/v3
    description: Production (HTTP POST base)
  - url: https://testnet.api.derive.xyz/v3
    description: Testnet (HTTP POST base)
security: []
tags:
  - name: Subaccounts
    description: >-
      List, inspect, and label subaccounts, portfolios, positions, and
      collateral.
  - name: Session Keys
    description: Register, edit, and list delegated signing keys.
  - name: Account
    description: Wallet-level account information and settings.
  - name: Orderbook
    description: Place, replace, cancel, and query orders, trigger orders, and algos.
  - name: RFQ
    description: 'Request-for-quote: send RFQs, quote, and execute block trades.'
  - name: Liquidations
    description: >-
      Open a Dutch auction against a breaching subaccount, quote the auctions
      running right now, bid on them, and review past ones.
  - name: Vault Shareholders
    description: >-
      Deposit into and withdraw from vaults, and track shares, requests, and
      performance.
  - name: Vault Curators
    description: >-
      Create and operate curated vaults: settle deposit and withdrawal requests,
      and manage vault metadata.
  - name: History
    description: >-
      Per-account historical records: orders, trades, transfers, and
      settlements.
  - name: Market Maker Protection
    description: Configure, read, and reset market-maker protection.
  - name: Transfers & Withdrawals
    description: Move collateral between subaccounts, to other wallets, and on-chain.
  - name: Onchain Actions
    description: >-
      L1 onchain actions submitted via OnchainActionManager: register deposit
      addresses, list pending deposits, and inspect onchain action history.
  - name: System
    description: Rate limits, transaction lookups, and live incidents.
  - name: Market Data
    description: Instruments, currencies, tickers, and market-wide feeds.
  - name: Maker Scoring
    description: Maker programs, score breakdowns, and detailed scoring snapshots.
  - name: Referrals
    description: Referral codes and program performance.
  - name: Chat
    description: Anonymous chat rooms and conversations with the concierge.
  - name: Other
    description: Uncategorized.
paths:
  /private/send_concierge_message:
    post:
      tags:
        - Chat
      summary: private/send_concierge_message
      description: >-
        Sends a plain-text message, not blank and at most 500 characters, to the
        concierge and returns it. Each wallet has one private conversation with
        the concierge: the caller's messages and the concierge's replies arrive
        live on the {wallet}.concierge channel. The text must not contain
        control characters other than newlines, or bidi override characters
        (U+202A to U+202E and U+2066 to U+2069). The concierge is open to
        wallets with a fee tier and to every wallet the concierge has messaged;
        other wallets get concierge_locked (15002). A wallet that loses its fee
        tier gets concierge_locked again, unless the concierge has messaged it.
        A ban from chat rooms or a disabled account does not close the
        concierge. Requires the account-info scope.
      operationId: private_send_concierge_message
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendConciergeMessageParams'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConciergeMessage'
        default:
          description: JSON-RPC error (see Error Codes)
          content:
            application/json:
              schema:
                type: object
                required:
                  - error
                properties:
                  error:
                    $ref: '#/components/schemas/RPCError'
      security:
        - DeriveWallet: []
          DeriveTimestamp: []
          DeriveSignature: []
components:
  schemas:
    SendConciergeMessageParams:
      type: object
      required:
        - text
        - wallet
      properties:
        text:
          description: >-
            Plain text: at most 500 characters, not blank, without control
            characters other than newlines or bidi override characters.
          type: string
        wallet:
          description: The session's wallet.
          type: string
    ConciergeMessage:
      type: object
      required:
        - creation_timestamp
        - message_id
        - sender
        - text
        - wallet
      properties:
        creation_timestamp:
          type: integer
          format: int64
        message_id:
          description: UUID v4 string
          type: string
          format: uuid
        sender:
          $ref: '#/components/schemas/ConciergeSender'
        text:
          type: string
        wallet:
          description: The user's wallet, whichever side sent the message.
          type: string
    RPCError:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: integer
          format: int64
        data:
          type:
            - string
            - 'null'
        message:
          type: string
    ConciergeSender:
      description: The side of a concierge conversation that sent a message.
      type: string
      enum:
        - user
        - concierge
  securitySchemes:
    DeriveWallet:
      type: apiKey
      in: header
      name: X-DeriveWallet
      description: The wallet the request acts for.
    DeriveTimestamp:
      type: apiKey
      in: header
      name: X-DeriveTimestamp
      description: The current time in milliseconds, as a decimal string.
    DeriveSignature:
      type: apiKey
      in: header
      name: X-DeriveSignature
      description: >-
        EIP-191 signature of the timestamp, by the wallet or one of its session
        keys.

````

## Related topics

- [Changelog](https://docs.derive.xyz/changelog.md)
- [Error Codes](https://docs.derive.xyz/error-codes.md)
- [private/get_concierge_messages](https://docs.derive.xyz/api-reference/chat/privateget_concierge_messages.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.