Everything you need to integrate Fuddlink into your application and start sending emails reliably.
Sign up for a Fuddlink account and retrieve your API key from the dashboard.
Create AccountUse our REST API to send your first transmission in seconds.
curl -X POST https://api.fudd.link/v1/transmissions \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"recipients": [
{
"address": {
"email": "john.doe@acme.com",
"name": "John Doe"
}
}
],
"content": {
"from": "deals@acme.com",
"subject": "Hello from Fuddlink!",
"html": "<h1>Welcome to Fuddlink</h1>"
}
}'Fuddlink uses API keys for authentication. Include your API key in the Authorization header:
Authorization: YOUR_API_KEYSecurity Note: Keep your API keys secret and never expose them in client-side code.
Transmissions are the core way to send emails through Fuddlink. Create and send emails to one or more recipients with customizable content and tracking options.
POST /v1/transmissions
{
"recipients": [
{
"address": {
"email": "john.doe@acme.com",
"name": "John Doe"
}
}
],
"content": {
"from": "deals@acme.com",
"subject": "Your Subject",
"html": "<p>Your HTML content</p>",
"text": "Your plain text content"
}
}POST /v1/transmissions
{
"recipients": [
{
"address": {
"email": "john.doe@acme.com",
"name": "John Doe"
}
}
],
"content": {
"from": {
"email": "deals@acme.com",
"name": "Acme"
},
"subject": "Invoice #123",
"html": "<p>Please find your invoice attached.</p>",
"attachments": [
{
"name": "billing.pdf",
"type": "application/pdf",
"data": "V2VsY29tZSB0byBvdXIgZW1haWwgc2VydmljZSE="
}
]
}
}POST /v1/transmissions
{
"recipients": [
{
"address": {
"email": "john.doe@acme.com",
"name": "John Doe"
},
"substitution_data": {
"customer_type": "Platinum"
}
},
{
"address": {
"email": "jane.smith@acme.com",
"name": "Jane Smith"
},
"substitution_data": {
"customer_type": "Gold"
}
}
],
"content": {
"from": "newsletter@acme.com",
"subject": "{{customer_type}} Member Benefits",
"html": "<p>Hi {{address.name}}, enjoy your {{customer_type}} benefits!</p>"
}
}Fuddlink supports two types of email content: inline content and RFC822 content.
Specify email content directly in the API request with structured fields.
{
"content": {
"from": {
"email": "deals@acme.com",
"name": "Acme"
},
"subject": "Big Black Friday savings!",
"text": "Hi {{address.name}}\nSave big this Black Friday!",
"html": "<p>Hi {{address.name}}</p><p>Save big this Black Friday!</p>",
"reply_to": "sales@acme.com",
"headers": {
"X-Custom-Header": "campaign-123"
}
}
}Provide a pre-built RFC822 email message for complete control over the email format.
{
"content": {
"email_rfc822": "Content-Type: text/plain\nTo: \"{{address.name}}\" <{{address.email}}>\nSubject: {{subject}}\n\nHi {{address.name}},\n\nYour message content here.\n\nBest regards,\n{{sender}}"
}
}Personalize emails using template variables. Set variables at the transmission level for all recipients, or override them per recipient.
Use double curly braces to reference variables in your content.
{
"content": {
"subject": "Hi {{address.name}}, {{holiday_name}} deals await!",
"html": "<p>Hi {{address.name}},</p><p>Check out our {{holiday_name}} deals in {{place}}!</p>"
},
"substitution_data": {
"holiday_name": "Black Friday",
"sender": "Acme Team"
}
}Override transmission-level variables for specific recipients.
{
"recipients": [
{
"address": {
"email": "john.doe@acme.com",
"name": "John Doe"
},
"substitution_data": {
"customer_type": "Platinum",
"place": "Anytown"
},
"metadata": {
"age": "24",
"user_id": "12345"
}
}
]
}Configure email tracking and behavior options.
{
"options": {
"open_tracking": true,
"click_tracking": true,
"transactional": false,
"inline_css": false,
"perform_substitutions": true
}
}const axios = require('axios');
async function sendTransmission() {
try {
const response = await axios.post('https://api.fudd.link/v1/transmissions', {
recipients: [
{
address: {
email: 'john.doe@acme.com',
name: 'John Doe'
}
}
],
content: {
from: 'deals@acme.com',
subject: 'Hello from Fuddlink!',
html: '<h1>Welcome to our service!</h1>',
text: 'Welcome to our service!'
}
}, {
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
});
console.log('Transmission sent:', response.data.results.id);
} catch (error) {
console.error('Error:', error.response?.data);
}
}import requests
import json
def send_transmission():
url = 'https://api.fudd.link/v1/transmissions'
headers = {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
payload = {
'recipients': [
{
'address': {
'email': 'john.doe@acme.com',
'name': 'John Doe'
}
}
],
'content': {
'from': 'deals@acme.com',
'subject': 'Hello from Fuddlink!',
'html': '<h1>Welcome to our service!</h1>',
'text': 'Welcome to our service!'
}
}
try:
response = requests.post(url, headers=headers, data=json.dumps(payload))
result = response.json()
print(f"Transmission sent: {result['results']['id']}")
except Exception as e:
print(f"Error: {e}")<?php
function sendTransmission() {
$url = 'https://api.fudd.link/v1/transmissions';
$headers = [
'Authorization: YOUR_API_KEY',
'Content-Type: application/json'
];
$payload = [
'recipients' => [
[
'address' => [
'email' => 'john.doe@acme.com',
'name' => 'John Doe'
]
]
],
'content' => [
'from' => 'deals@acme.com',
'subject' => 'Hello from Fuddlink!',
'html' => '<h1>Welcome to our service!</h1>',
'text' => 'Welcome to our service!'
]
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
$result = json_decode($response, true);
echo "Transmission sent: " . $result['results']['id'] . "\n";
} else {
echo "Error: " . $response . "\n";
}
}
sendTransmission();
?>curl -X POST https://api.fudd.link/v1/transmissions \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"recipients": [
{
"address": {
"email": "john.doe@acme.com",
"name": "John Doe"
}
}
],
"content": {
"from": "deals@acme.com",
"subject": "Hello from Fuddlink!",
"html": "<h1>Welcome to our service!</h1>",
"text": "Welcome to our service!"
},
"options": {
"open_tracking": true,
"click_tracking": true
}
}'