Deliver Better
Emails At Scale

API-first email platform built for developers

Get started

ultimate Developer 
experience

Guarantee your messages make it to the inbox every time with tinyRelay's foolproof deliverability stack

API is integrating

Real-time Analytics and Insights

Transform data into action with comprehensive analytics that track the performance of your emails in real-time.

Seamless Integration with Your Existing Tools

Whether you're using CRM software, customer support platforms, or e-commerce systems, integrate tinyRelay effortlessly into your current business ecosystem.

Ridiculously easy
integration

An intuitive and streamlined interface allows you to send emails within moments. Seamlessly integrate it into your coding environment through SDKs tailored for your tech stack.

Copy sibling
1const axios = require('axios');
2let data = JSON.stringify({
3  "subject": "Email subject",
4  "body": "Email body is added here",
5  "preview": "This is the test subject preview",
6  "campaignId": "campaignId",
7  "sender": {
8    "from": {
9      "name": "Senders name",
10      "email": "sender@gmail.com"
11    },
12    "replyTo": {
13      "name": "Senders name",
14      "email": "sender@gmail.com"
15    }
16  },
17  "recipients": {
18    "to": [
19      {
20        "name": "Receivers name",
21        "email": "receiver1@gmail.com"
22      }
23    ],
24    "cc": [
25      {
26        "name": "Receivers name",
27        "email": "receiver1@gmail.com"
28      }
29    ],
30    "bcc": [
31      {
32        "name": "Receivers name",
33        "email": "receiver1@gmail.com"
34      }
35    ]
36  }
37});
38
39let config = {
40  method: 'post',
41maxBodyLength: Infinity,
42  url: 'https://api.tinyemail.com/v1/relay/email/campaign',
43  headers: { 
44    'Content-Type': 'application/json', 
45    'Accept': 'application/json', 
46    'X-RELAY-ACCESS-TOKEN': '<API_KEY_VALUE>'
47  },
48  data : data
49};
50
51axios(config)
52.then((response) => {
53  console.log(JSON.stringify(response.data));
54})
55.catch((error) => {
56  console.log(error);
57});
Copy sibling
1const https = require('follow-redirects').https;
2const fs = require('fs');
3
4let options = {
5  'method': 'POST',
6  'hostname': 'api.tinyemail.com',
7  'path': '/v1/relay/email/campaign',
8  'headers': {
9    'Content-Type': 'application/json',
10    'Accept': 'application/json',
11    'X-RELAY-ACCESS-TOKEN': '<API_KEY_VALUE>'
12  },
13  'maxRedirects': 20
14};
15
16const req = https.request(options, (res) => {
17  let chunks = [];
18
19  res.on("data", (chunk) => {
20    chunks.push(chunk);
21  });
22
23  res.on("end", (chunk) => {
24    let body = Buffer.concat(chunks);
25    console.log(body.toString());
26  });
27
28  res.on("error", (error) => {
29    console.error(error);
30  });
31});
32
33let postData = JSON.stringify({
34  "subject": "Email subject",
35  "body": "Email body is added here",
36  "preview": "This is the test subject preview",
37  "campaignId": "campaignId",
38  "sender": {
39    "from": {
40      "name": "Senders name",
41      "email": "sender@gmail.com"
42    },
43    "replyTo": {
44      "name": "Senders name",
45      "email": "sender@gmail.com"
46    }
47  },
48  "recipients": {
49    "to": [
50      {
51        "name": "Receivers name",
52        "email": "receiver1@gmail.com"
53      }
54    ],
55    "cc": [
56      {
57        "name": "Receivers name",
58        "email": "receiver1@gmail.com"
59      }
60    ],
61    "bcc": [
62      {
63        "name": "Receivers name",
64        "email": "receiver1@gmail.com"
65      }
66    ]
67  }
68});
69
70req.write(postData);
71
72req.end();
Copy sibling
1const request = require('request');
2let options = {
3  'method': 'POST',
4  'url': 'https://api.tinyemail.com/v1/relay/email/campaign',
5  'headers': {
6    'Content-Type': 'application/json',
7    'Accept': 'application/json',
8    'X-RELAY-ACCESS-TOKEN': '<API_KEY_VALUE>'
9  },
10  body: JSON.stringify({
11    "subject": "Email subject",
12    "body": "Email body is added here",
13    "preview": "This is the test subject preview",
14    "campaignId": "campaignId",
15    "sender": {
16      "from": {
17        "name": "Senders name",
18        "email": "sender@gmail.com"
19      },
20      "replyTo": {
21        "name": "Senders name",
22        "email": "sender@gmail.com"
23      }
24    },
25    "recipients": {
26      "to": [
27        {
28          "name": "Receivers name",
29          "email": "receiver1@gmail.com"
30        }
31      ],
32      "cc": [
33        {
34          "name": "Receivers name",
35          "email": "receiver1@gmail.com"
36        }
37      ],
38      "bcc": [
39        {
40          "name": "Receivers name",
41          "email": "receiver1@gmail.com"
42        }
43      ]
44    }
45  })
46
47};
48request(options, (error, response) => {
49  if (error) throw new Error(error);
50  console.log(response.body);
51});
Copy sibling
1const unirest = require('unirest');
2const req = unirest('POST', 'https://api.tinyemail.com/v1/relay/email/campaign')
3  .headers({
4    'Content-Type': 'application/json',
5    'Accept': 'application/json',
6    'X-RELAY-ACCESS-TOKEN': '<API_KEY_VALUE>'
7  })
8  .send(JSON.stringify({
9    "subject": "Email subject",
10    "body": "Email body is added here",
11    "preview": "This is the test subject preview",
12    "campaignId": "campaignId",
13    "sender": {
14      "from": {
15        "name": "Senders name",
16        "email": "sender@gmail.com"
17      },
18      "replyTo": {
19        "name": "Senders name",
20        "email": "sender@gmail.com"
21      }
22    },
23    "recipients": {
24      "to": [
25        {
26          "name": "Receivers name",
27          "email": "receiver1@gmail.com"
28        }
29      ],
30      "cc": [
31        {
32          "name": "Receivers name",
33          "email": "receiver1@gmail.com"
34        }
35      ],
36      "bcc": [
37        {
38          "name": "Receivers name",
39          "email": "receiver1@gmail.com"
40        }
41      ]
42    }
43  }))
44  .end((res) => { 
45    if (res.error) throw new Error(res.error); 
46    console.log(res.raw_body);
47  });
Copy sibling
1import requests
2import json
3
4url = "https://api.tinyemail.com/v1/relay/email/campaign"
5
6payload = json.dumps({
7  "subject": "Email subject",
8  "body": "Email body is added here",
9  "preview": "This is the test subject preview",
10  "campaignId": "campaignId",
11  "sender": {
12    "from": {
13      "name": "Senders name",
14      "email": "sender@gmail.com"
15    },
16    "replyTo": {
17      "name": "Senders name",
18      "email": "sender@gmail.com"
19    }
20  },
21  "recipients": {
22    "to": [
23      {
24        "name": "Receivers name",
25        "email": "receiver1@gmail.com"
26      }
27    ],
28    "cc": [
29      {
30        "name": "Receivers name",
31        "email": "receiver1@gmail.com"
32      }
33    ],
34    "bcc": [
35      {
36        "name": "Receivers name",
37        "email": "receiver1@gmail.com"
38      }
39    ]
40  }
41})
42headers = {
43  'Content-Type': 'application/json',
44  'Accept': 'application/json',
45  'X-RELAY-ACCESS-TOKEN': '<API_KEY_VALUE>'
46}
47
48response = requests.request("POST", url, headers=headers, data=payload)
49
50print(response.text)
Copy sibling
1import http.client
2import json
3
4conn = http.client.HTTPSConnection("api.tinyemail.com")
5payload = json.dumps({
6  "subject": "Email subject",
7  "body": "Email body is added here",
8  "preview": "This is the test subject preview",
9  "campaignId": "campaignId",
10  "sender": {
11    "from": {
12      "name": "Senders name",
13      "email": "sender@gmail.com"
14    },
15    "replyTo": {
16      "name": "Senders name",
17      "email": "sender@gmail.com"
18    }
19  },
20  "recipients": {
21    "to": [
22      {
23        "name": "Receivers name",
24        "email": "receiver1@gmail.com"
25      }
26    ],
27    "cc": [
28      {
29        "name": "Receivers name",
30        "email": "receiver1@gmail.com"
31      }
32    ],
33    "bcc": [
34      {
35        "name": "Receivers name",
36        "email": "receiver1@gmail.com"
37      }
38    ]
39  }
40})
41headers = {
42  'Content-Type': 'application/json',
43  'Accept': 'application/json',
44  'X-RELAY-ACCESS-TOKEN': '<API_KEY_VALUE>'
45}
46conn.request("POST", "/v1/relay/email/campaign", payload, headers)
47res = conn.getresponse()
48data = res.read()
49print(data.decode("utf-8"))
Copy sibling
1require "uri"
2require "json"
3require "net/http"
4
5url = URI("https://api.tinyemail.com/v1/relay/email/campaign")
6
7https = Net::HTTP.new(url.host, url.port)
8https.use_ssl = true
9
10request = Net::HTTP::Post.new(url)
11request["Content-Type"] = "application/json"
12request["Accept"] = "application/json"
13request["X-RELAY-ACCESS-TOKEN"] = "<API_KEY_VALUE>"
14request.body = JSON.dump({
15  "subject": "Email subject",
16  "body": "Email body is added here",
17  "preview": "This is the test subject preview",
18  "campaignId": "campaignId",
19  "sender": {
20    "from": {
21      "name": "Senders name",
22      "email": "sender@gmail.com"
23    },
24    "replyTo": {
25      "name": "Senders name",
26      "email": "sender@gmail.com"
27    }
28  },
29  "recipients": {
30    "to": [
31      {
32        "name": "Receivers name",
33        "email": "receiver1@gmail.com"
34      }
35    ],
36    "cc": [
37      {
38        "name": "Receivers name",
39        "email": "receiver1@gmail.com"
40      }
41    ],
42    "bcc": [
43      {
44        "name": "Receivers name",
45        "email": "receiver1@gmail.com"
46      }
47    ]
48  }
49})
50
51response = https.request(request)
52puts response.read_body
Copy sibling
1package main
2
3import (
4  "fmt"
5  "strings"
6  "net/http"
7  "io/ioutil"
8)
9
10func main() {
11
12  url := "https://api.tinyemail.com/v1/relay/email/campaign"
13  method := "POST"
14
15  payload := strings.NewReader(`{
16  "subject": "Email subject",
17  "body": "Email body is added here",
18  "preview": "This is the test subject preview",
19  "campaignId": "campaignId",
20  "sender": {
21    "from": {
22      "name": "Senders name",
23      "email": "sender@gmail.com"
24    },
25    "replyTo": {
26      "name": "Senders name",
27      "email": "sender@gmail.com"
28    }
29  },
30  "recipients": {
31    "to": [
32      {
33        "name": "Receivers name",
34        "email": "receiver1@gmail.com"
35      }
36    ],
37    "cc": [
38      {
39        "name": "Receivers name",
40        "email": "receiver1@gmail.com"
41      }
42    ],
43    "bcc": [
44      {
45        "name": "Receivers name",
46        "email": "receiver1@gmail.com"
47      }
48    ]
49  }
50}`)
51
52  client := &http.Client {
53  }
54  req, err := http.NewRequest(method, url, payload)
55
56  if err != nil {
57    fmt.Println(err)
58    return
59  }
60  req.Header.Add("Content-Type", "application/json")
61  req.Header.Add("Accept", "application/json")
62  req.Header.Add("X-RELAY-ACCESS-TOKEN", "<API_KEY_VALUE>")
63
64  res, err := client.Do(req)
65  if err != nil {
66    fmt.Println(err)
67    return
68  }
69  defer res.Body.Close()
70
71  body, err := ioutil.ReadAll(res.Body)
72  if err != nil {
73    fmt.Println(err)
74    return
75  }
76  fmt.Println(string(body))
77}
Copy sibling
1<?php
2
3$curl = curl_init();
4
5curl_setopt_array($curl, array(
6  CURLOPT_URL => 'https://api.tinyemail.com/v1/relay/email/campaign',
7  CURLOPT_RETURNTRANSFER => true,
8  CURLOPT_ENCODING => '',
9  CURLOPT_MAXREDIRS => 10,
10  CURLOPT_TIMEOUT => 0,
11  CURLOPT_FOLLOWLOCATION => true,
12  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
13  CURLOPT_CUSTOMREQUEST => 'POST',
14  CURLOPT_POSTFIELDS =>'{
15  "subject": "Email subject",
16  "body": "Email body is added here",
17  "preview": "This is the test subject preview",
18  "campaignId": "campaignId",
19  "sender": {
20    "from": {
21      "name": "Senders name",
22      "email": "sender@gmail.com"
23    },
24    "replyTo": {
25      "name": "Senders name",
26      "email": "sender@gmail.com"
27    }
28  },
29  "recipients": {
30    "to": [
31      {
32        "name": "Receivers name",
33        "email": "receiver1@gmail.com"
34      }
35    ],
36    "cc": [
37      {
38        "name": "Receivers name",
39        "email": "receiver1@gmail.com"
40      }
41    ],
42    "bcc": [
43      {
44        "name": "Receivers name",
45        "email": "receiver1@gmail.com"
46      }
47    ]
48  }
49}',
50  CURLOPT_HTTPHEADER => array(
51    'Content-Type: application/json',
52    'Accept: application/json',
53    'X-RELAY-ACCESS-TOKEN: <API_KEY_VALUE>'
54  ),
55));
56
57$response = curl_exec($curl);
58
59curl_close($curl);
60echo $response;
Copy sibling
1<?php
2$client = new Client();
3$headers = [
4  'Content-Type' => 'application/json',
5  'Accept' => 'application/json',
6  'X-RELAY-ACCESS-TOKEN' => '<API_KEY_VALUE>'
7];
8$body = '{
9  "subject": "Email subject",
10  "body": "Email body is added here",
11  "preview": "This is the test subject preview",
12  "campaignId": "campaignId",
13  "sender": {
14    "from": {
15      "name": "Senders name",
16      "email": "sender@gmail.com"
17    },
18    "replyTo": {
19      "name": "Senders name",
20      "email": "sender@gmail.com"
21    }
22  },
23  "recipients": {
24    "to": [
25      {
26        "name": "Receivers name",
27        "email": "receiver1@gmail.com"
28      }
29    ],
30    "cc": [
31      {
32        "name": "Receivers name",
33        "email": "receiver1@gmail.com"
34      }
35    ],
36    "bcc": [
37      {
38        "name": "Receivers name",
39        "email": "receiver1@gmail.com"
40      }
41    ]
42  }
43}';
44$request = new Request('POST', 'https://api.tinyemail.com/v1/relay/email/campaign', $headers, $body);
45$res = $client->sendAsync($request)->wait();
46echo $res->getBody();
Copy sibling
1<?php
2$client = new http\Client;
3$request = new http\Client\Request;
4$request->setRequestUrl('https://api.tinyemail.com/v1/relay/email/campaign');
5$request->setRequestMethod('POST');
6$body = new http\Message\Body;
7$body->append('{
8  "subject": "Email subject",
9  "body": "Email body is added here",
10  "preview": "This is the test subject preview",
11  "campaignId": "campaignId",
12  "sender": {
13    "from": {
14      "name": "Senders name",
15      "email": "sender@gmail.com"
16    },
17    "replyTo": {
18      "name": "Senders name",
19      "email": "sender@gmail.com"
20    }
21  },
22  "recipients": {
23    "to": [
24      {
25        "name": "Receivers name",
26        "email": "receiver1@gmail.com"
27      }
28    ],
29    "cc": [
30      {
31        "name": "Receivers name",
32        "email": "receiver1@gmail.com"
33      }
34    ],
35    "bcc": [
36      {
37        "name": "Receivers name",
38        "email": "receiver1@gmail.com"
39      }
40    ]
41  }
42}');
43$request->setBody($body);
44$request->setOptions(array());
45$request->setHeaders(array(
46  'Content-Type' => 'application/json',
47  'Accept' => 'application/json',
48  'X-RELAY-ACCESS-TOKEN' => '<API_KEY_VALUE>'
49));
50$client->enqueue($request)->send();
51$response = $client->getResponse();
52echo $response->getBody();
Copy sibling
1<?php
2require_once 'HTTP/Request2.php';
3$request = new HTTP_Request2();
4$request->setUrl('https://api.tinyemail.com/v1/relay/email/campaign');
5$request->setMethod(HTTP_Request2::METHOD_POST);
6$request->setConfig(array(
7  'follow_redirects' => TRUE
8));
9$request->setHeader(array(
10  'Content-Type' => 'application/json',
11  'Accept' => 'application/json',
12  'X-RELAY-ACCESS-TOKEN' => '<API_KEY_VALUE>'
13));
14$request->setBody('{\n  "subject": "Email subject",\n  "body": "Email body is added here",\n  "preview": "This is the test subject preview",\n  "campaignId": "campaignId",\n  "sender": {\n    "from": {\n      "name": "Senders name",\n      "email": "sender@gmail.com"\n    },\n    "replyTo": {\n      "name": "Senders name",\n      "email": "sender@gmail.com"\n    }\n  },\n  "recipients": {\n    "to": [\n      {\n        "name": "Receivers name",\n        "email": "receiver1@gmail.com"\n      }\n    ],\n    "cc": [\n      {\n        "name": "Receivers name",\n        "email": "receiver1@gmail.com"\n      }\n    ],\n    "bcc": [\n      {\n        "name": "Receivers name",\n        "email": "receiver1@gmail.com"\n      }\n    ]\n  }\n}');
15try {
16  $response = $request->send();
17  if ($response->getStatus() == 200) {
18    echo $response->getBody();
19  }
20  else {
21    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
22    $response->getReasonPhrase();
23  }
24}
25catch(HTTP_Request2_Exception $e) {
26  echo 'Error: ' . $e->getMessage();
27}
Copy sibling
1curl -L -X POST 'https://api.tinyemail.com/v1/relay/email/campaign' \
2-H 'Content-Type: application/json' \
3-H 'Accept: application/json' \
4-H 'X-RELAY-ACCESS-TOKEN: <API_KEY_VALUE>' \
5--data-raw '{
6  "subject": "Email subject",
7  "body": "Email body is added here",
8  "preview": "This is the test subject preview",
9  "campaignId": "campaignId",
10  "sender": {
11    "from": {
12      "name": "Senders name",
13      "email": "sender@gmail.com"
14    },
15    "replyTo": {
16      "name": "Senders name",
17      "email": "sender@gmail.com"
18    }
19  },
20  "recipients": {
21    "to": [
22      {
23        "name": "Receivers name",
24        "email": "receiver1@gmail.com"
25      }
26    ],
27    "cc": [
28      {
29        "name": "Receivers name",
30        "email": "receiver1@gmail.com"
31      }
32    ],
33    "bcc": [
34      {
35        "name": "Receivers name",
36        "email": "receiver1@gmail.com"
37      }
38    ]
39  }
40}'
Copy sibling
1var options = new RestClientOptions("")
2{
3  MaxTimeout = -1,
4};
5var client = new RestClient(options);
6var request = new RestRequest("https://api.tinyemail.com/v1/relay/email/campaign", Method.Post);
7request.AddHeader("Content-Type", "application/json");
8request.AddHeader("Accept", "application/json");
9request.AddHeader("X-RELAY-ACCESS-TOKEN", "<API_KEY_VALUE>");
10var body = @"{" + "\n" +
11@"  ""subject"": ""Email subject""," + "\n" +
12@"  ""body"": ""Email body is added here""," + "\n" +
13@"  ""preview"": ""This is the test subject preview""," + "\n" +
14@"  ""campaignId"": ""campaignId""," + "\n" +
15@"  ""sender"": {" + "\n" +
16@"    ""from"": {" + "\n" +
17@"      ""name"": ""Senders name""," + "\n" +
18@"      ""email"": ""sender@gmail.com""" + "\n" +
19@"    }," + "\n" +
20@"    ""replyTo"": {" + "\n" +
21@"      ""name"": ""Senders name""," + "\n" +
22@"      ""email"": ""sender@gmail.com""" + "\n" +
23@"    }" + "\n" +
24@"  }," + "\n" +
25@"  ""recipients"": {" + "\n" +
26@"    ""to"": [" + "\n" +
27@"      {" + "\n" +
28@"        ""name"": ""Receivers name""," + "\n" +
29@"        ""email"": ""receiver1@gmail.com""" + "\n" +
30@"      }" + "\n" +
31@"    ]," + "\n" +
32@"    ""cc"": [" + "\n" +
33@"      {" + "\n" +
34@"        ""name"": ""Receivers name""," + "\n" +
35@"        ""email"": ""receiver1@gmail.com""" + "\n" +
36@"      }" + "\n" +
37@"    ]," + "\n" +
38@"    ""bcc"": [" + "\n" +
39@"      {" + "\n" +
40@"        ""name"": ""Receivers name""," + "\n" +
41@"        ""email"": ""receiver1@gmail.com""" + "\n" +
42@"      }" + "\n" +
43@"    ]" + "\n" +
44@"  }" + "\n" +
45@"}";
46request.AddStringBody(body, DataFormat.Json);
47RestResponse response = await client.ExecuteAsync(request);
48Console.WriteLine(response.Content);
Copy sibling
1var client = new HttpClient();
2var request = new HttpRequestMessage(HttpMethod.Post, "https://api.tinyemail.com/v1/relay/email/campaign");
3request.Headers.Add("Accept", "application/json");
4request.Headers.Add("X-RELAY-ACCESS-TOKEN", "<API_KEY_VALUE>");
5var content = new StringContent("{\n  \"subject\": \"Email subject\",\n  \"body\": \"Email body is added here\",\n  \"preview\": \"This is the test subject preview\",\n  \"campaignId\": \"campaignId\",\n  \"sender\": {\n    \"from\": {\n      \"name\": \"Senders name\",\n      \"email\": \"sender@gmail.com\"\n    },\n    \"replyTo\": {\n      \"name\": \"Senders name\",\n      \"email\": \"sender@gmail.com\"\n    }\n  },\n  \"recipients\": {\n    \"to\": [\n      {\n        \"name\": \"Receivers name\",\n        \"email\": \"receiver1@gmail.com\"\n      }\n    ],\n    \"cc\": [\n      {\n        \"name\": \"Receivers name\",\n        \"email\": \"receiver1@gmail.com\"\n      }\n    ],\n    \"bcc\": [\n      {\n        \"name\": \"Receivers name\",\n        \"email\": \"receiver1@gmail.com\"\n      }\n    ]\n  }\n}", null, "application/json");
6request.Content = content;
7var response = await client.SendAsync(request);
8response.EnsureSuccessStatusCode();
9Console.WriteLine(await response.Content.ReadAsStringAsync());
Copy sibling
1OkHttpClient client = new OkHttpClient().newBuilder()
2  .build();
3MediaType mediaType = MediaType.parse("application/json");
4RequestBody body = RequestBody.create(mediaType, "{\n  \"subject\": \"Email subject\",\n  \"body\": \"Email body is added here\",\n  \"preview\": \"This is the test subject preview\",\n  \"campaignId\": \"campaignId\",\n  \"sender\": {\n    \"from\": {\n      \"name\": \"Senders name\",\n      \"email\": \"sender@gmail.com\"\n    },\n    \"replyTo\": {\n      \"name\": \"Senders name\",\n      \"email\": \"sender@gmail.com\"\n    }\n  },\n  \"recipients\": {\n    \"to\": [\n      {\n        \"name\": \"Receivers name\",\n        \"email\": \"receiver1@gmail.com\"\n      }\n    ],\n    \"cc\": [\n      {\n        \"name\": \"Receivers name\",\n        \"email\": \"receiver1@gmail.com\"\n      }\n    ],\n    \"bcc\": [\n      {\n        \"name\": \"Receivers name\",\n        \"email\": \"receiver1@gmail.com\"\n      }\n    ]\n  }\n}");
5Request request = new Request.Builder()
6  .url("https://api.tinyemail.com/v1/relay/email/campaign")
7  .method("POST", body)
8  .addHeader("Content-Type", "application/json")
9  .addHeader("Accept", "application/json")
10  .addHeader("X-RELAY-ACCESS-TOKEN", "<API_KEY_VALUE>")
11  .build();
12Response response = client.newCall(request).execute();
Copy sibling
1Unirest.setTimeouts(0, 0);
2HttpResponse<String> response = Unirest.post("https://api.tinyemail.com/v1/relay/email/campaign")
3  .header("Content-Type", "application/json")
4  .header("Accept", "application/json")
5  .header("X-RELAY-ACCESS-TOKEN", "<API_KEY_VALUE>")
6  .body("{\n  \"subject\": \"Email subject\",\n  \"body\": \"Email body is added here\",\n  \"preview\": \"This is the test subject preview\",\n  \"campaignId\": \"campaignId\",\n  \"sender\": {\n    \"from\": {\n      \"name\": \"Senders name\",\n      \"email\": \"sender@gmail.com\"\n    },\n    \"replyTo\": {\n      \"name\": \"Senders name\",\n      \"email\": \"sender@gmail.com\"\n    }\n  },\n  \"recipients\": {\n    \"to\": [\n      {\n        \"name\": \"Receivers name\",\n        \"email\": \"receiver1@gmail.com\"\n      }\n    ],\n    \"cc\": [\n      {\n        \"name\": \"Receivers name\",\n        \"email\": \"receiver1@gmail.com\"\n      }\n    ],\n    \"bcc\": [\n      {\n        \"name\": \"Receivers name\",\n        \"email\": \"receiver1@gmail.com\"\n      }\n    ]\n  }\n}")
7  .asString();
Copy sibling
1$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
2$headers.Add("Content-Type", "application/json")
3$headers.Add("Accept", "application/json")
4$headers.Add("X-RELAY-ACCESS-TOKEN", "<API_KEY_VALUE>")
5
6$body = @"
7{
8  `"subject`": `"Email subject`",
9  `"body`": `"Email body is added here`",
10  `"preview`": `"This is the test subject preview`",
11  `"campaignId`": `"campaignId`",
12  `"sender`": {
13    `"from`": {
14      `"name`": `"Senders name`",
15      `"email`": `"sender@gmail.com`"
16    },
17    `"replyTo`": {
18      `"name`": `"Senders name`",
19      `"email`": `"sender@gmail.com`"
20    }
21  },
22  `"recipients`": {
23    `"to`": [
24      {
25        `"name`": `"Receivers name`",
26        `"email`": `"receiver1@gmail.com`"
27      }
28    ],
29    `"cc`": [
30      {
31        `"name`": `"Receivers name`",
32        `"email`": `"receiver1@gmail.com`"
33      }
34    ],
35    `"bcc`": [
36      {
37        `"name`": `"Receivers name`",
38        `"email`": `"receiver1@gmail.com`"
39      }
40    ]
41  }
42}
43"@
44
45$response = Invoke-RestMethod 'https://api.tinyemail.com/v1/relay/email/campaign' -Method 'POST' -Headers $headers -Body $body
46$response | ConvertTo-Json

Fits right into
your tools

Unified Workflow Experience

Experience a unified workflow as our platform integrates directly with your tools, eliminating the need to switch between applications.

Streamlined Data Synchronization

Orbiting the planet at maximum velocity. The moon with the Rebel base will be in range in thirty minutes. This will be a day long remembered. It has seen the end of Kenobi.

Enhanced Collaboration Across Teams

Orbiting the planet at maximum velocity. The moon with the Rebel base will be in range in thirty minutes. This will be a day long remembered. It has seen the end of Kenobi.

Effortlessly integrate with your existing tools, ensuring a seamless transition and immediate enhancement to your marketing workflow.

Click to regenerate

2/8

Explore What we’re
offering

Bulletproof Deliverability

Rely on our cutting-edge infrastructure to ensure your emails land in the inbox, not the spam folder.

Scalable

Effortlessly scale your email campaigns with our cloud-based architecture, handling anything from small startups to enterprise-level volume.

Developer-Focused

Designed with developers in mind: comprehensive documentation, SDKs for popular languages, and a robust API for seamless integration.

Easy to Integrate

Engineered to be effortlessly incorporated, integrated regardless of your tech stack, allowing for quick and simple connections.

Scale your emails with

tinyRelay

Unleash the power of API within tinyRelay. Upgrade your productivity with tinyRelay.