GET https://examplebaseURL.com/v1/api/apps/{appID}/contacts/extcontact-note-list
| Parameter | Type | Description |
|---|---|---|
| code | Number | Refer to Success and Error Code |
| total | Number | Total number of notes for the contact |
| offset | Number | Current pagination offset |
| count | Number | Number of records returned in this response |
| result[].noteId | String | Unique note identifier |
| result[].reporter | String | ID of the user who created or updated the note |
| result[].updatedAt | String | Last updated timestamp (ISO 8601 format) |
| result[].note | String | Note content |
appID string required
App ID
contactID string required
External contact ID.offset number (optional)
Pagination offset. Default:0.limit number (optional)
Maximum number of records to return.
Default:50, Maximum:200.
Example: ?contactID=EXT-00001&offset=0&limit=50
Content-Type string
application/jsonAuthorization string
Bearer AppToken
200 - Success
Response bodyapplication/json400 - Bad Request
Response body:
Field Type code integer message string
LANGUAGE: Shell
curl --request GET \
--url https://examplebaseurl.com/v1/api/apps/appID/contacts/extcontact-note-list?contactID={contactID}&offset=0&limit=50 \
--header 'Authorization: Bearer AppToken' \
--header 'Content-Type: application/json' \
--header 'accept: application/json'
$ brew install httpie
http GET https://examplebaseurl.com/v1/api/apps/appID/contacts/extcontact-note-list?contactID={contactID}&offset=0&limit=50 \
Authorization:"Bearer AppToken" \
Content-Type:application/json \
Accept:application/json
LANGUAGE: Node.js (Axios or fetch)
// --- Axios Example ---
import axios from "axios";
axios.get(
"https://{host}/v1/api/apps/{appID}/contacts/extcontact-note-list",
{
params: {
contactID: "{contactID}",
offset: 0,
limit: 50
},
headers: {
Authorization: "Bearer {appToken}",
accept: "application/json"
}
}
)
.then(res => console.log(res.data))
.catch(err => console.error(err));
// --- Fetch Example ---
const url = "https://{host}/v1/api/apps/{appID}/contacts/extcontact-note-list?contactID={contactID}&offset=0&limit=50";
fetch(url, {
method: "GET",
headers: {
Authorization: "Bearer {appToken}",
accept: "application/json"
}
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
LANGUAGE: JavaScript fetch (Browser)
fetch("https://{host}/v1/api/apps/{appID}/contacts/extcontact-note-list?contactID={contactID}&offset=0&limit=50", {
method: "GET",
headers: {
Authorization: "Bearer {appToken}",
accept: "application/json"
}
})
.then(res => res.json())
.then(data => console.log(data))
.catch(err => console.error(err));
offset and limit for pagination when retrieving large note lists.limit is 200.offset exceeds the available records, an empty result array will be returned.SUCCESS RESPONSE: 200-Result
{
"code": 0,
"total": 2,
"offset": 0,
"count": 2,
"result": [
{
"noteId": "988f7bc6-b690-4f1b-a72a-82ec8cdaaf06",
"reporter": "obILUJ8l.A2B4dMcvH5JE.6e90.01000000.Pn8OomOfOonlKULH",
"updatedAt": "2026-02-13T10:20:41Z",
"note": "Contact prefers LINE for follow-up."
},
{
"noteId": "31a9a0a9-13ef-4efa-8b87-a9d19c3071d6",
"reporter": "obILUJ8l.A2B4dMcvH5JE.6e90.01000000.Pn8OomOfOonlKULH",
"updatedAt": "2026-02-12T09:15:03Z",
"note": "Requested callback tomorrow."
}
]
}
ERROR RESPONSE: 400-Result
Missing contactID
{
"code": 7910000,
"message": "contactID is required"
}
Invalid offset
{
"code": 7910000,
"message": "invalid offset"
}
Limit exceeds maximum
{
"code": 7910000,
"message": "exceed maximum limit 200"
}