> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer-test.atomicwork.com/llms.txt.
> For full documentation content, see https://developer-test.atomicwork.com/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer-test.atomicwork.com/_mcp/server.

# Create request notes

POST https://{tenant}.atomicwork.com/api/v1/requests/{requestId}/notes
Content-Type: application/json

Reference: https://developer-test.atomicwork.com/atomicwork-public-api/requests/postapi-v-1-requests-request-id-notes

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: collection
  version: 1.0.0
paths:
  /api/v1/requests/{requestId}/notes:
    post:
      operationId: postapi-v-1-requests-request-id-notes
      summary: Create request notes
      tags:
        - subpackage_requests
      parameters:
        - name: requestId
          in: path
          description: ''
          required: true
          schema:
            type: string
        - name: X-Api-Key
          in: header
          required: true
          schema:
            type: string
        - name: X-Workspace-Id
          in: header
          required: false
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Requests_postapi_v1_requests__requestId__notes_Response_200
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                user_id:
                  type: integer
                  format: int64
                description:
                  type: string
                mentions:
                  type: array
                  items:
                    type: integer
                    format: int64
                is_private:
                  type: boolean
                  default: false
                source:
                  $ref: >-
                    #/components/schemas/ApiV1RequestsRequestIdNotesPostRequestBodyContentApplicationJsonSchemaSource
                type:
                  $ref: >-
                    #/components/schemas/ApiV1RequestsRequestIdNotesPostRequestBodyContentApplicationJsonSchemaType
                attachments:
                  type: array
                  items:
                    type: integer
                    format: int64
                cc_emails:
                  type: array
                  items:
                    type: string
                bcc_emails:
                  type: array
                  items:
                    type: string
                is_broadcast:
                  type: boolean
                  default: false
                external_id:
                  type: string
                external_source_type:
                  $ref: >-
                    #/components/schemas/ApiV1RequestsRequestIdNotesPostRequestBodyContentApplicationJsonSchemaExternalSourceType
                email_content:
                  type: string
                event_created_at:
                  type: string
                  format: date-time
                  description: >-
                    Event creation timestamp. When provided via public API, also
                    backdates the note's created time, SLA metrics, and activity
                    timestamps. Must not be in the future or before the
                    request's creation time.
servers:
  - url: https://{tenant}.atomicwork.com
components:
  schemas:
    ApiV1RequestsRequestIdNotesPostRequestBodyContentApplicationJsonSchemaSource:
      type: string
      enum:
        - EMAIL
        - SLACK
        - TEAMS
        - PORTAL
        - WORKFLOW
        - JOURNEY
        - API
        - UNIVERSAL_AGENT
      title: >-
        ApiV1RequestsRequestIdNotesPostRequestBodyContentApplicationJsonSchemaSource
    ApiV1RequestsRequestIdNotesPostRequestBodyContentApplicationJsonSchemaType:
      type: string
      enum:
        - ESD_NOTE
        - SLACK_NOTE
        - EMAIL_NOTE
        - RATING
        - TEMPLATE
        - WORKFLOW_NOTE
      title: >-
        ApiV1RequestsRequestIdNotesPostRequestBodyContentApplicationJsonSchemaType
    ApiV1RequestsRequestIdNotesPostRequestBodyContentApplicationJsonSchemaExternalSourceType:
      type: string
      enum:
        - SAAS_GENIE
        - SNOW
        - JSM_BRIDGE
      title: >-
        ApiV1RequestsRequestIdNotesPostRequestBodyContentApplicationJsonSchemaExternalSourceType
    Requests_postapi_v1_requests__requestId__notes_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: Requests_postapi_v1_requests__requestId__notes_Response_200
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key

```

## SDK Code Examples

```python
import requests

url = "https://{tenant}.atomicwork.com/api/v1/requests/requestId/notes"

payload = {
    "user_id": 123456,
    "description": "Follow-up note regarding the recent service request update.",
    "mentions": [78910, 112233],
    "is_private": True,
    "source": "EMAIL",
    "type": "ESD_NOTE",
    "attachments": [445566],
    "cc_emails": ["teamlead@example.com", "supportmanager@example.com"],
    "bcc_emails": ["audit@example.com"],
    "is_broadcast": False,
    "external_id": "ext-req-20240615-001",
    "external_source_type": "SAAS_GENIE",
    "email_content": "Dear team, please review the attached logs and update the ticket accordingly.",
    "event_created_at": "2024-06-15T09:30:00Z"
}
headers = {
    "X-Workspace-Id": "{{workspace_id}}",
    "X-Api-Key": "<apiKey>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://{tenant}.atomicwork.com/api/v1/requests/requestId/notes';
const options = {
  method: 'POST',
  headers: {
    'X-Workspace-Id': '{{workspace_id}}',
    'X-Api-Key': '<apiKey>',
    'Content-Type': 'application/json'
  },
  body: '{"user_id":123456,"description":"Follow-up note regarding the recent service request update.","mentions":[78910,112233],"is_private":true,"source":"EMAIL","type":"ESD_NOTE","attachments":[445566],"cc_emails":["teamlead@example.com","supportmanager@example.com"],"bcc_emails":["audit@example.com"],"is_broadcast":false,"external_id":"ext-req-20240615-001","external_source_type":"SAAS_GENIE","email_content":"Dear team, please review the attached logs and update the ticket accordingly.","event_created_at":"2024-06-15T09:30:00Z"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://{tenant}.atomicwork.com/api/v1/requests/requestId/notes"

	payload := strings.NewReader("{\n  \"user_id\": 123456,\n  \"description\": \"Follow-up note regarding the recent service request update.\",\n  \"mentions\": [\n    78910,\n    112233\n  ],\n  \"is_private\": true,\n  \"source\": \"EMAIL\",\n  \"type\": \"ESD_NOTE\",\n  \"attachments\": [\n    445566\n  ],\n  \"cc_emails\": [\n    \"teamlead@example.com\",\n    \"supportmanager@example.com\"\n  ],\n  \"bcc_emails\": [\n    \"audit@example.com\"\n  ],\n  \"is_broadcast\": false,\n  \"external_id\": \"ext-req-20240615-001\",\n  \"external_source_type\": \"SAAS_GENIE\",\n  \"email_content\": \"Dear team, please review the attached logs and update the ticket accordingly.\",\n  \"event_created_at\": \"2024-06-15T09:30:00Z\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("X-Workspace-Id", "{{workspace_id}}")
	req.Header.Add("X-Api-Key", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://{tenant}.atomicwork.com/api/v1/requests/requestId/notes")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["X-Workspace-Id"] = '{{workspace_id}}'
request["X-Api-Key"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"user_id\": 123456,\n  \"description\": \"Follow-up note regarding the recent service request update.\",\n  \"mentions\": [\n    78910,\n    112233\n  ],\n  \"is_private\": true,\n  \"source\": \"EMAIL\",\n  \"type\": \"ESD_NOTE\",\n  \"attachments\": [\n    445566\n  ],\n  \"cc_emails\": [\n    \"teamlead@example.com\",\n    \"supportmanager@example.com\"\n  ],\n  \"bcc_emails\": [\n    \"audit@example.com\"\n  ],\n  \"is_broadcast\": false,\n  \"external_id\": \"ext-req-20240615-001\",\n  \"external_source_type\": \"SAAS_GENIE\",\n  \"email_content\": \"Dear team, please review the attached logs and update the ticket accordingly.\",\n  \"event_created_at\": \"2024-06-15T09:30:00Z\"\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://{tenant}.atomicwork.com/api/v1/requests/requestId/notes")
  .header("X-Workspace-Id", "{{workspace_id}}")
  .header("X-Api-Key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"user_id\": 123456,\n  \"description\": \"Follow-up note regarding the recent service request update.\",\n  \"mentions\": [\n    78910,\n    112233\n  ],\n  \"is_private\": true,\n  \"source\": \"EMAIL\",\n  \"type\": \"ESD_NOTE\",\n  \"attachments\": [\n    445566\n  ],\n  \"cc_emails\": [\n    \"teamlead@example.com\",\n    \"supportmanager@example.com\"\n  ],\n  \"bcc_emails\": [\n    \"audit@example.com\"\n  ],\n  \"is_broadcast\": false,\n  \"external_id\": \"ext-req-20240615-001\",\n  \"external_source_type\": \"SAAS_GENIE\",\n  \"email_content\": \"Dear team, please review the attached logs and update the ticket accordingly.\",\n  \"event_created_at\": \"2024-06-15T09:30:00Z\"\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://{tenant}.atomicwork.com/api/v1/requests/requestId/notes', [
  'body' => '{
  "user_id": 123456,
  "description": "Follow-up note regarding the recent service request update.",
  "mentions": [
    78910,
    112233
  ],
  "is_private": true,
  "source": "EMAIL",
  "type": "ESD_NOTE",
  "attachments": [
    445566
  ],
  "cc_emails": [
    "teamlead@example.com",
    "supportmanager@example.com"
  ],
  "bcc_emails": [
    "audit@example.com"
  ],
  "is_broadcast": false,
  "external_id": "ext-req-20240615-001",
  "external_source_type": "SAAS_GENIE",
  "email_content": "Dear team, please review the attached logs and update the ticket accordingly.",
  "event_created_at": "2024-06-15T09:30:00Z"
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'X-Api-Key' => '<apiKey>',
    'X-Workspace-Id' => '{{workspace_id}}',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://{tenant}.atomicwork.com/api/v1/requests/requestId/notes");
var request = new RestRequest(Method.POST);
request.AddHeader("X-Workspace-Id", "{{workspace_id}}");
request.AddHeader("X-Api-Key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"user_id\": 123456,\n  \"description\": \"Follow-up note regarding the recent service request update.\",\n  \"mentions\": [\n    78910,\n    112233\n  ],\n  \"is_private\": true,\n  \"source\": \"EMAIL\",\n  \"type\": \"ESD_NOTE\",\n  \"attachments\": [\n    445566\n  ],\n  \"cc_emails\": [\n    \"teamlead@example.com\",\n    \"supportmanager@example.com\"\n  ],\n  \"bcc_emails\": [\n    \"audit@example.com\"\n  ],\n  \"is_broadcast\": false,\n  \"external_id\": \"ext-req-20240615-001\",\n  \"external_source_type\": \"SAAS_GENIE\",\n  \"email_content\": \"Dear team, please review the attached logs and update the ticket accordingly.\",\n  \"event_created_at\": \"2024-06-15T09:30:00Z\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "X-Workspace-Id": "{{workspace_id}}",
  "X-Api-Key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "user_id": 123456,
  "description": "Follow-up note regarding the recent service request update.",
  "mentions": [78910, 112233],
  "is_private": true,
  "source": "EMAIL",
  "type": "ESD_NOTE",
  "attachments": [445566],
  "cc_emails": ["teamlead@example.com", "supportmanager@example.com"],
  "bcc_emails": ["audit@example.com"],
  "is_broadcast": false,
  "external_id": "ext-req-20240615-001",
  "external_source_type": "SAAS_GENIE",
  "email_content": "Dear team, please review the attached logs and update the ticket accordingly.",
  "event_created_at": "2024-06-15T09:30:00Z"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://{tenant}.atomicwork.com/api/v1/requests/requestId/notes")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```