List transactional emails
curl --request GET \
--url https://app.loops.so/api/v1/transactional-emails \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.loops.so/api/v1/transactional-emails"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.loops.so/api/v1/transactional-emails', 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.loops.so/api/v1/transactional-emails",
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.loops.so/api/v1/transactional-emails"
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.loops.so/api/v1/transactional-emails")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.loops.so/api/v1/transactional-emails")
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{
"pagination": {
"totalResults": 123,
"returnedResults": 123,
"perPage": 123,
"totalPages": 123,
"nextCursor": "<string>",
"nextPage": "<string>"
},
"data": [
{
"id": "<string>",
"name": "<string>",
"draftEmailMessageId": "<string>",
"publishedEmailMessageId": "<string>",
"transactionalGroupId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"dataVariables": [
"<string>"
]
}
]
}{
"message": "<string>"
}Transactional emails
List transactional emails
Retrieve a paginated list of transactional emails, most recently created first.
GET
/
v1
/
transactional-emails
List transactional emails
curl --request GET \
--url https://app.loops.so/api/v1/transactional-emails \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.loops.so/api/v1/transactional-emails"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.loops.so/api/v1/transactional-emails', 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.loops.so/api/v1/transactional-emails",
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.loops.so/api/v1/transactional-emails"
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.loops.so/api/v1/transactional-emails")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.loops.so/api/v1/transactional-emails")
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{
"pagination": {
"totalResults": 123,
"returnedResults": 123,
"perPage": 123,
"totalPages": 123,
"nextCursor": "<string>",
"nextPage": "<string>"
},
"data": [
{
"id": "<string>",
"name": "<string>",
"draftEmailMessageId": "<string>",
"publishedEmailMessageId": "<string>",
"transactionalGroupId": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"dataVariables": [
"<string>"
]
}
]
}{
"message": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
How many results to return in each request. Must be between 10 and 50. Default is 20.
A cursor to return a specific page of results. Cursors can be found from the pagination.nextCursor value in each response.
Last modified on July 20, 2026
Related topics
List transactional emailsTransactional email API examplesAPI IntroductionList transactional groupsSend a transactional emailWas this page helpful?
⌘I

