> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pinkfish.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# sendgrid

> Email campaigns and contacts

**Server path:** `/sendgrid` | **Type:** Application | **PCID required:** Yes

## Tools

| Tool                                                                          | Description                                                                                                               |
| ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| [`sendgrid_send_email`](#sendgrid_send_email)                                 | Send an email via SendGrid. Supports HTML/plain text, CC/BCC, attachments via URL, and SendGrid templates                 |
| [`sendgrid_create_template`](#sendgrid_create_template)                       | Create a new email template container in SendGrid. After creating, use sendgrid\_create\_template\_version to add content |
| [`sendgrid_get_template`](#sendgrid_get_template)                             | Retrieve an email template including all versions. Returns template metadata and version content                          |
| [`sendgrid_list_templates`](#sendgrid_list_templates)                         | List all email templates in SendGrid. Returns template IDs needed for sendgrid\_send\_email                               |
| [`sendgrid_create_template_version`](#sendgrid_create_template_version)       | Create a new version of an email template                                                                                 |
| [`sendgrid_update_template_version`](#sendgrid_update_template_version)       | Update an existing template version                                                                                       |
| [`sendgrid_add_contact`](#sendgrid_add_contact)                               | Add a contact to SendGrid                                                                                                 |
| [`sendgrid_get_contact`](#sendgrid_get_contact)                               | Retrieve a contact by ID or email                                                                                         |
| [`sendgrid_update_contact`](#sendgrid_update_contact)                         | Update an existing contact                                                                                                |
| [`sendgrid_delete_contact`](#sendgrid_delete_contact)                         | Delete a contact from SendGrid                                                                                            |
| [`sendgrid_create_list`](#sendgrid_create_list)                               | Create a new contact list                                                                                                 |
| [`sendgrid_get_list`](#sendgrid_get_list)                                     | Retrieve a contact list by ID                                                                                             |
| [`sendgrid_list_contacts`](#sendgrid_list_contacts)                           | List all contacts with optional filtering                                                                                 |
| [`sendgrid_search_contacts`](#sendgrid_search_contacts)                       | Search contacts using SendGrid query language                                                                             |
| [`sendgrid_add_contacts_to_list`](#sendgrid_add_contacts_to_list)             | Add contacts to a specific list                                                                                           |
| [`sendgrid_remove_contacts_from_list`](#sendgrid_remove_contacts_from_list)   | Remove contacts from a specific list                                                                                      |
| [`sendgrid_get_email_stats`](#sendgrid_get_email_stats)                       | Get email statistics for a date range                                                                                     |
| [`sendgrid_get_bounce_stats`](#sendgrid_get_bounce_stats)                     | Retrieve bounced email records from SendGrid suppression list                                                             |
| [`sendgrid_get_suppression_groups`](#sendgrid_get_suppression_groups)         | List all suppression groups (unsubscribe groups)                                                                          |
| [`sendgrid_create_suppression_group`](#sendgrid_create_suppression_group)     | Create a new suppression group                                                                                            |
| [`sendgrid_list_verified_senders`](#sendgrid_list_verified_senders)           | List all verified sender identities. Use to check which "from" addresses are available for sending                        |
| [`sendgrid_delete_template`](#sendgrid_delete_template)                       | Delete an email template and all its versions                                                                             |
| [`sendgrid_delete_template_version`](#sendgrid_delete_template_version)       | Delete a specific version of an email template                                                                            |
| [`sendgrid_get_blocks`](#sendgrid_get_blocks)                                 | Retrieve emails blocked by receiving servers. Blocks occur when the receiving server rejects the message                  |
| [`sendgrid_get_spam_reports`](#sendgrid_get_spam_reports)                     | Retrieve emails that recipients reported as spam. Critical for monitoring sender reputation                               |
| [`sendgrid_get_invalid_emails`](#sendgrid_get_invalid_emails)                 | Retrieve invalid email addresses that could not receive mail due to formatting or DNS issues                              |
| [`sendgrid_get_global_suppressions`](#sendgrid_get_global_suppressions)       | Retrieve globally unsubscribed email addresses. These addresses will not receive any emails                               |
| [`sendgrid_get_categories`](#sendgrid_get_categories)                         | Retrieve all email categories used for organizing and filtering email statistics                                          |
| [`sendgrid_get_authenticated_domains`](#sendgrid_get_authenticated_domains)   | List all authenticated (whitelabel) domains. Shows domain verification status for sender reputation                       |
| [`sendgrid_list_api_keys`](#sendgrid_list_api_keys)                           | List all API keys for the account. Returns key names and IDs only (not the secret values)                                 |
| [`sendgrid_get_inbound_parse_settings`](#sendgrid_get_inbound_parse_settings) | Retrieve all inbound parse webhook settings. Shows which domains are configured to receive and parse incoming emails      |
| [`sendgrid_list_single_sends`](#sendgrid_list_single_sends)                   | List all Single Send campaigns. Requires Marketing Campaigns plan                                                         |
| [`sendgrid_validate_email`](#sendgrid_validate_email)                         | Validate an email address using SendGrid validation. Requires Email Validation add-on                                     |

***

## sendgrid\_send\_email

Send an email via SendGrid. Supports HTML/plain text, CC/BCC, attachments via URL, and SendGrid templates

**Parameters:**

| Parameter               | Type      | Required | Default | Description                                                                                                                                                                                |
| ----------------------- | --------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `to`                    | object\[] | Yes      | —       | Recipients array. Example: \[\{"email": "[john@example.com](mailto:john@example.com)", "name": "John Smith"}]                                                                              |
| `from`                  | object    | Yes      | —       | Sender info. Email must be verified domain/address in SendGrid                                                                                                                             |
| `subject`               | string    | Yes      | —       | Email subject line. Example: "Your Order Confirmation"                                                                                                                                     |
| `content`               | object\[] | Yes      | —       | Email body content. Provide both text/plain and text/html for best compatibility. Example: \[\{"type": "text/plain", "value": "Hello"}, \{"type": "text/html", "value": "\<p>Hello\</p>"}] |
| `reply_to`              | object    | No       | —       | Reply-to address (where replies go if different from sender)                                                                                                                               |
| `cc`                    | object\[] | No       | —       | CC recipients (visible to all). Example: \[\{"email": "[cc@example.com](mailto:cc@example.com)"}]                                                                                          |
| `bcc`                   | object\[] | No       | —       | BCC recipients (hidden from others). Example: \[\{"email": "[archive@example.com](mailto:archive@example.com)"}]                                                                           |
| `attachments`           | object\[] | No       | —       | Pre-encoded attachments (base64). Use attachmentUrls for URL-based attachments                                                                                                             |
| `attachmentUrls`        | string\[] | No       | —       | URLs of files to attach. Files will be fetched and attached automatically. Example: \["[https://example.com/report.pdf](https://example.com/report.pdf)"]                                  |
| `template_id`           | string    | No       | —       | SendGrid dynamic template ID. Get from sendgrid\_list\_templates. When used, subject and content may be optional                                                                           |
| `dynamic_template_data` | object    | No       | —       | Template variable substitutions. Example: \{"firstName": "John", "orderNumber": "12345"}                                                                                                   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for SendGrid connection"
      },
      "to": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "email": {
              "type": "string",
              "description": "Recipient email address"
            },
            "name": {
              "type": "string",
              "description": "Display name (shows in recipient field)"
            }
          }
        },
        "description": "Recipients array. Example: [{\"email\": \"john@example.com\", \"name\": \"John Smith\"}]"
      },
      "from": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Sender email (must be verified in SendGrid)"
          },
          "name": {
            "type": "string",
            "description": "Display name for sender. Example: \"My Company\""
          }
        },
        "description": "Sender info. Email must be verified domain/address in SendGrid"
      },
      "subject": {
        "type": "string",
        "description": "Email subject line. Example: \"Your Order Confirmation\""
      },
      "content": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "text/plain",
                "text/html"
              ],
              "description": "Content type: \"text/plain\" for plain text, \"text/html\" for HTML"
            },
            "value": {
              "type": "string",
              "description": "Email content. HTML example: \"<p>Hello <b>World</b></p>\""
            }
          }
        },
        "description": "Email body content. Provide both text/plain and text/html for best compatibility. Example: [{\"type\": \"text/plain\", \"value\": \"Hello\"}, {\"type\": \"text/html\", \"value\": \"<p>Hello</p>\"}]"
      },
      "reply_to": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email address for replies. Example: \"support@example.com\""
          },
          "name": {
            "type": "string",
            "description": "Display name for reply-to"
          }
        },
        "description": "Reply-to address (where replies go if different from sender)"
      },
      "cc": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "email": {
              "type": "string",
              "description": "CC email address"
            },
            "name": {
              "type": "string",
              "description": "CC display name"
            }
          }
        },
        "description": "CC recipients (visible to all). Example: [{\"email\": \"cc@example.com\"}]"
      },
      "bcc": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "email": {
              "type": "string",
              "description": "BCC email address"
            },
            "name": {
              "type": "string",
              "description": "BCC display name"
            }
          }
        },
        "description": "BCC recipients (hidden from others). Example: [{\"email\": \"archive@example.com\"}]"
      },
      "attachments": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "content": {
              "type": "string",
              "description": "Base64-encoded file content"
            },
            "filename": {
              "type": "string",
              "description": "Filename to display. Example: \"report.pdf\""
            },
            "type": {
              "type": "string",
              "description": "MIME type. Example: \"application/pdf\", \"image/png\""
            },
            "disposition": {
              "type": "string",
              "enum": [
                "attachment",
                "inline"
              ],
              "default": "attachment",
              "description": "\"attachment\" for downloadable, \"inline\" for embedded images"
            }
          }
        },
        "description": "Pre-encoded attachments (base64). Use attachmentUrls for URL-based attachments"
      },
      "attachmentUrls": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "URLs of files to attach. Files will be fetched and attached automatically. Example: [\"https://example.com/report.pdf\"]"
      },
      "template_id": {
        "type": "string",
        "description": "SendGrid dynamic template ID. Get from sendgrid_list_templates. When used, subject and content may be optional"
      },
      "dynamic_template_data": {
        "type": "object",
        "additionalProperties": true,
        "description": "Template variable substitutions. Example: {\"firstName\": \"John\", \"orderNumber\": \"12345\"}"
      }
    },
    "required": [
      "PCID",
      "to",
      "from",
      "subject",
      "content"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_create\_template

Create a new email template container in SendGrid. After creating, use sendgrid\_create\_template\_version to add content

**Parameters:**

| Parameter    | Type   | Required | Default     | Description                                                                                     |
| ------------ | ------ | -------- | ----------- | ----------------------------------------------------------------------------------------------- |
| `name`       | string | Yes      | —           | Template name for identification. Example: "Order Confirmation", "Welcome Email"                |
| `generation` | string | No       | `"dynamic"` | "dynamic" for templates with \{\{handlebar}} variables (recommended). "legacy" for older format |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for SendGrid connection"
      },
      "name": {
        "type": "string",
        "description": "Template name for identification. Example: \"Order Confirmation\", \"Welcome Email\""
      },
      "generation": {
        "type": "string",
        "enum": [
          "legacy",
          "dynamic"
        ],
        "default": "dynamic",
        "description": "\"dynamic\" for templates with {{handlebar}} variables (recommended). \"legacy\" for older format"
      }
    },
    "required": [
      "PCID",
      "name"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_template

Retrieve an email template including all versions. Returns template metadata and version content

**Parameters:**

| Parameter     | Type   | Required | Default | Description                                                                                        |
| ------------- | ------ | -------- | ------- | -------------------------------------------------------------------------------------------------- |
| `template_id` | string | Yes      | —       | Template ID to retrieve. Get from sendgrid\_list\_templates or sendgrid\_create\_template response |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for SendGrid connection"
      },
      "template_id": {
        "type": "string",
        "description": "Template ID to retrieve. Get from sendgrid_list_templates or sendgrid_create_template response"
      }
    },
    "required": [
      "PCID",
      "template_id"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_list\_templates

List all email templates in SendGrid. Returns template IDs needed for sendgrid\_send\_email

**Parameters:**

| Parameter     | Type   | Required | Default | Description                                                                       |
| ------------- | ------ | -------- | ------- | --------------------------------------------------------------------------------- |
| `generations` | string | No       | —       | Filter by type. "dynamic" = modern templates with variables. Default: returns all |
| `page_size`   | number | No       | `50`    | Number of templates per page. Default: 50. Max: 200                               |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID for SendGrid connection"
      },
      "generations": {
        "type": "string",
        "enum": [
          "legacy",
          "dynamic"
        ],
        "description": "Filter by type. \"dynamic\" = modern templates with variables. Default: returns all"
      },
      "page_size": {
        "type": "number",
        "default": 50,
        "description": "Number of templates per page. Default: 50. Max: 200"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_create\_template\_version

Create a new version of an email template

**Parameters:**

| Parameter       | Type    | Required | Default | Description                      |
| --------------- | ------- | -------- | ------- | -------------------------------- |
| `template_id`   | string  | Yes      | —       | Template ID                      |
| `name`          | string  | Yes      | —       | Version name                     |
| `subject`       | string  | Yes      | —       | Email subject template           |
| `html_content`  | string  | No       | —       | HTML content template            |
| `plain_content` | string  | No       | —       | Plain text content template      |
| `active`        | boolean | No       | —       | Whether this version is active   |
| `test_data`     | object  | No       | —       | Test data for template variables |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "template_id": {
        "type": "string",
        "description": "Template ID"
      },
      "name": {
        "type": "string",
        "description": "Version name"
      },
      "subject": {
        "type": "string",
        "description": "Email subject template"
      },
      "html_content": {
        "type": "string",
        "description": "HTML content template"
      },
      "plain_content": {
        "type": "string",
        "description": "Plain text content template"
      },
      "active": {
        "type": "boolean",
        "description": "Whether this version is active"
      },
      "test_data": {
        "type": "object",
        "additionalProperties": true,
        "description": "Test data for template variables"
      }
    },
    "required": [
      "PCID",
      "template_id",
      "name",
      "subject"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_update\_template\_version

Update an existing template version

**Parameters:**

| Parameter       | Type    | Required | Default | Description                    |
| --------------- | ------- | -------- | ------- | ------------------------------ |
| `template_id`   | string  | Yes      | —       | Template ID                    |
| `version_id`    | string  | Yes      | —       | Version ID to update           |
| `name`          | string  | No       | —       | Version name                   |
| `subject`       | string  | No       | —       | Email subject template         |
| `html_content`  | string  | No       | —       | HTML content template          |
| `plain_content` | string  | No       | —       | Plain text content template    |
| `active`        | boolean | No       | —       | Whether this version is active |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "template_id": {
        "type": "string",
        "description": "Template ID"
      },
      "version_id": {
        "type": "string",
        "description": "Version ID to update"
      },
      "name": {
        "type": "string",
        "description": "Version name"
      },
      "subject": {
        "type": "string",
        "description": "Email subject template"
      },
      "html_content": {
        "type": "string",
        "description": "HTML content template"
      },
      "plain_content": {
        "type": "string",
        "description": "Plain text content template"
      },
      "active": {
        "type": "boolean",
        "description": "Whether this version is active"
      }
    },
    "required": [
      "PCID",
      "template_id",
      "version_id"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_add\_contact

Add a contact to SendGrid

**Parameters:**

| Parameter       | Type      | Required | Default | Description                         |
| --------------- | --------- | -------- | ------- | ----------------------------------- |
| `email`         | string    | Yes      | —       | Contact email address               |
| `first_name`    | string    | No       | —       | Contact first name                  |
| `last_name`     | string    | No       | —       | Contact last name                   |
| `custom_fields` | object    | No       | —       | Custom field values for the contact |
| `list_ids`      | string\[] | No       | —       | List IDs to add the contact to      |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "email": {
        "type": "string",
        "description": "Contact email address"
      },
      "first_name": {
        "type": "string",
        "description": "Contact first name"
      },
      "last_name": {
        "type": "string",
        "description": "Contact last name"
      },
      "custom_fields": {
        "type": "object",
        "additionalProperties": true,
        "description": "Custom field values for the contact"
      },
      "list_ids": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "List IDs to add the contact to"
      }
    },
    "required": [
      "PCID",
      "email"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_contact

Retrieve a contact by ID or email

**Parameters:**

| Parameter    | Type   | Required | Default | Description           |
| ------------ | ------ | -------- | ------- | --------------------- |
| `contact_id` | string | No       | —       | Contact ID            |
| `email`      | string | No       | —       | Contact email address |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "contact_id": {
        "type": "string",
        "description": "Contact ID"
      },
      "email": {
        "type": "string",
        "description": "Contact email address"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_update\_contact

Update an existing contact

**Parameters:**

| Parameter       | Type   | Required | Default | Description                 |
| --------------- | ------ | -------- | ------- | --------------------------- |
| `contact_id`    | string | Yes      | —       | Contact ID to update        |
| `email`         | string | No       | —       | New email address           |
| `first_name`    | string | No       | —       | New first name              |
| `last_name`     | string | No       | —       | New last name               |
| `custom_fields` | object | No       | —       | Updated custom field values |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "contact_id": {
        "type": "string",
        "description": "Contact ID to update"
      },
      "email": {
        "type": "string",
        "description": "New email address"
      },
      "first_name": {
        "type": "string",
        "description": "New first name"
      },
      "last_name": {
        "type": "string",
        "description": "New last name"
      },
      "custom_fields": {
        "type": "object",
        "additionalProperties": true,
        "description": "Updated custom field values"
      }
    },
    "required": [
      "PCID",
      "contact_id"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_delete\_contact

Delete a contact from SendGrid

**Parameters:**

| Parameter    | Type   | Required | Default | Description          |
| ------------ | ------ | -------- | ------- | -------------------- |
| `contact_id` | string | Yes      | —       | Contact ID to delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "contact_id": {
        "type": "string",
        "description": "Contact ID to delete"
      }
    },
    "required": [
      "PCID",
      "contact_id"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_create\_list

Create a new contact list

**Parameters:**

| Parameter | Type   | Required | Default | Description |
| --------- | ------ | -------- | ------- | ----------- |
| `name`    | string | Yes      | —       | List name   |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "name": {
        "type": "string",
        "description": "List name"
      }
    },
    "required": [
      "PCID",
      "name"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_list

Retrieve a contact list by ID

**Parameters:**

| Parameter | Type   | Required | Default | Description         |
| --------- | ------ | -------- | ------- | ------------------- |
| `list_id` | string | Yes      | —       | List ID to retrieve |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "list_id": {
        "type": "string",
        "description": "List ID to retrieve"
      }
    },
    "required": [
      "PCID",
      "list_id"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_list\_contacts

List all contacts with optional filtering

**Parameters:**

| Parameter    | Type   | Required | Default | Description                          |
| ------------ | ------ | -------- | ------- | ------------------------------------ |
| `page_size`  | number | No       | `100`   | Number of contacts per page (1-1000) |
| `page_token` | string | No       | —       | Page token for pagination            |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "page_size": {
        "type": "number",
        "default": 100,
        "description": "Number of contacts per page (1-1000)"
      },
      "page_token": {
        "type": "string",
        "description": "Page token for pagination"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_search\_contacts

Search contacts using SendGrid query language

**Parameters:**

| Parameter | Type   | Required | Default | Description                                                                     |
| --------- | ------ | -------- | ------- | ------------------------------------------------------------------------------- |
| `query`   | string | Yes      | —       | Search query using SendGrid query language (e.g., "email LIKE '%@example.com'") |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "query": {
        "type": "string",
        "description": "Search query using SendGrid query language (e.g., \"email LIKE '%@example.com'\")"
      }
    },
    "required": [
      "PCID",
      "query"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_add\_contacts\_to\_list

Add contacts to a specific list

**Parameters:**

| Parameter     | Type      | Required | Default | Description                             |
| ------------- | --------- | -------- | ------- | --------------------------------------- |
| `list_id`     | string    | Yes      | —       | List ID                                 |
| `contact_ids` | string\[] | Yes      | —       | Array of contact IDs to add to the list |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "list_id": {
        "type": "string",
        "description": "List ID"
      },
      "contact_ids": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Array of contact IDs to add to the list"
      }
    },
    "required": [
      "PCID",
      "list_id",
      "contact_ids"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_remove\_contacts\_from\_list

Remove contacts from a specific list

**Parameters:**

| Parameter     | Type      | Required | Default | Description                                  |
| ------------- | --------- | -------- | ------- | -------------------------------------------- |
| `list_id`     | string    | Yes      | —       | List ID                                      |
| `contact_ids` | string\[] | Yes      | —       | Array of contact IDs to remove from the list |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "list_id": {
        "type": "string",
        "description": "List ID"
      },
      "contact_ids": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Array of contact IDs to remove from the list"
      }
    },
    "required": [
      "PCID",
      "list_id",
      "contact_ids"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_email\_stats

Get email statistics for a date range

**Parameters:**

| Parameter       | Type      | Required | Default | Description                              |
| --------------- | --------- | -------- | ------- | ---------------------------------------- |
| `start_date`    | string    | Yes      | —       | Start date for stats (YYYY-MM-DD format) |
| `end_date`      | string    | Yes      | —       | End date for stats (YYYY-MM-DD format)   |
| `aggregated_by` | string    | No       | `"day"` | How to aggregate the statistics          |
| `tags`          | string\[] | No       | —       | Filter by specific tags                  |
| `categories`    | string\[] | No       | —       | Filter by specific categories            |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "start_date": {
        "type": "string",
        "description": "Start date for stats (YYYY-MM-DD format)"
      },
      "end_date": {
        "type": "string",
        "description": "End date for stats (YYYY-MM-DD format)"
      },
      "aggregated_by": {
        "type": "string",
        "enum": [
          "day",
          "week",
          "month"
        ],
        "default": "day",
        "description": "How to aggregate the statistics"
      },
      "tags": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Filter by specific tags"
      },
      "categories": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Filter by specific categories"
      }
    },
    "required": [
      "PCID",
      "start_date",
      "end_date"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_bounce\_stats

Retrieve bounced email records from SendGrid suppression list

**Parameters:**

| Parameter    | Type   | Required | Default | Description                                 |
| ------------ | ------ | -------- | ------- | ------------------------------------------- |
| `start_date` | string | No       | —       | Start date filter (YYYY-MM-DD format)       |
| `end_date`   | string | No       | —       | End date filter (YYYY-MM-DD format)         |
| `limit`      | number | No       | —       | Maximum number of records to return (1-500) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "start_date": {
        "type": "string",
        "description": "Start date filter (YYYY-MM-DD format)"
      },
      "end_date": {
        "type": "string",
        "description": "End date filter (YYYY-MM-DD format)"
      },
      "limit": {
        "type": "number",
        "description": "Maximum number of records to return (1-500)"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_suppression\_groups

List all suppression groups (unsubscribe groups)

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_create\_suppression\_group

Create a new suppression group

**Parameters:**

| Parameter     | Type    | Required | Default | Description                                   |
| ------------- | ------- | -------- | ------- | --------------------------------------------- |
| `name`        | string  | Yes      | —       | Suppression group name                        |
| `description` | string  | Yes      | —       | Suppression group description                 |
| `is_default`  | boolean | No       | `false` | Whether this is the default suppression group |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "name": {
        "type": "string",
        "description": "Suppression group name"
      },
      "description": {
        "type": "string",
        "description": "Suppression group description"
      },
      "is_default": {
        "type": "boolean",
        "default": false,
        "description": "Whether this is the default suppression group"
      }
    },
    "required": [
      "PCID",
      "name",
      "description"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_list\_verified\_senders

List all verified sender identities. Use to check which "from" addresses are available for sending

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_delete\_template

Delete an email template and all its versions

**Parameters:**

| Parameter     | Type   | Required | Default | Description           |
| ------------- | ------ | -------- | ------- | --------------------- |
| `template_id` | string | Yes      | —       | Template ID to delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "template_id": {
        "type": "string",
        "description": "Template ID to delete"
      }
    },
    "required": [
      "PCID",
      "template_id"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_delete\_template\_version

Delete a specific version of an email template

**Parameters:**

| Parameter     | Type   | Required | Default | Description          |
| ------------- | ------ | -------- | ------- | -------------------- |
| `template_id` | string | Yes      | —       | Template ID          |
| `version_id`  | string | Yes      | —       | Version ID to delete |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "template_id": {
        "type": "string",
        "description": "Template ID"
      },
      "version_id": {
        "type": "string",
        "description": "Version ID to delete"
      }
    },
    "required": [
      "PCID",
      "template_id",
      "version_id"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_blocks

Retrieve emails blocked by receiving servers. Blocks occur when the receiving server rejects the message

**Parameters:**

| Parameter    | Type   | Required | Default | Description                                 |
| ------------ | ------ | -------- | ------- | ------------------------------------------- |
| `start_date` | string | No       | —       | Start date filter (YYYY-MM-DD format)       |
| `end_date`   | string | No       | —       | End date filter (YYYY-MM-DD format)         |
| `limit`      | number | No       | —       | Maximum number of records to return (1-500) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "start_date": {
        "type": "string",
        "description": "Start date filter (YYYY-MM-DD format)"
      },
      "end_date": {
        "type": "string",
        "description": "End date filter (YYYY-MM-DD format)"
      },
      "limit": {
        "type": "number",
        "description": "Maximum number of records to return (1-500)"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_spam\_reports

Retrieve emails that recipients reported as spam. Critical for monitoring sender reputation

**Parameters:**

| Parameter    | Type   | Required | Default | Description                                 |
| ------------ | ------ | -------- | ------- | ------------------------------------------- |
| `start_date` | string | No       | —       | Start date filter (YYYY-MM-DD format)       |
| `end_date`   | string | No       | —       | End date filter (YYYY-MM-DD format)         |
| `limit`      | number | No       | —       | Maximum number of records to return (1-500) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "start_date": {
        "type": "string",
        "description": "Start date filter (YYYY-MM-DD format)"
      },
      "end_date": {
        "type": "string",
        "description": "End date filter (YYYY-MM-DD format)"
      },
      "limit": {
        "type": "number",
        "description": "Maximum number of records to return (1-500)"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_invalid\_emails

Retrieve invalid email addresses that could not receive mail due to formatting or DNS issues

**Parameters:**

| Parameter    | Type   | Required | Default | Description                                 |
| ------------ | ------ | -------- | ------- | ------------------------------------------- |
| `start_date` | string | No       | —       | Start date filter (YYYY-MM-DD format)       |
| `end_date`   | string | No       | —       | End date filter (YYYY-MM-DD format)         |
| `limit`      | number | No       | —       | Maximum number of records to return (1-500) |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "start_date": {
        "type": "string",
        "description": "Start date filter (YYYY-MM-DD format)"
      },
      "end_date": {
        "type": "string",
        "description": "End date filter (YYYY-MM-DD format)"
      },
      "limit": {
        "type": "number",
        "description": "Maximum number of records to return (1-500)"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_global\_suppressions

Retrieve globally unsubscribed email addresses. These addresses will not receive any emails

**Parameters:**

| Parameter    | Type   | Required | Default | Description                              |
| ------------ | ------ | -------- | ------- | ---------------------------------------- |
| `start_date` | string | No       | —       | Start date filter (YYYY-MM-DD format)    |
| `end_date`   | string | No       | —       | End date filter (YYYY-MM-DD format)      |
| `limit`      | number | No       | —       | Maximum number of records to return      |
| `offset`     | number | No       | —       | Number of records to skip for pagination |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "start_date": {
        "type": "string",
        "description": "Start date filter (YYYY-MM-DD format)"
      },
      "end_date": {
        "type": "string",
        "description": "End date filter (YYYY-MM-DD format)"
      },
      "limit": {
        "type": "number",
        "description": "Maximum number of records to return"
      },
      "offset": {
        "type": "number",
        "description": "Number of records to skip for pagination"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_categories

Retrieve all email categories used for organizing and filtering email statistics

**Parameters:**

| Parameter  | Type   | Required | Default | Description                                  |
| ---------- | ------ | -------- | ------- | -------------------------------------------- |
| `limit`    | number | No       | —       | Number of categories to return (default: 50) |
| `offset`   | number | No       | —       | Number of categories to skip for pagination  |
| `category` | string | No       | —       | Prefix search filter on category names       |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "limit": {
        "type": "number",
        "description": "Number of categories to return (default: 50)"
      },
      "offset": {
        "type": "number",
        "description": "Number of categories to skip for pagination"
      },
      "category": {
        "type": "string",
        "description": "Prefix search filter on category names"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_authenticated\_domains

List all authenticated (whitelabel) domains. Shows domain verification status for sender reputation

**Parameters:**

| Parameter | Type   | Required | Default | Description                              |
| --------- | ------ | -------- | ------- | ---------------------------------------- |
| `limit`   | number | No       | —       | Number of domains to return              |
| `offset`  | number | No       | —       | Number of domains to skip for pagination |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "limit": {
        "type": "number",
        "description": "Number of domains to return"
      },
      "offset": {
        "type": "number",
        "description": "Number of domains to skip for pagination"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_list\_api\_keys

List all API keys for the account. Returns key names and IDs only (not the secret values)

**Parameters:**

| Parameter | Type   | Required | Default | Description                      |
| --------- | ------ | -------- | ------- | -------------------------------- |
| `limit`   | number | No       | —       | Maximum number of keys to return |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "limit": {
        "type": "number",
        "description": "Maximum number of keys to return"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_get\_inbound\_parse\_settings

Retrieve all inbound parse webhook settings. Shows which domains are configured to receive and parse incoming emails

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_list\_single\_sends

List all Single Send campaigns. Requires Marketing Campaigns plan

**Parameters:**

| Parameter    | Type   | Required | Default | Description                    |
| ------------ | ------ | -------- | ------- | ------------------------------ |
| `page_size`  | number | No       | —       | Number of results per page     |
| `page_token` | string | No       | —       | Pagination token for next page |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "page_size": {
        "type": "number",
        "description": "Number of results per page"
      },
      "page_token": {
        "type": "string",
        "description": "Pagination token for next page"
      }
    },
    "required": [
      "PCID"
    ]
  }
  ```
</Expandable>

***

## sendgrid\_validate\_email

Validate an email address using SendGrid validation. Requires Email Validation add-on

**Parameters:**

| Parameter | Type   | Required | Default | Description                                        |
| --------- | ------ | -------- | ------- | -------------------------------------------------- |
| `email`   | string | Yes      | —       | Email address to validate                          |
| `source`  | string | No       | —       | Source identifier for tracking validation requests |

<Expandable title="inputSchema">
  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "PCID": {
        "type": "string",
        "description": "Pink Connect ID"
      },
      "email": {
        "type": "string",
        "description": "Email address to validate"
      },
      "source": {
        "type": "string",
        "description": "Source identifier for tracking validation requests"
      }
    },
    "required": [
      "PCID",
      "email"
    ]
  }
  ```
</Expandable>
