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

# Send Private Notes

> This endpoint is used to send private notes to a chat. 

- A private note is only visible on Periskope and not sent to a chat on WhatsApp.
- When a user is mentioned in body of a private note using `@<email>`, a task is automatically created and assigned to that member.

#### Response

The response is a JSON note object. Refer to [the note object here](/api-reference/objects/the-note-object)



## OpenAPI

````yaml POST /note/create
openapi: 3.0.3
info:
  title: API - Local
  description: >-
    #### Welcome to the official Postman collection of Periskope API


    Periskope APIs enable you automate actions on your WhatsApp phone, and the
    Periskope platform


    - Read more about the APIs & webhooks here -
    [https://docs.periskope.app/api-reference/introduction](https://docs.periskope.app/api-reference/introduction)
        
    - We encourage responsible usage of the APIs. Follow these best practices
    and recommendations for safe actions on WhatsApp -
    [https://docs.periskope.app/get-started/best-practices](https://docs.periskope.app/get-started/best-practices)
        

    #### Getting Started


    ##### Pre-requisites:


    1. **Sign up for a free account on Periskope:** To use the Periskope API,
    you need to have an active Periskope account. If you don’t have one, you can
    sign up for a 7-day free trial [here](https://console.periskope.app).
        
    2. **Scan the QR code from WhatsApp to connect your phone:** A connected
    phone is required to use the APIs
        
    3. **Go to** [Settings &gt;
    API](https://console.periskope.app/settings/api), and generate an API key
    for your organization - The API key is used to authenticate every request.
    Please keep this secure
        

    ##### Using Postman:


    1. **Fork the collection so you can edit values and test the APIs in your
    own postman environment:** To fork the collection, click on the three dots
    next to v1. Then click on create a fork (_shortcut: Ctrl + Alt + F)._
        
    2. **Update the value of the variables in the collection:**  
        \- Update the API key with the key generated in Step 3  
        \- Update the phone number with your connected number. This number will be added to the `x-phone` header across requests
        
        It must be in the format of country code+number, with no special characters or spaces _e.g. +91 98745 32456 becomes 919874532456_
        

    For any help or feedback, please contact us at
    [support@periskope.app](https://mailto:support@periskope.app), or ping us on
    [WhatsApp](https://what.sapp.link/periskope)
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.periskope.app/v1
security:
  - bearerAuth: []
tags:
  - name: contacts
  - name: tickets
  - name: tasks
  - name: phones
  - name: message
  - name: queue
  - name: chats
  - name: group
  - name: members
  - name: webhooks
  - name: custom properties
paths:
  /note/create:
    post:
      tags:
        - note
      summary: Send Private Notes
      description: >-
        This endpoint is used to send private notes to a chat. 


        - A private note is only visible on Periskope and not sent to a chat on
        WhatsApp.

        - When a user is mentioned in body of a private note using `@<email>`, a
        task is automatically created and assigned to that member.


        #### Response


        The response is a JSON note object. Refer to [the note object
        here](/api-reference/objects/the-note-object)
      operationId: createInternalNote
      parameters:
        - name: x-phone
          in: header
          schema:
            type: string
            example: '{{orgPhone}}'
          description: >-
            Please provide the number of the phone you want to call with this
            API in the header. The number must be in country code + number
            format without any characters or spaces, e.g. 919876543210;
            Alternatively, provide the phone_id (phone-xxxxxxxxxxxx) in the
            header
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - chat_id
                - performed_by
                - org_id
              properties:
                chat_id:
                  type: string
                  example: 919537851844@c.us
                  description: >-
                    - For groups, enter the chat_id of the group. This will be a
                    string that ends with @g.us

                    - For 1-1 chats, enter the country_code + number of the
                    recipient e.g.
                    [919537851844@c.us](https://mailto:919537851844@c.us) (The
                    @c.us is optional)
                message:
                  type: string
                  description: >-
                    The text body or caption. You can use basic markdown
                    formatting supported by WhatsApp e.g. * for bold, and _ for
                    italic, etc
                media:
                  type: object
                  properties:
                    url:
                      type: string
                      description: Public URL that hosts the content to be sent
                    filedata:
                      type: string
                      description: Raw bytes of the file, represented in base64
                    filename:
                      type: string
                      description: The filename of the media
                    mimetype:
                      type: string
                      description: The MIME type of the media file
                  required:
                    - type
                    - filename
                    - mimetype
                  description: |-
                    Media object containing file information and content

                    Note: You must specify either `filedata` or `url`
                reply_to:
                  type: string
                  description: >-
                    To reply to a message, add the WA message_id or private note
                    message_id in this field
            examples:
              Send Message:
                value:
                  chat_id: 919537851844@c.us
                  body: Hello World
                  org_id: 2997dd64-89bf-48d3-9a22-b314fca017e5
                  performed_by: bharat@hashlabs.dev
      responses:
        '200':
          description: Text Note / Media Note / Reply Note
          headers:
            Access-Control-Allow-Origin:
              schema:
                type: string
                example: '*'
            Connection:
              schema:
                type: string
                example: keep-alive
            Content-Length:
              schema:
                type: string
                example: '70'
            Date:
              schema:
                type: string
                example: Wed, 22 Jan 2025 10:07:53 GMT
            ETag:
              schema:
                type: string
                example: W/"46-G83wmhGAIRrmKrMUWfoeGk61n3A"
            Keep-Alive:
              schema:
                type: string
                example: timeout=5
            X-Powered-By:
              schema:
                type: string
                example: Express
            X-RateLimit-Limit:
              schema:
                type: string
                example: '10'
            X-RateLimit-Remaining:
              schema:
                type: string
                example: '9'
            X-RateLimit-Reset:
              schema:
                type: string
                example: '1737540475'
            x-periskope-org-id:
              schema:
                type: string
                example: 2997dd64-89bf-48d3-9a22-b314fca017e5
            x-periskope-phone-id:
              schema:
                type: string
                example: phone-bqzvyibhmwkaergr
            x-periskope-trace-id:
              schema:
                type: string
                example: bec43610-d8a8-11ef-8033-3b03afb6e098
          content:
            application/json:
              schema:
                type: object
                description: >-
                  The response is a JSON object with the following properties:


                  - `success`: Status of the request 

                  - `data`: A object of private note created. Refer to [the
                  private note object](/api-reference/objects/the-note-object)
                  here
              examples:
                Private Note:
                  value:
                    success: true
                    message: Note created successfully
                    data:
                      message_id: true_2634e275-ac58-4c85-892d-83882810fc1c_api
                      org_id: 2997dd64-89bf-48d3-9a22-b314fca017e5
                      ack: '3'
                      body: Hello World
                      from_me: true
                      message_type: chat
                      chat_id: 91882424xxxx@c.us
                      timestamp: '2025-08-18T13:38:37.203+00:00'
                      org_phone: 91882424xxxx@c.us
                      performed_by: api
                      prev_body: null
                      quoted_message_id: 52643136-1573-4011-ad22-b95ca6ea8e0c
                      sender_phone: 91882424xxxx@c.us
                      sent_message_id: 2634e275-ac58-4c85-892d-83882810fc1c
                      updated_at: '2025-08-18T13:38:37.203+00:00'
                      is_private_note: true
                      media:
                        mimetype: audio/wav
                        filename: beep.wav
                        filedata: >-
                          data:audio/wav;base64,UklGRkKAAABXQVZFZm10IBAAAAABAAEAQB8A...
                      unique_id: 2634e275-ac58-4c85-892d-83882810fc1c
                      mentioned_ids: []
                      is_deleted: null
      x-codeSamples:
        - lang: TypeScript
          label: Node.js
          source: |-
            import { PeriskopeApi } from '@periskope/periskope-client';

            const client = new PeriskopeApi({
              authToken: 'YOUR_API_KEY',
              phone: 'YOUR_PHONE_NUMBER', // e.g., '919876543210'
            });

            async function sendPrivateNote() {
              const response = await client.note.create({
                chat_id: '91882424xxxx@c.us',
                message: 'testing with new note payload',
                reply_to: '52643136-1573-4011-ad22-b95ca6ea8e0c',
                media: {
                  type: 'audio',
                  mimetype: 'audio/wav',
                  filename: 'beep.wav',
                  filedata: 'data:audio/wav;base64,UklGRkKAAABXQVZFZm10IBAAAAABAAEAQB8A...'
                }
              });

              console.log(response);
            }

            sendPrivateNote();
        - lang: cURL
          label: cURL
          source: |-
            curl -X POST \
              https://api.periskope.app/v1/note/create \
              -H 'Authorization: Bearer <token>' \
              -H 'Content-Type: application/json' \
              -H 'x-phone: YOUR_PHONE_NUMBER' \
              -d '{
                "chat_id": "91882424xxxx@c.us",
                "message": "testing with new note payload",
                "reply_to": "52643136-1573-4011-ad22-b95ca6ea8e0c",
                "media": {
                  "type": "audio",
                  "mimetype": "audio/wav",
                  "filename": "beep.wav",
                  "filedata": "data:audio/wav;base64,UklGRkKAAABXQVZFZm10IBAAAAABAAEAQB8A..."
                }
              }'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````