curl --request GET \
--url https://api.openmic.ai/v2/sms-logs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.openmic.ai/v2/sms-logs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.openmic.ai/v2/sms-logs', 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.openmic.ai/v2/sms-logs",
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.openmic.ai/v2/sms-logs"
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.openmic.ai/v2/sms-logs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openmic.ai/v2/sms-logs")
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{
"sms_logs": [
{
"id": 62,
"direction": "outbound",
"from_number": "+16625658792",
"to_number": "+17189153182",
"session_id": null,
"created_at": "2026-07-10T10:00:00.000Z"
}
],
"has_more": true,
"next_cursor": "61"
}{
"error": "<string>",
"details": "<string>"
}{
"success": true,
"message": "<string>",
"error": "<string>",
"retryAfter": 123
}{
"error": "<string>",
"details": "<string>"
}List SMS logs
Returns a cursor-paginated list of SMS log entries for your organization, newest first. Entries contain delivery metadata (direction, phone numbers, timestamps) — message bodies are not stored.
curl --request GET \
--url https://api.openmic.ai/v2/sms-logs \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.openmic.ai/v2/sms-logs"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.openmic.ai/v2/sms-logs', 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.openmic.ai/v2/sms-logs",
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.openmic.ai/v2/sms-logs"
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.openmic.ai/v2/sms-logs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.openmic.ai/v2/sms-logs")
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{
"sms_logs": [
{
"id": 62,
"direction": "outbound",
"from_number": "+16625658792",
"to_number": "+17189153182",
"session_id": null,
"created_at": "2026-07-10T10:00:00.000Z"
}
],
"has_more": true,
"next_cursor": "61"
}{
"error": "<string>",
"details": "<string>"
}{
"success": true,
"message": "<string>",
"error": "<string>",
"retryAfter": 123
}{
"error": "<string>",
"details": "<string>"
}Authorizations
Secret API key (omic_...) obtained from the OpenMic dashboard. The public key (omic_pub_...) is only accepted by /whoami, /create-web-call, and the agent test-call endpoints; every other endpoint rejects it with 403 This endpoint requires a private API key.
Query Parameters
Number of records per page (default 50, max 100).
1 <= x <= 100Opaque pagination cursor returned by the previous response.
Filter by message direction.
inbound, outbound Filter by sender phone number (partial match).
Filter by recipient phone number (partial match).
Filter messages logged on or after this ISO 8601 timestamp.
Filter messages logged on or before this ISO 8601 timestamp.
Was this page helpful?