Overview
Add SendGrid to any ModuleX agent or workflow. SendGrid transactional + marketing email integration via the SendGrid v3 REST API. Pure HTTP, no SDK dep.
Categories : Marketing & Advertising · Marketing & Email · Email · Automation · Auth : API Key · Actions : 15
Authentication
API Key Authentication
Authenticate using your SendGrid API key. Create one in Settings > API Keys.
Required Credentials
Field Description Required Format SendGrid API Key Your SendGrid API key for API authentication Yes SG.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Available Actions
send_email — Send a single transactional email to one recipient
Parameters Sender email address (must be verified)
Email body content (plain text or HTML)
Content type (‘text/plain’ or ‘text/html’) (Default: text/plain)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"message" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Message"
},
"to" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "To"
},
"subject" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Subject"
},
"message_id" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Message Id"
}
},
"required" : [
"success"
],
"title" : "SendEmailOutput" ,
"type" : "object"
}
send_email_multiple_recipients — Send the same email to multiple recipients individually (each recipient gets a separate copy)
Parameters List of recipient email addresses
Sender email address (must be verified)
Email body content (plain text or HTML)
Content type (‘text/plain’ or ‘text/html’) (Default: text/plain)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"message" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Message"
},
"recipient_count" : {
"default" : 0 ,
"title" : "Recipient Count" ,
"type" : "integer"
},
"recipients" : {
"items" : {
"type" : "string"
},
"title" : "Recipients" ,
"type" : "array"
},
"subject" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Subject"
},
"message_id" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Message Id"
}
},
"required" : [
"success"
],
"title" : "SendEmailMultipleRecipientsOutput" ,
"type" : "object"
}
add_or_update_contact — Create a new contact or update an existing one (matched by email). Optionally adds to specified lists.
search_contacts — Search contacts using SendGrid Query Language (SGQL)
create_contact_list — Create a new contact list
get_contact_lists — Get all contact lists with their IDs and counts
remove_contact_from_list — Remove contacts from a list (does not delete them)
delete_contacts — Permanently delete specified contacts (or all)
add_email_to_global_suppression — Add emails to the global suppression group
Parameters Email addresses to suppress
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"message" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Message"
},
"suppressed_emails" : {
"items" : {
"type" : "string"
},
"title" : "Suppressed Emails" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "AddEmailToGlobalSuppressionOutput" ,
"type" : "object"
}
delete_global_suppression — Remove an email from the global suppression group
Parameters Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"message" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Message"
},
"email" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Email"
}
},
"required" : [
"success"
],
"title" : "DeleteGlobalSuppressionOutput" ,
"type" : "object"
}
list_global_suppressions — List all globally suppressed (unsubscribed) emails
Parameters Start time as Unix timestamp
End time as Unix timestamp
Maximum number of results (Default: 100)
Response {
"$defs" : {
"SuppressionRow" : {
"additionalProperties" : false ,
"properties" : {
"email" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Email"
},
"created" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Created"
},
"reason" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Reason"
},
"status" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Status"
}
},
"title" : "SuppressionRow" ,
"type" : "object"
}
},
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"suppressions" : {
"items" : {
"$ref" : "#/$defs/SuppressionRow"
},
"title" : "Suppressions" ,
"type" : "array"
},
"count" : {
"default" : 0 ,
"title" : "Count" ,
"type" : "integer"
}
},
"required" : [
"success"
],
"title" : "ListGlobalSuppressionsOutput" ,
"type" : "object"
}
get_all_bounces — Get all bounced email addresses
Parameters Start time as Unix timestamp
End time as Unix timestamp
Response {
"$defs" : {
"SuppressionRow" : {
"additionalProperties" : false ,
"properties" : {
"email" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Email"
},
"created" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Created"
},
"reason" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Reason"
},
"status" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Status"
}
},
"title" : "SuppressionRow" ,
"type" : "object"
}
},
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"bounces" : {
"items" : {
"$ref" : "#/$defs/SuppressionRow"
},
"title" : "Bounces" ,
"type" : "array"
},
"count" : {
"default" : 0 ,
"title" : "Count" ,
"type" : "integer"
}
},
"required" : [
"success"
],
"title" : "GetAllBouncesOutput" ,
"type" : "object"
}
delete_bounces — Remove emails from the bounces list
Parameters Email addresses to remove from bounce
Delete every bounce (use with caution) (Default: false)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"message" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Message"
},
"deleted_count" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Deleted Count"
}
},
"required" : [
"success"
],
"title" : "DeleteBouncesOutput" ,
"type" : "object"
}
list_blocks — List all blocked email addresses
Parameters Start time as Unix timestamp
End time as Unix timestamp
Maximum number of results (Default: 100)
Response {
"$defs" : {
"SuppressionRow" : {
"additionalProperties" : false ,
"properties" : {
"email" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Email"
},
"created" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Created"
},
"reason" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Reason"
},
"status" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Status"
}
},
"title" : "SuppressionRow" ,
"type" : "object"
}
},
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"blocks" : {
"items" : {
"$ref" : "#/$defs/SuppressionRow"
},
"title" : "Blocks" ,
"type" : "array"
},
"count" : {
"default" : 0 ,
"title" : "Count" ,
"type" : "integer"
}
},
"required" : [
"success"
],
"title" : "ListBlocksOutput" ,
"type" : "object"
}
delete_blocks — Remove emails from the blocks list
Parameters Email addresses to remove from block
Delete every block (use with caution) (Default: false)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"message" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Message"
},
"deleted_count" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Deleted Count"
}
},
"required" : [
"success"
],
"title" : "DeleteBlocksOutput" ,
"type" : "object"
}
Limits & Quotas
30s timeout on every request.
get_contact_lists.page_size is clamped at 1000 (SendGrid max).
Mutating actions wrap everything in try/except → success=False
envelope (exa-style); HTTP timeouts surface as a distinct error
message.
Links