curl --request GET \
--url https://app.hypersender.com/api/sms/v1/{instance}/heartbeats \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.hypersender.com/api/sms/v1/{instance}/heartbeats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.hypersender.com/api/sms/v1/{instance}/heartbeats', 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://app.hypersender.com/api/sms/v1/{instance}/heartbeats",
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://app.hypersender.com/api/sms/v1/{instance}/heartbeats"
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://app.hypersender.com/api/sms/v1/{instance}/heartbeats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.hypersender.com/api/sms/v1/{instance}/heartbeats")
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{
"data": [
{
"id": "9e05f90c-affd-4e8f-967d-811a19ec575f",
"phone_id": "9defcf1e-552c-4bef-a843-872edec576ef",
"battery_level": 96,
"is_charging": false,
"local_timestamp": "2025-01-21 18:41:42",
"app_version": null,
"created_at": "2025-01-21 18:41:43",
"updated_at": "2025-01-21 18:41:43"
}
],
"links": {
"first": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=1",
"last": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=72",
"prev": null,
"next": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 72,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=1",
"label": "1",
"active": true
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=2",
"label": "2",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=3",
"label": "3",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=4",
"label": "4",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=5",
"label": "5",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=6",
"label": "6",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=7",
"label": "7",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=8",
"label": "8",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=9",
"label": "9",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=10",
"label": "10",
"active": false
},
{
"url": null,
"label": "...",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=71",
"label": "71",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=72",
"label": "72",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=2",
"label": "Next »",
"active": false
}
],
"path": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats",
"per_page": 1,
"to": 1,
"total": 72
}
}{
"errors": {},
"message": "The given data was invalid.",
"status": "400"
}{
"errors": {},
"message": "The given data was invalid.",
"status": "422"
}{
"message": "Internal Server Error"
}SMS Heartbeats API (v1)
Index heartbeats of the phone sorted by last heartbeat. (v1 API)
curl --request GET \
--url https://app.hypersender.com/api/sms/v1/{instance}/heartbeats \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.hypersender.com/api/sms/v1/{instance}/heartbeats"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.hypersender.com/api/sms/v1/{instance}/heartbeats', 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://app.hypersender.com/api/sms/v1/{instance}/heartbeats",
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://app.hypersender.com/api/sms/v1/{instance}/heartbeats"
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://app.hypersender.com/api/sms/v1/{instance}/heartbeats")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.hypersender.com/api/sms/v1/{instance}/heartbeats")
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{
"data": [
{
"id": "9e05f90c-affd-4e8f-967d-811a19ec575f",
"phone_id": "9defcf1e-552c-4bef-a843-872edec576ef",
"battery_level": 96,
"is_charging": false,
"local_timestamp": "2025-01-21 18:41:42",
"app_version": null,
"created_at": "2025-01-21 18:41:43",
"updated_at": "2025-01-21 18:41:43"
}
],
"links": {
"first": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=1",
"last": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=72",
"prev": null,
"next": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 72,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=1",
"label": "1",
"active": true
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=2",
"label": "2",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=3",
"label": "3",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=4",
"label": "4",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=5",
"label": "5",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=6",
"label": "6",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=7",
"label": "7",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=8",
"label": "8",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=9",
"label": "9",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=10",
"label": "10",
"active": false
},
{
"url": null,
"label": "...",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=71",
"label": "71",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=72",
"label": "72",
"active": false
},
{
"url": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats?per_page=1&page=2",
"label": "Next »",
"active": false
}
],
"path": "https://beta.hypersender.com/api/sms/v1/9defcf1e-552c-4bef-a843-872edec576ef/heartbeats",
"per_page": 1,
"to": 1,
"total": 72
}
}{
"errors": {},
"message": "The given data was invalid.",
"status": "400"
}{
"errors": {},
"message": "The given data was invalid.",
"status": "422"
}{
"message": "Internal Server Error"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Instance UUID copied from hypersender dashboard
"{{ instance_id }}"
Query Parameters
number of messages per page, max: 50
filter by the android application version that was installed on your phone
filter by percentage of the battery
filter by wither the phone was charging or not
get heartbeats by the local time of the phone
filter by when the heartbeat was created on the system.
default: -created_at, you can sort by any date: 'created_at', 'local_timestamp'
include the phone object with the heartbeat, possible values: phone
when paginating use this property to navigate through pages, example: page=2, page=1 and so on..