curl --request GET \
--url https://api.aisa.one/apis/v1/unipile/linkedin/chats \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/unipile/linkedin/chats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/unipile/linkedin/chats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/unipile/linkedin/chats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/unipile/linkedin/chats"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aisa.one/apis/v1/unipile/linkedin/chats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/unipile/linkedin/chats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"cursor": "<unknown>",
"items": [
{
"account_id": "<string>",
"account_type": "WHATSAPP",
"archived": 0,
"id": "<string>",
"muted_until": -1,
"name": "<string>",
"object": "Chat",
"pinned": 0,
"provider_id": "<string>",
"read_only": 0,
"timestamp": "<string>",
"type": 0,
"unread_count": 123,
"attendee_provider_id": "<string>",
"content_type": "inmail",
"disabledFeatures": [
"reactions"
],
"folder": [
"INBOX"
],
"mailbox_id": "<string>",
"organization_id": "<string>",
"subject": "<string>"
}
],
"object": "ChatList"
}Chat List
List message conversations of the connected account.
curl --request GET \
--url https://api.aisa.one/apis/v1/unipile/linkedin/chats \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.aisa.one/apis/v1/unipile/linkedin/chats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.aisa.one/apis/v1/unipile/linkedin/chats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.aisa.one/apis/v1/unipile/linkedin/chats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.aisa.one/apis/v1/unipile/linkedin/chats"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.aisa.one/apis/v1/unipile/linkedin/chats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.aisa.one/apis/v1/unipile/linkedin/chats")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"cursor": "<unknown>",
"items": [
{
"account_id": "<string>",
"account_type": "WHATSAPP",
"archived": 0,
"id": "<string>",
"muted_until": -1,
"name": "<string>",
"object": "Chat",
"pinned": 0,
"provider_id": "<string>",
"read_only": 0,
"timestamp": "<string>",
"type": 0,
"unread_count": 123,
"attendee_provider_id": "<string>",
"content_type": "inmail",
"disabledFeatures": [
"reactions"
],
"folder": [
"INBOX"
],
"mailbox_id": "<string>",
"organization_id": "<string>",
"subject": "<string>"
}
],
"object": "ChatList"
}Example
curl "https://api.aisa.one/apis/v1/unipile/linkedin/chats?account_id=YOUR_ACCOUNT_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
Request contract
- Method and path: GET /apis/v1/unipile/linkedin/chats
- Availability: enabled
- Request URL template:
https://api.aisa.one/apis/v1/unipile/linkedin/chats - account_id: query; optional
- account_type: query; optional
- after: query; optional
- before: query; optional
- cursor: query; optional
- limit: query; optional
- unread: query; optional
- Runtime facts: 00b882f06149b4c72a4dc077c20cc1c4d86d5a8da50fcc725538d6debed194ac
{
"operationId": "get_unipile_linkedin_chats",
"method": "GET",
"path": "/apis/v1/unipile/linkedin/chats",
"servers": [
{
"url": "https://api.aisa.one"
}
],
"parameters": [
{
"description": "A filter to target items related to a certain account. Can be a comma-separated list of ids.",
"in": "query",
"name": "account_id",
"required": false,
"schema": {
"description": "An Unipile account id or a list of Unipile account ids separated by commas.",
"minLength": 1,
"title": "AccountIdOrIdsParam",
"type": "string"
}
},
{
"description": "A filter to target items related to a certain provider.",
"in": "query",
"name": "account_type",
"required": false,
"schema": {
"enum": [
"WHATSAPP",
"LINKEDIN",
"SLACK",
"TWITTER",
"MESSENGER",
"INSTAGRAM",
"TELEGRAM"
],
"type": "string"
}
},
{
"in": "query",
"name": "after",
"required": false,
"schema": {
"description": "A filter to target items created after the datetime (exclusive). Must be an ISO 8601 UTC datetime (YYYY-MM-DDTHH:MM:SS.sssZ).",
"example": "2025-12-31T23:59:59.999Z",
"pattern": "^[1-2]\\d{3}-[0-1]\\d-[0-3]\\dT\\d{2}:\\d{2}:\\d{2}.\\d{3}Z$",
"type": "string"
}
},
{
"in": "query",
"name": "before",
"required": false,
"schema": {
"description": "A filter to target items created before the datetime (exclusive). Must be an ISO 8601 UTC datetime (YYYY-MM-DDTHH:MM:SS.sssZ).",
"example": "2025-12-31T23:59:59.999Z",
"pattern": "^[1-2]\\d{3}-[0-1]\\d-[0-3]\\dT\\d{2}:\\d{2}:\\d{2}.\\d{3}Z$",
"type": "string"
}
},
{
"in": "query",
"name": "cursor",
"required": false,
"schema": {
"description": "A cursor for pagination purposes. To get the next page of entries, you need to make a new request and fulfill this field with the cursor received in the preceding request. This process should be repeated until all entries have been retrieved.",
"minLength": 1,
"title": "CursorParam",
"type": "string"
}
},
{
"in": "query",
"name": "limit",
"required": false,
"schema": {
"description": "A limit for the number of items returned in the response. The value can be set between 1 and 250.",
"example": 100,
"maximum": 250,
"minimum": 1,
"type": "integer"
}
},
{
"description": "Whether you want to get either unread chats only, or read chats only.",
"in": "query",
"name": "unread",
"required": false,
"schema": {
"type": "boolean"
}
}
],
"security": [
{
"bearerAuth": []
}
],
"x-aisa-status": "enabled",
"x-aisa-pricing": {
"cost_contract": "fixed_success",
"customer_pricing": "fixed_success",
"default_request_estimate_usd": 0.005,
"estimate_source": "profile_seed",
"evidence_source": "request_snapshot"
},
"components": {
"securitySchemes": {
"bearerAuth": {
"scheme": "bearer",
"type": "http"
}
}
}
}
Cost and request rules
Published reference price: $0.005 USD per successful request. Account-specific pricing and final settlement may differ. Published reference values are not an account-specific quote or a settled charge. For endpoints supporting X-AISA-Cost-Mode: quote, obtain a free quote for your exact request before execution; reconcile the settled cost with response metadata and Usage Logs. USD amounts use 1,000,000 integer micro-USD per dollar.- Default request reference estimate (USD): 0.005
- Cost contract: fixed_success
- Settlement evidence source: request_snapshot
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
A filter to target items related to a certain account. Can be a comma-separated list of ids. An Unipile account id or a list of Unipile account ids separated by commas.
1A filter to target items related to a certain provider.
WHATSAPP, LINKEDIN, SLACK, TWITTER, MESSENGER, INSTAGRAM, TELEGRAM A filter to target items created after the datetime (exclusive). Must be an ISO 8601 UTC datetime (YYYY-MM-DDTHH:MM:SS.sssZ).
^[1-2]\d{3}-[0-1]\d-[0-3]\dT\d{2}:\d{2}:\d{2}.\d{3}Z$"2025-12-31T23:59:59.999Z"
A filter to target items created before the datetime (exclusive). Must be an ISO 8601 UTC datetime (YYYY-MM-DDTHH:MM:SS.sssZ).
^[1-2]\d{3}-[0-1]\d-[0-3]\dT\d{2}:\d{2}:\d{2}.\d{3}Z$"2025-12-31T23:59:59.999Z"
A cursor for pagination purposes. To get the next page of entries, you need to make a new request and fulfill this field with the cursor received in the preceding request. This process should be repeated until all entries have been retrieved.
1A limit for the number of items returned in the response. The value can be set between 1 and 250.
1 <= x <= 250100
Whether you want to get either unread chats only, or read chats only.