Python
import requests
url = 'https://app.minimo.it/api/transactionals'
headers = {'Authorization': 'Bearer {{BEARER_TOKEN}}', 'Content-Type': 'application/json'}
data = {
'recipient': '{{recipient}}',
'uid': '{{uid}}',
'customFields': {
'{{customKey1}}': '{{customValue1}}',
'{{customKey2}}': '{{customValue2}}',
'{{customKey3}}': '{{customValue3}}'
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())fetch('https://app.minimo.it/api/transactionals', {
method: 'POST',
headers: {
'Authorization': 'Bearer {{BEARER_TOKEN}}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
'recipient': '{{recipient}}',
'uid': '{{uid}}',
'customFields': {
'{{customKey1}}': '{{customValue1}}',
'{{customKey2}}': '{{customValue2}}',
'{{customKey3}}': '{{customValue3}}'
}
})
}).then(response => response.json()).then(data => console.log(data));curl --request POST \
--url https://app.minimo.it/api/transactionals \
--header 'Authorization: Bearer {{BEARER_TOKEN}}' \
--header 'Content-Type: application/json' \
--data '{
"recipient": "{{recipient}}",
"uid": "{{uid}}",
"customFields": {
"{{customKey1}}": "{{customValue1}}",
"{{customKey2}}": "{{customValue2}}",
"{{customKey3}}": "{{customValue3}}"
}
}'<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.minimo.it/api/transactionals',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"recipient": "{{recipient}}",
"uid": "{{uid}}",
"customFields": {
"{{customKey1}}": "{{customValue1}}",
"{{customKey2}}": "{{customValue2}}",
"{{customKey3}}": "{{customValue3}}"
}
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer {{BEARER_TOKEN}}',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.OutputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Main {
public static void main(String[] args) {
try {
URL url = new URL('https://app.minimo.it/api/transactionals');
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod('POST');
conn.setRequestProperty('Authorization', 'Bearer {{BEARER_TOKEN}}');
conn.setRequestProperty('Content-Type', 'application/json');
conn.setDoOutput(true);
String jsonInputString = '{"recipient": "{{recipient}}", "uid": "{{uid}}", "customFields": {"{{customKey1}}": "{{customValue1}}", "{{customKey2}}": "{{customValue2}}", "{{customKey3}}": "{{customValue3}}"}}';
try(OutputStream os = conn.getOutputStream()) {
byte[] input = jsonInputString.getBytes('utf-8');
os.write(input, 0, input.length);
}
try(BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), 'utf-8'))) {
StringBuilder response = new StringBuilder();
String responseLine = null;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
System.out.println(response.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.minimo.it/api/transactionals"
payload := strings.NewReader("{\n \"recipient\": \"email@minimo.it\",\n \"uid\": \"ABCDE143\",\n \"customFields\": {\n \"customKey1\": \"customValue1\",\n \"customKey2\": \"customValue2\",\n \"customKey3\": \"customValue3\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://app.minimo.it/api/transactionals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"recipient\": \"email@minimo.it\",\n \"uid\": \"ABCDE143\",\n \"customFields\": {\n \"customKey1\": \"customValue1\",\n \"customKey2\": \"customValue2\",\n \"customKey3\": \"customValue3\"\n }\n}"
response = http.request(request)
puts response.read_body{
"status": 123
}{
"error": "<string>"
}{
"error": "<string>"
}Legacy (Deprecated)
Send Email (Deprecated)
POST
/
api
/
transactionals
Python
import requests
url = 'https://app.minimo.it/api/transactionals'
headers = {'Authorization': 'Bearer {{BEARER_TOKEN}}', 'Content-Type': 'application/json'}
data = {
'recipient': '{{recipient}}',
'uid': '{{uid}}',
'customFields': {
'{{customKey1}}': '{{customValue1}}',
'{{customKey2}}': '{{customValue2}}',
'{{customKey3}}': '{{customValue3}}'
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())fetch('https://app.minimo.it/api/transactionals', {
method: 'POST',
headers: {
'Authorization': 'Bearer {{BEARER_TOKEN}}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
'recipient': '{{recipient}}',
'uid': '{{uid}}',
'customFields': {
'{{customKey1}}': '{{customValue1}}',
'{{customKey2}}': '{{customValue2}}',
'{{customKey3}}': '{{customValue3}}'
}
})
}).then(response => response.json()).then(data => console.log(data));curl --request POST \
--url https://app.minimo.it/api/transactionals \
--header 'Authorization: Bearer {{BEARER_TOKEN}}' \
--header 'Content-Type: application/json' \
--data '{
"recipient": "{{recipient}}",
"uid": "{{uid}}",
"customFields": {
"{{customKey1}}": "{{customValue1}}",
"{{customKey2}}": "{{customValue2}}",
"{{customKey3}}": "{{customValue3}}"
}
}'<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://app.minimo.it/api/transactionals',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"recipient": "{{recipient}}",
"uid": "{{uid}}",
"customFields": {
"{{customKey1}}": "{{customValue1}}",
"{{customKey2}}": "{{customValue2}}",
"{{customKey3}}": "{{customValue3}}"
}
}',
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer {{BEARER_TOKEN}}',
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.OutputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
public class Main {
public static void main(String[] args) {
try {
URL url = new URL('https://app.minimo.it/api/transactionals');
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod('POST');
conn.setRequestProperty('Authorization', 'Bearer {{BEARER_TOKEN}}');
conn.setRequestProperty('Content-Type', 'application/json');
conn.setDoOutput(true);
String jsonInputString = '{"recipient": "{{recipient}}", "uid": "{{uid}}", "customFields": {"{{customKey1}}": "{{customValue1}}", "{{customKey2}}": "{{customValue2}}", "{{customKey3}}": "{{customValue3}}"}}';
try(OutputStream os = conn.getOutputStream()) {
byte[] input = jsonInputString.getBytes('utf-8');
os.write(input, 0, input.length);
}
try(BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), 'utf-8'))) {
StringBuilder response = new StringBuilder();
String responseLine = null;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
System.out.println(response.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.minimo.it/api/transactionals"
payload := strings.NewReader("{\n \"recipient\": \"email@minimo.it\",\n \"uid\": \"ABCDE143\",\n \"customFields\": {\n \"customKey1\": \"customValue1\",\n \"customKey2\": \"customValue2\",\n \"customKey3\": \"customValue3\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}require 'uri'
require 'net/http'
url = URI("https://app.minimo.it/api/transactionals")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"recipient\": \"email@minimo.it\",\n \"uid\": \"ABCDE143\",\n \"customFields\": {\n \"customKey1\": \"customValue1\",\n \"customKey2\": \"customValue2\",\n \"customKey3\": \"customValue3\"\n }\n}"
response = http.request(request)
puts response.read_body{
"status": 123
}{
"error": "<string>"
}{
"error": "<string>"
}This endpoint is deprecated and will be removed on June 1, 2026. Please migrate to the new Send Email
Template endpoint.
Why This Is Deprecated
This endpoint has been replaced with a more flexible and consistent API under Messaging Channels.What’s Wrong With This Endpoint?
- Inconsistent with other channel APIs
- Limited error handling
- No support for advanced template features
Use the New Endpoint Instead
New endpoint:POST /public/v1/templates/email/send
View new endpoint documentation →
Migration
Old Request (This Endpoint)
{
"uid": "unique_template_id",
"recipient": "customer@example.com",
"customFields": {
"name": "John Doe",
"orderNumber": "12345"
}
}
New Request (Recommended)
{
"uid": "tmpl_abc123",
"recipient": "customer@example.com",
"customFields": {
"name": "John Doe",
"orderNumber": "12345"
}
}
- Update endpoint URL:
/api/transactionals→/public/v1/templates/email/send - Update template IDs in your code (now prefixed with
tmpl_)
Migration Deadline
| Date | Status |
|---|---|
| November 2025 | Deprecated (still works) |
| June 1, 2026 | Removed (will return 410 Gone) |
You have until June 1, 2026 to migrate. Plan your migration now to avoid service disruption.
Need Help?
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/jsonmultipart/form-dataapplication/x-www-form-urlencoded
Response
Successful response
Example:
200
⌘I