To achieve effortless email integration with SendGrid through cURL, we've compiled a series of comprehensive examples that cover various use cases. Whether you're sending messages, multiple recipient emails, using templates, or scheduling emails, our cURL examples make the process a breeze.
Here's a cURL example to send a "Hello, World!" email through SendGrid's v3 Mail Send endpoint. Replace YOUR_API_KEY with your actual API key:
1curl --request POST \2--url https://api.sendgrid.com/v3/mail/send \3--header 'Authorization: Bearer YOUR_API_KEY' \4--header 'Content-Type: application/json' \5--data '{"personalizations": [{"to": [{"email": "recipient@example.com"}]}],"from": {"email": "sendeexampexample@example.com"},"subject": "Hello, World!","content": [{"type": "text/plain", "value": "Heya!"}]}'
For scenarios involving multiple recipients, our cURL example demonstrates how to send an email to multiple addresses:
1curl --request POST \2--url https://api.sendgrid.com/v3/mail/send \3--header 'authorization: Bearer YOUR_API_KEY' \4--header 'Content-Type: application/json' \5--data '{"personalizations": [{"to": [{"email": "recipient@example.com"}],"cc": [{"email":"recipient2@example.com"}, {"email": "recipient3@example.com"}, {"email":"recipient4@example.com"}]}], "from": {"email": "sendeexampexample@example.com"},"subject":"Hello, World!", "content": [{"type": "text/plain", "value": "Heya!"}]}'
If you prefer to use templates for your emails, this cURL example shows you how to send an email using a template. Replace YOUR_TEMPLATE_ID with your actual template ID:
1curl --request POST \2--url https://api.sendgrid.com/v3/mail/send \3--header 'authorization: Bearer YOUR_API_KEY' \4--header 'Content-Type: application/json' \5--data '{"personalizations": [{"to": [{"email": "recipient@example.com"}]}],"from": {"email": "sendeexampexample@example.com"},"subject":"Hello, World!","content": [{"type": "text/plain","value": "Heya!"}], "template_id" : "YOUR_TEMPLATE_ID"}'
Our cURL example demonstrates how to send an email with attachments, catering to scenarios where you need to include files with your emails:
1curl --request POST \2--url https://api.sendgrid.com/v3/mail/send \3--header 'authorization: Bearer YOUR_API_KEY' \4--header 'Content-Type: application/json' \5--data '{"personalizations": [{"to": [{"email": "recipient@example.com"}]}],"from": {"email": "sender@example.com"},"subject":"Hello, World!","content": [{"type": "text/html","value": "Hey, Please find attachment."}], "attachments": [{"content": "BASE64_ENCODED_CONTENT", "type": "text/plain", "filename": "attachment.txt"}]}'
In cases where scheduling emails is necessary, our cURL example demonstrates how to send an email at a specified time. Replace UNIX_TIMESTAMP_HERE with your desired timestamp:
1curl --request POST \2--url https://api.sendgrid.com/v3/mail/send \3--header 'authorization: Bearer YOUR_API_KEY' \4--header 'Content-Type: application/json' \5--data '{"personalizations": [{"to": [{"email": "recipient@example.com"}]}],"from": {"email": "sendeexampexample@example.com"},"subject":"Hello, World!","content": [{"type": "text/plain","value": "Heya!"}], "send_at" : UNIX_TIMESTAMP_HERE}'
To explore advanced scheduling and email cancellation, we provide step-by-step guidance. You can schedule an email for future delivery and even cancel it if necessary.
You may schedule an email to be sent up to 72 hours in the future by using the send_at
parameter. You may cancel this same scheduled email by using the Cancel Scheduled Sends endpoint.
Step 1: Generate a batch ID
1curl --request POST \2--url https://api.sendgrid.com/v3/mail/batch \3--header 'authorization: Bearer YOUR_API_KEY' \4--header 'Content-Type: application/json' \
Step 2: Schedule the email to be sent, using your new batch ID
1curl --request POST \2--url https://api.sendgrid.com/v3/mail/send \3--header 'authorization: Bearer YOUR_API_KEY' \4--header 'Content-Type: application/json' \5--data '{"personalizations": [{"to": [{"email": "recipient@example.com"}]}],"from": {"email": "sendeexampexample@example.com"},"subject":"Hello, World!","content": [{"type": "text/plain","value": "Heya!"}], "send_at" : UNIX_TIMESTAMP_HERE, "batch_id" : "YOUR_BATCH_ID"}'
Step 3: Cancel the scheduled email
1curl --request POST \2--url https://api.sendgrid.com/v3/user/scheduled_sends \3--header 'authorization: Bearer YOUR_API_KEY' \4--header 'Content-Type: application/json' \5--data '{"batch_id":"YOUR_BATCH_ID","status":"cancel"}'