Search messages
curl --request GET \
--url http://localhost:8080/api/messages/search \
--header 'Authorization: Bearer <token>'import requests
url = "http://localhost:8080/api/messages/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://localhost:8080/api/messages/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/api/messages/search",
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 := "http://localhost:8080/api/messages/search"
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("http://localhost:8080/api/messages/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/api/messages/search")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 123,
"chat_id": 123,
"bot_id": 123,
"user_id": 123,
"username": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"text": "<string>",
"date": 123,
"media_type": "<string>",
"file_id": "<string>",
"reply_to_message_id": 123
}
]{
"error": "bot not found"
}{
"error": "bot not found"
}Messages
Search Messages
Full-text search within a chat’s message history. Results are ordered by
message date in descending order (newest first), so the most recent matching
messages appear before older ones regardless of message id.
GET
/
api
/
messages
/
search
Search messages
curl --request GET \
--url http://localhost:8080/api/messages/search \
--header 'Authorization: Bearer <token>'import requests
url = "http://localhost:8080/api/messages/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('http://localhost:8080/api/messages/search', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/api/messages/search",
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 := "http://localhost:8080/api/messages/search"
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("http://localhost:8080/api/messages/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/api/messages/search")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
{
"id": 123,
"chat_id": 123,
"bot_id": 123,
"user_id": 123,
"username": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"text": "<string>",
"date": 123,
"media_type": "<string>",
"file_id": "<string>",
"reply_to_message_id": 123
}
]{
"error": "bot not found"
}{
"error": "bot not found"
}Authorizations
BearerAuthCookieAuth
API key with bmx_ prefix. Obtain via /api/auth/api-keys.
Response
Matching messages
Telegram message ID
Chat ID
Bot ID that received/sent this message
Sender user ID
Sender username
Sender first name
Sender last name
Message text content
Unix timestamp of the message
Media type if the message contains media (photo, video, animation, sticker, voice, audio, document, video_note) or callback for inline button interactions tracked as synthetic messages
Telegram file ID for media messages
ID of the message this is a reply to
Was this page helpful?