cURL Examples for Common Use Cases
Exploring cURL Examples for Seamless SendGrid Integration
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 simple messages, multiple recipient emails, using templates, or scheduling emails, our cURL examples make the process a breeze.
Here's a basic cURL example to send a simple "Hello, World!" email through SendGrid's v3 Mail Send endpoint. Replace YOUR_API_KEY with your actual API key:
Hello, World!
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"personalizations": [{"to": [{"email": "recipient@example.com"}]}],"from": {"email": "sendeexampexample@example.com"},"subject": "Hello, World!","content": [{"type": "text/plain", "value": "Heya!"}]}'
Sending a Basic Email to Multiple Recipients
For scenarios involving multiple recipients, our cURL example demonstrates how to send a basic email to multiple addresses:
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--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!"}]}'
Sending a Basic Email Using a Template
If you prefer to use templates for your emails, this cURL example shows you how to send a basic email using a template. Replace YOUR_TEMPLATE_ID with your actual template ID:
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--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"}'
Sending a Basic Email with Attachment
Our cURL example demonstrates how to send an email with attachments, catering to scenarios where you need to include files with your emails:
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"personalizations": [{"to": [{"email": "recipient@example.com"}]}],"from": {"email": "sender@example.com"},"subject":"Hello, World!","content": [{"type": "text/html","value": "Hey,<br>Please find attachment."}], "attachments": [{"content": "BASE64_ENCODED_CONTENT", "type": "text/plain", "filename": "attachment.txt"}]}'
Sending a Basic Email at a Scheduled Time
In cases where scheduling emails is necessary, our cURL example demonstrates how to send a basic email at a specified time. Replace UNIX_TIMESTAMP_HERE with your desired timestamp:
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--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}'
Scheduling and Cancelling an Email
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
curl --request POST \
--url https://api.sendgrid.com/v3/mail/batch \
--header 'authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
Step 2: Schedule the email to be sent, using your new batch ID
curl --request POST \
--url https://api.sendgrid.com/v3/mail/send \
--header 'authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--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
curl --request POST \
--url https://api.sendgrid.com/v3/user/scheduled_sends \
--header 'authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"batch_id":"YOUR_BATCH_ID","status":"cancel"}'
Need some help?
We all do sometimes. Get help now from the Twilio SendGrid Support Team.
Running into a coding hurdle? Lean on the wisdom of the crowd by browsing the SendGrid tag on Stack Overflow or visiting Twilio's Stack Overflow Collective.