--- name: pp-sendgrid description: "Every Twilio SendGrid endpoint, plus offline suppression diffs, stats time-series rollups, and a template-variable... Trigger phrases: `send transactional mail`, `manage SendGrid suppressions`, `audit SendGrid bounces`, `SendGrid templates lint`, `SendGrid stats rollup`, `use sendgrid`, `run sendgrid`." author: "Nathan Kettles" license: "Apache-2.0" argument-hint: " [args] | install cli|mcp" allowed-tools: "Read Bash" metadata: openclaw: requires: bins: - sendgrid-pp-cli --- # Twilio SendGrid — Printing Press CLI ## Prerequisites: Install the CLI This skill drives the `sendgrid-pp-cli` binary. **You must verify the CLI is installed before invoking any command from this skill.** If it is missing, install it first: 1. Install via the Printing Press installer: ```bash npx -y @mvanhorn/printing-press-library install sendgrid --cli-only ``` 2. Verify: `sendgrid-pp-cli --version` 3. Ensure `$GOPATH/bin` (or `$HOME/go/bin`) is on `$PATH`. If the `npx` install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.3 or newer): ```bash go install github.com/mvanhorn/printing-press-library/library/productivity/sendgrid/cmd/sendgrid-pp-cli@latest ``` If `--version` reports "command not found" after install, the install step did not put the binary on `$PATH`. Do not proceed with skill commands until verification succeeds. ## When to Use This CLI Use sendgrid-pp-cli for any SendGrid task an agent or operator wants to run from the terminal: transactional mail sends, suppression hygiene, contact list mirror, marketing campaign post-mortems, deliverability stats reporting, template management, and subuser rollups. It is the right choice when the workflow needs cross-endpoint joins (bounce investigations) or offline analysis (stats rollups, diffs) that the live API alone cannot produce. ## Unique Capabilities These capabilities aren't available in any other tool for this API. ### Local state that compounds - **`suppression sync`** — Bidirectional sync between SendGrid suppressions and an external CSV/CRM source, with dry-run preview and unified schema across the four inconsistent suppression types. _When you need to reconcile SendGrid's suppression list with another system without writing custom glue code per suppression type._ ```bash sendgrid-pp-cli suppression sync --from internal-suppressions.csv --apply --dry-run --json ``` - **`suppression diff`** — Three-way diff between the local SQLite mirror, live API, and an external CSV; shows adds, drops, and drift across the suppression universe. _When auditing CRM ↔ SendGrid drift before a cleanup pass or migration._ ```bash sendgrid-pp-cli suppression diff bounces --against crm-export.csv --json ``` - **`stats rollup`** — Pulls flat windowed stats from the API, stores them in SQLite, and computes day/week/month rollups plus WoW/MoM deltas. _Use for trend reporting and weekly deliverability standups without paying for paid analytics._ ```bash sendgrid-pp-cli stats rollup --by week --metric opens,clicks --window 90d --json ``` - **`templates diff`** — Side-by-side semantic diff of two template versions (HTML, plain text, subject, test data) with HTML-aware normalization. _Use during template review to see exactly what changed between draft versions._ ```bash sendgrid-pp-cli templates diff d-abc123 v1 v2 ``` ### Pre-flight checks the API skips - **`templates lint`** — Statically extracts {{handlebars}} from a template version and cross-checks them against a contact record or JSON payload, flagging missing or typo'd variables before send. _Use before any production send to catch silently-empty template variables that would otherwise ship as blanks._ ```bash sendgrid-pp-cli templates lint d-abc123 --against '{"first_name":"Sam"}' --json ``` ### Cross-endpoint joins - **`bounce why`** — Joins suppressions, email activity, and stats locally to produce a narrative explaining why a specific address keeps bouncing. _When a customer reports they aren't getting emails and you need a fast root cause._ ```bash sendgrid-pp-cli bounce why user@example.com --json ``` - **`subusers rollup`** — Fans out per-subuser stats pulls in parallel, caches them locally, and produces a single aggregated table for ESP operators managing tenant hierarchies. _Use for tenant-level deliverability reporting when you run subusers and need per-tenant numbers in one view._ ```bash sendgrid-pp-cli subusers rollup --metric reputation,bounces --window 30d --json ``` ### Rate-aware streaming - **`activity tail`** — Streams Email Activity events with rate-limit-aware polling (respects the 6/min cap), local FTS, and filters by status/from/to. _Use during a deliverability incident to watch events as they happen without tripping the rate limit._ ```bash sendgrid-pp-cli activity tail --filter status:bounce --json ``` ## Command Reference **access-settings** — Manage access settings - `sendgrid-pp-cli access-settings add-ip-to-allow-list` — **This endpoint allows you to add one or more allowed IP addresses.** To allow one or more IP addresses, pass them... - `sendgrid-pp-cli access-settings delete-allowed-ip` — **This endpoint allows you to remove a specific IP address from your list of allowed addresses.** When removing a... - `sendgrid-pp-cli access-settings delete-allowed-ips` — **This endpoint allows you to remove one or more IP addresses from your list of allowed addresses.** To remove one... - `sendgrid-pp-cli access-settings get-allowed-ip` — **This endpoint allows you to retreive a specific IP address that has been allowed to access your account.** You... - `sendgrid-pp-cli access-settings list-access-activity` — **This endpoint allows you to retrieve a list of all of the IP addresses that recently attempted to access your... - `sendgrid-pp-cli access-settings list-allowed-ip` — **This endpoint allows you to retrieve a list of IP addresses that are currently allowed to access your account.**... **alerts** — Twilio SendGrid Alerts API. - `sendgrid-pp-cli alerts create` — **This endpoint allows you to create a new alert.** - `sendgrid-pp-cli alerts delete` — **This endpoint allows you to delete an alert.** - `sendgrid-pp-cli alerts get` — **This endpoint allows you to retrieve a specific alert.** - `sendgrid-pp-cli alerts list` — **This endpoint allows you to retrieve all of your alerts.** - `sendgrid-pp-cli alerts update` — **This endpoint allows you to update an alert.** **api-keys** — Twilio SendGrid API Keys API. - `sendgrid-pp-cli api-keys create` — **This endpoint allows you to create a new API Key for the user.** To create your initial SendGrid API Key, you... - `sendgrid-pp-cli api-keys delete` — **This endpoint allows you to revoke an existing API Key using an `api_key_id`** Authentications using a revoked API... - `sendgrid-pp-cli api-keys get` — **This endpoint allows you to retrieve a single API key using an `api_key_id`.** The endpoint will return a key's... - `sendgrid-pp-cli api-keys list` — **This endpoint allows you to retrieve all API Keys that belong to the authenticated user.** A successful response... - `sendgrid-pp-cli api-keys update` — **This endpoint allows you to update the name and scopes of a given API key.** You must pass this endpoint a JSON... - `sendgrid-pp-cli api-keys update-name` — **This endpoint allows you to update the name of an existing API Key.** You must pass this endpoint a JSON request... **asm** — Manage asm - `sendgrid-pp-cli asm add-suppression-to-group` — **This endpoint allows you to add email addresses to an unsubscribe group.** If you attempt to add suppressions to a... - `sendgrid-pp-cli asm creat-group` — **This endpoint allows you to create a new suppression group.** To add an email address to the suppression group,... - `sendgrid-pp-cli asm create-global-suppression` — **This endpoint allows you to add one or more email addresses to the global suppressions group.** - `sendgrid-pp-cli asm delete-global-suppression` — **This endpoint allows you to remove an email address from the global suppressions group.** Deleting a suppression... - `sendgrid-pp-cli asm delete-group` — **This endpoint allows you to delete a suppression group.** If a recipient uses the 'one-click unsubscribe' option... - `sendgrid-pp-cli asm delete-suppression-from-group` — **This endpoint allows you to remove a suppressed email address from the given suppression group.** Removing an... - `sendgrid-pp-cli asm get-global-suppression` — **This endpoint allows you to retrieve a global suppression. You can also use this endpoint to confirm if an email... - `sendgrid-pp-cli asm get-group` — **This endpoint allows you to retrieve a single suppression group.** - `sendgrid-pp-cli asm get-suppression` — **This endpoint returns a list of all groups from which the given email address has been unsubscribed.** - `sendgrid-pp-cli asm list-group` — **This endpoint allows you to retrieve a list of all suppression groups created by this user.** This endpoint can... - `sendgrid-pp-cli asm list-suppression` — **This endpoint allows you to retrieve a list of all suppressions.** - `sendgrid-pp-cli asm list-suppression-from-group` — **This endpoint allows you to retrieve all suppressed email addresses belonging to the given group.** - `sendgrid-pp-cli asm search-suppression-from-group` — **This endpoint allows you to search a suppression group for multiple suppressions.** When given a list of email... - `sendgrid-pp-cli asm update-group` — **This endpoint allows you to update or change a suppression group.** **browsers** — Manage browsers - `sendgrid-pp-cli browsers` — **This endpoint allows you to retrieve your email statistics segmented by browser type.** **We only store up to 7... **campaigns** — Manage campaigns - `sendgrid-pp-cli campaigns create` — **This endpoint allows you to create a campaign.** In order to send or schedule the campaign, you will be required... - `sendgrid-pp-cli campaigns delete` — **This endpoint allows you to delete a specific campaign.** - `sendgrid-pp-cli campaigns get` — **This endpoint allows you to retrieve a specific campaign.** - `sendgrid-pp-cli campaigns list` — **This endpoint allows you to retrieve a paginated list of all of your campaigns.** Returns campaigns in reverse... - `sendgrid-pp-cli campaigns update` — **This endpoint allows you to update a specific campaign.** This is especially useful if you only set up the... **categories** — Twilio SendGrid Category Stats API - `sendgrid-pp-cli categories list-category` — **This endpoint allows you to retrieve a paginated list of all of your categories.** You can use the `limit` query... - `sendgrid-pp-cli categories list-category-stat` — **This endpoint allows you to retrieve all of your email statistics for each of your categories.** If you do not... - `sendgrid-pp-cli categories list-category-stat-sum` — **This endpoint allows you to retrieve the total sum of each email statistic for every category over the given date... **clients** — Manage clients - `sendgrid-pp-cli clients` — **This endpoint allows you to retrieve your email statistics segmented by client type.** **We only store up to 7... **contactdb** — Manage contactdb - `sendgrid-pp-cli contactdb add-recipient` — **This endpoint allows you to add a Marketing Campaigns recipient.** You can add custom field data as a parameter on... - `sendgrid-pp-cli contactdb add-recipient-to-contact-db-list` — **This endpoint allows you to add a single recipient to a list.** - `sendgrid-pp-cli contactdb add-recipients-to-contact-db-list` — **This endpoint allows you to add multiple recipients to a list.** Adds existing recipients to a list, passing in... - `sendgrid-pp-cli contactdb create-contact-db-list` — **This endpoint allows you to create a list for your recipients.** - `sendgrid-pp-cli contactdb create-custom-field` — **This endpoint allows you to create a custom field.** **You can create up to 120 custom fields.** - `sendgrid-pp-cli contactdb create-segment` — **This endpoint allows you to create a new segment.** Valid operators for create and update depend on the type of... - `sendgrid-pp-cli contactdb delete-contact-db-list` — **This endpoint allows you to delete a specific recipient list with the given ID.** - `sendgrid-pp-cli contactdb delete-contact-db-lists` — **This endpoint allows you to delete multiple recipient lists.** - `sendgrid-pp-cli contactdb delete-custom-field` — **This endpoint allows you to delete a custom field by ID.** - `sendgrid-pp-cli contactdb delete-recipient` — **This endpoint allows you to delete a single recipient with the given ID from your contact database.** > Use this... - `sendgrid-pp-cli contactdb delete-recipient-from-contact-db-list` — **This endpoint allows you to delete a single recipient from a list.** - `sendgrid-pp-cli contactdb delete-recipients` — **This endpoint allows you to deletes one or more recipients.** The body of an API call to this endpoint must... - `sendgrid-pp-cli contactdb delete-segment` — **This endpoint allows you to delete a segment from your recipients database.** You also have the option to delete... - `sendgrid-pp-cli contactdb export-recipient` — **Use this endpoint to export lists or segments of recipients**. If you would just like to have a link to the... - `sendgrid-pp-cli contactdb get-billable` — **This endpoint allows you to retrieve the number of Marketing Campaigns recipients that you will be billed for.**... - `sendgrid-pp-cli contactdb get-contact-db-list` — **This endpoint allows you to retrieve a single recipient list.** - `sendgrid-pp-cli contactdb get-custom-field` — **This endpoint allows you to retrieve a custom field by ID.** - `sendgrid-pp-cli contactdb get-export-recipient` — **This endpoint can be used to check the status of a recipient export job**. To use this call, you will need the... - `sendgrid-pp-cli contactdb get-recipient` — **This endpoint allows you to retrieve a single recipient by ID from your contact database.** - `sendgrid-pp-cli contactdb get-recipient-list` — **This endpoint allows you to retrieve the lists that a given recipient belongs to.** Each recipient can be on many... - `sendgrid-pp-cli contactdb get-segment` — **This endpoint allows you to retrieve a single segment with the given ID.** - `sendgrid-pp-cli contactdb list-contact-db-list` — **This endpoint allows you to retrieve all of your recipient lists. If you don't have any lists, an empty array will... - `sendgrid-pp-cli contactdb list-custom-field` — **This endpoint allows you to retrieve all custom fields.** - `sendgrid-pp-cli contactdb list-export-recipient` — **Use this endpoint to retrieve details of all current exported jobs**. It will return an array of objects, each of... - `sendgrid-pp-cli contactdb list-recipient` — **This endpoint allows you to retrieve all of your Marketing Campaigns recipients.** Batch deletion of a page makes... - `sendgrid-pp-cli contactdb list-recipient-count` — **This endpoint allows you to retrieve the total number of Marketing Campaigns recipients.** - `sendgrid-pp-cli contactdb list-recipient-for-segment` — **This endpoint allows you to retrieve all of the recipients in a segment with the given ID.** - `sendgrid-pp-cli contactdb list-recipients-from-contact-db-list` — **This endpoint allows you to retrieve all recipients on the list with the given ID.** - `sendgrid-pp-cli contactdb list-reserved-field` — **This endpoint allows you to list all fields that are reserved and can't be used for custom field names.** - `sendgrid-pp-cli contactdb list-search-recipient` — **This endpoint allows you to perform a search on all of your Marketing Campaigns recipients.** field_name: * is a... - `sendgrid-pp-cli contactdb list-segment` — **This endpoint allows you to retrieve all of your segments.** - `sendgrid-pp-cli contactdb list-status` — **This endpoint allows you to check the upload status of a Marketing Campaigns recipient.** - `sendgrid-pp-cli contactdb search-recipient` — Search using segment conditions without actually creating a segment. Body contains a JSON object with `conditions`,... - `sendgrid-pp-cli contactdb update-contact-db-list` — **This endpoint allows you to update the name of one of your recipient lists.** - `sendgrid-pp-cli contactdb update-recipient` — **This endpoint allows you to update one or more recipients.** The body of an API call to this endpoint must include... - `sendgrid-pp-cli contactdb update-segment` — **This endpoint allows you to update a segment.** **designs** — Twilio SendGrid Marketing Campaigns Designs API - `sendgrid-pp-cli designs create` — **This endpoint allows you to create a new design**. You can add a new design by passing data, including a string of... - `sendgrid-pp-cli designs delete` — **This endpoint allows you to delete a single design**. Be sure to check the ID of the design you intend to delete... - `sendgrid-pp-cli designs duplicate` — **This endpoint allows you to duplicate one of your existing designs**. Modifying an existing design is often the... - `sendgrid-pp-cli designs duplicate-pre-built` — **This endpoint allows you to duplicate one of the pre-built Twilio SendGrid designs**. Like duplicating one of your... - `sendgrid-pp-cli designs get` — **This endpoint allows you to retrieve a single design**. A GET request to `/designs/{id}` will retrieve details... - `sendgrid-pp-cli designs get-pre-built` — **This endpoint allows you to retrieve a single pre-built design**. A GET request to `/designs/pre-builts/{id}` will... - `sendgrid-pp-cli designs list` — **This endpoint allows you to retrieve a list of designs already stored in your Design Library**. A GET request to... - `sendgrid-pp-cli designs list-pre-built` — **This endpoint allows you to retrieve a list of pre-built designs provided by Twilio SendGrid**. Unlike the... - `sendgrid-pp-cli designs update` — **This endpoint allows you to edit a design**. The Design API supports PATCH requests, which allow you to make... **devices** — Manage devices - `sendgrid-pp-cli devices` — **This endpoint allows you to retrieve your email statistics segmented by the device type.** **We only store up to 7... **engagementquality** — Manage engagementquality - `sendgrid-pp-cli engagementquality list-engagement-quality-score` — **This operation allows you to retrieve your SendGrid Engagement Quality (SEQ) scores for a specified date range**.... - `sendgrid-pp-cli engagementquality list-subuser-engagement-quality-score` — **This operation allows you to retrieve SendGrid Engagement Quality (SEQ) scores for your Subusers or customer... **geo** — Manage geo - `sendgrid-pp-cli geo` — **This endpoint allows you to retrieve your email statistics segmented by country and state/province.** **We only... **ips** — Manage ips - `sendgrid-pp-cli ips add` — **This endpoint is for adding a(n) IP Address(es) to your account.** - `sendgrid-pp-cli ips add-to-pool` — **This endpoint allows you to add an IP address to an IP pool.** You can add the same IP address to multiple pools.... - `sendgrid-pp-cli ips create-pool` — **This endpoint allows you to create an IP pool.** Before you can create an IP pool, you need to activate the IP in... - `sendgrid-pp-cli ips delete-from-pool` — **This endpoint allows you to remove an IP address from an IP pool.** - `sendgrid-pp-cli ips delete-pool` — **This endpoint allows you to delete an IP pool.** - `sendgrid-pp-cli ips get` — **This endpoint allows you to see which IP pools a particular IP address has been added to.** The same IP address... - `sendgrid-pp-cli ips get-pool` — **This endpoint allows you to get all of the IP addresses that are in a specific IP pool.** - `sendgrid-pp-cli ips get-warm-up` — **This endpoint allows you to retrieve the warmup status for a specific IP address.** You can retrieve all of your... - `sendgrid-pp-cli ips list` — **This endpoint allows you to retrieve a paginated list of all assigned and unassigned IPs.** Response includes warm... - `sendgrid-pp-cli ips list-assigned` — **This endpoint allows you to retrieve only assigned IP addresses.** A single IP address or a range of IP addresses... - `sendgrid-pp-cli ips list-pool` — **This endpoint allows you to get all of your IP pools.** - `sendgrid-pp-cli ips list-remaining-count` — **This endpoint gets amount of IP Addresses that can still be created during a given period and the price of those... - `sendgrid-pp-cli ips list-warm-up` — **This endpoint allows you to retrieve all of your IP addresses that are currently warming up.** - `sendgrid-pp-cli ips stop-warm-up` — **This endpoint allows you to remove an IP address from warmup mode.** Your request will return a 204 status code if... - `sendgrid-pp-cli ips update-pool` — **This endpoint allows you to update the name of an IP pool.** - `sendgrid-pp-cli ips warm-up` — **This endpoint allows you to put an IP address into warmup mode.** **logs** — Manage logs - `sendgrid-pp-cli logs get-message-by-id` — Get all of the details about the specified message. - `sendgrid-pp-cli logs list-messages-by-filter` — List recent messages within Email Logs, or search for messages using a filter. **mail** — Manage mail - `sendgrid-pp-cli mail create-batch` — **This operation allows you to generate a new mail batch ID.** Once a batch ID is created, you can associate it with... - `sendgrid-pp-cli mail get-batch` — **This operation allows you to validate a mail batch ID.** If you provide a valid batch ID, this operation will... - `sendgrid-pp-cli mail send` — *The Mail Send operation allows you to send email over SendGrid's v3 Web API* For an overview of this API, including... **mail-settings** — Twilio SendGrid Mail Settings API - `sendgrid-pp-cli mail-settings list` — **This endpoint allows you to retrieve a paginated list of all mail settings.** Each setting will be returned with... - `sendgrid-pp-cli mail-settings list-address-whitelist` — **This endpoint allows you to retrieve your current email address whitelist settings.** The Address Whitelist... - `sendgrid-pp-cli mail-settings list-bounce-purge` — **This endpoint allows you to retrieve your current Bounce Purge mail settings.** The Bounce Purge mail setting... - `sendgrid-pp-cli mail-settings list-footer` — **This endpoint allows you to retrieve your current Footer mail settings.** The Footer setting will insert a custom... - `sendgrid-pp-cli mail-settings list-forward-bounce` — **This endpoint allows you to retrieve your current bounce forwarding mail settings.** Enabling the Forward Bounce... - `sendgrid-pp-cli mail-settings list-forward-spam` — **This endpoint allows you to retrieve your current Forward Spam mail settings.** Enabling the Forward Spam setting... - `sendgrid-pp-cli mail-settings list-template` — **This endpoint allows you to retrieve your current legacy email template settings.** This setting refers to our... - `sendgrid-pp-cli mail-settings update-address-whitelist` — **This endpoint allows you to update your current email address whitelist settings.** For Regional Subusers -... - `sendgrid-pp-cli mail-settings update-bounce-purge` — **This endpoint allows you to update your current Bounce Purge mail settings.** The Bounce Purge mail metting allows... - `sendgrid-pp-cli mail-settings update-footer` — **This endpoint allows you to update your current Footer mail settings.** The Footer setting will insert a custom... - `sendgrid-pp-cli mail-settings update-forward-bounce` — **This endpoint allows you to update your current bounce forwarding mail settings.** Enabling the Forward Bounce... - `sendgrid-pp-cli mail-settings update-forward-spam` — **This endpoint allows you to update your current Forward Spam mail settings.** Enabling the Forward Spam setting... - `sendgrid-pp-cli mail-settings update-template` — **This endpoint allows you to update your current legacy email template settings.** This setting refers to our... **mailbox-providers** — Manage mailbox providers - `sendgrid-pp-cli mailbox-providers` — **This endpoint allows you to retrieve your email statistics segmented by recipient mailbox provider.** **We only... **marketing** — Manage marketing - `sendgrid-pp-cli marketing add-integration` — This endpoint creates an Integration for email event forwarding. Each Integration has a maximum number of allowed... - `sendgrid-pp-cli marketing create-field-definition` — **This endpoint creates a new custom field definition.** Custom field definitions are created with the given `name`... - `sendgrid-pp-cli marketing create-list` — **This endpoint creates a new contacts list.** Once you create a list, you can use the UI to [trigger an... - `sendgrid-pp-cli marketing create-segment` — Segment `name` has to be unique. A user can not create a new segment with an existing segment name. - `sendgrid-pp-cli marketing create-sender` — **This endpoint allows you to create a new Sender.** *You may create up to 100 unique Senders.* Senders are required... - `sendgrid-pp-cli marketing create-single-send` — **This endpoint allows you to create a new Single Send.** Please note that if you are migrating from the previous... - `sendgrid-pp-cli marketing delete-contact` — **This endpoint can be used to delete one or more contacts**. The query parameter `ids` must set to a... - `sendgrid-pp-cli marketing delete-contact-identifier` — **This endpoint can be used to delete one identifier from a contact.** Deletion jobs are processed asynchronously.... - `sendgrid-pp-cli marketing delete-contact-lists` — **This endpoint allows you to remove contacts from a given list.** The contacts will not be deleted. Only their list... - `sendgrid-pp-cli marketing delete-field-definition` — **This endpoint deletes a defined Custom Field.** You can delete only Custom Fields; Reserved Fields cannot be deleted. - `sendgrid-pp-cli marketing delete-integration` — This endpoint deletes Integrations. - `sendgrid-pp-cli marketing delete-list` — **This endpoint allows you to deletes a specific list.** Optionally, you can also delete contacts associated to the... - `sendgrid-pp-cli marketing delete-scheduled-single-send` — **This endpoint allows you to cancel a scheduled Single Send using a Single Send ID.** Making a DELETE request to... - `sendgrid-pp-cli marketing delete-segment` — **This endpoint allows you to delete a segment by `segment_id`.** Note that deleting a segment does not delete the... - `sendgrid-pp-cli marketing delete-segment-segments` — **This endpoint allows you to delete a segment by ID.** - `sendgrid-pp-cli marketing delete-sender` — **This endpoint allows you to delete an existing Sender.** - `sendgrid-pp-cli marketing delete-single-send` — **This endpoint allows you to delete one Single Send using a Single Send ID.** To first retrieve all your Single... - `sendgrid-pp-cli marketing delete-single-sends` — **This endpoint allows you to delete multiple Single Sends using an array of Single Sends IDs.** To first retrieve... - `sendgrid-pp-cli marketing duplicate-single-send` — **This endpoint allows you to duplicate an existing Single Send using its Single Send ID.** Duplicating a Single... - `sendgrid-pp-cli marketing export-automation-stat` — **This endpoint allows you to export Single Send stats as .CSV data**. You can specify one Single Send or many:... - `sendgrid-pp-cli marketing export-contact` — **Use this endpoint to export lists or segments of contacts**. If you would just like to have a link to the exported... - `sendgrid-pp-cli marketing export-single-send-stat` — **This endpoint allows you to export Single Send stats as .CSV data**. You can specify one Single Send or many:... - `sendgrid-pp-cli marketing find-integration-by-id` — This endpoint returns the data for a specific Integration. - `sendgrid-pp-cli marketing get-automation-stat` — **This endpoint allows you to retrieve stats for a single Automation using its ID.** Multiple Automation IDs can be... - `sendgrid-pp-cli marketing get-contact` — **This endpoint returns the full details and all fields for the specified contact**. The 'Get Contacts by... - `sendgrid-pp-cli marketing get-contact-by-identifiers` — Use this endpoint to retrieve up to 100 contacts that match the requested identifier values for a single identifier... - `sendgrid-pp-cli marketing get-export-contact` — **This endpoint can be used to check the status of a contact export job**. To use this call, you will need the `id`... - `sendgrid-pp-cli marketing get-import-contact` — **This endpoint can be used to check the status of a contact import job**. Use the `job_id` from the 'Import... - `sendgrid-pp-cli marketing get-integrations-by-user` — This endpoint returns all the Integrations for the user making this call. - `sendgrid-pp-cli marketing get-list` — **This endpoint returns data about a specific list.** Setting the optional parameter `contact_sample=true` returns... - `sendgrid-pp-cli marketing get-segment` — **This endpoint allows you to retrieve a single segment by ID.** - `sendgrid-pp-cli marketing get-segment-segments` — Get Marketing Campaigns Segment by ID - `sendgrid-pp-cli marketing get-sender` — **This endpoint allows you to get the details for a specific Sender by `id`.** - `sendgrid-pp-cli marketing get-single-send` — **This endpoint allows you to retrieve details about one Single Send using a Single Send ID.** You can retrieve all... - `sendgrid-pp-cli marketing get-single-send-stat` — **This endpoint allows you to retrieve stats for an individual Single Send using a Single Send ID.** Multiple Single... - `sendgrid-pp-cli marketing import-contact` — **This endpoint allows a CSV upload containing up to one million contacts or 5GB of data, whichever is smaller. At... - `sendgrid-pp-cli marketing list-automation-stat` — **This endpoint allows you to retrieve stats for all your Automations.** By default, all of your Automations will be... - `sendgrid-pp-cli marketing list-batched-contact` — **This endpoint is used to retrieve a set of contacts identified by their IDs.** This can be more efficient endpoint... - `sendgrid-pp-cli marketing list-category` — **This endpoint allows you to retrieve all the categories associated with your Single Sends.** This endpoint will... - `sendgrid-pp-cli marketing list-click-tracking-stat` — **This endpoint lets you retrieve click-tracking stats for a single Automation**. The stats returned list the URLs... - `sendgrid-pp-cli marketing list-contact` — **This endpoint will return up to 50 of the most recent contacts uploaded or attached to a list**. This list will... - `sendgrid-pp-cli marketing list-contact-by-email` — **This endpoint allows you to retrieve up to 100 contacts matching the searched `email` address(es), including any... - `sendgrid-pp-cli marketing list-contact-count` — **This endpoint returns the total number of contacts you have stored.** Twilio SendGrid recommends exporting your... - `sendgrid-pp-cli marketing list-contact-count-lists` — **This endpoint returns the number of contacts on a specific list.** - `sendgrid-pp-cli marketing list-export-contact` — **Use this endpoint to retrieve details of all current exported jobs**. It will return an array of objects, each of... - `sendgrid-pp-cli marketing list-field-definition` — **This endpoint retrieves all defined Custom Fields and Reserved Fields.** - `sendgrid-pp-cli marketing list-list` — **This endpoint returns an array of all of your contact lists.** - `sendgrid-pp-cli marketing list-segment` — **This endpoint allows you to retrieve a list of segments.** The query param `parent_list_ids` is treated as a... - `sendgrid-pp-cli marketing list-segment-segments` — **This endpoint allows you to retrieve a list of segments.** The query param `parent_list_ids` is treated as a... - `sendgrid-pp-cli marketing list-sender` — **This endpoint allows you to get a list of all your Senders.** - `sendgrid-pp-cli marketing list-single-send` — **This endpoint allows you to retrieve all your Single Sends.** Returns all of your Single Sends with condensed... - `sendgrid-pp-cli marketing list-single-send-stat` — **This endpoint allows you to retrieve stats for all your Single Sends.** By default, all of your Single Sends will... - `sendgrid-pp-cli marketing list-single-send-tracking-stat` — **This endpoint lets you retrieve click-tracking stats for one Single Send**. The stats returned list the URLs... - `sendgrid-pp-cli marketing refresh-segment` — Manually refresh a segment by segment ID. - `sendgrid-pp-cli marketing reset-sender-verification` — **This endpoint allows you to resend the verification request for a specific Sender.** - `sendgrid-pp-cli marketing schedule-single-send` — **This endpoint allows you to send a Single Send immediately or schedule it to be sent at a later time.** To send... - `sendgrid-pp-cli marketing search-contact` — **Use this endpoint to locate contacts**. The request body's `query` field accepts valid... - `sendgrid-pp-cli marketing search-single-send` — **This endpoint allows you to search for Single Sends based on specified criteria.** You can search for Single Sends... - `sendgrid-pp-cli marketing send-test-email` — **This endpoint allows you to send a test marketing email to a list of email addresses**. Before sending a marketing... - `sendgrid-pp-cli marketing update-contact` — **This endpoint allows the [upsert](https://en.wiktionary.org/wiki/upsert) (insert or update) of up to 30,000... - `sendgrid-pp-cli marketing update-field-definition` — **This endpoint allows you to update a defined Custom Field.** Only your Custom fields can be modified; Reserved... - `sendgrid-pp-cli marketing update-integration` — This endpoint updates an existing Integration. - `sendgrid-pp-cli marketing update-list` — **This endpoint updates the name of a list.** - `sendgrid-pp-cli marketing update-segment` — Segment `name` has to be unique. A user can not create a new segment with an existing segment name. - `sendgrid-pp-cli marketing update-sender` — **This endpoint allows you to update an existing Sender.** Updates to `from.email` require re-verification. If your... - `sendgrid-pp-cli marketing update-single-send` — **This endpoint allows you to update a Single Send using a Single Send ID.** You only need to pass the properties... **messages** — Manage messages - `sendgrid-pp-cli messages download-csv` — **This endpoint will return a presigned URL that can be used to download the CSV that was requested from the... - `sendgrid-pp-cli messages get` — Get all of the details about the specified message. For Regional (EU) subusers, no data will be generated for this... - `sendgrid-pp-cli messages list` — Filter all messages to search your Email Activity. All queries must be [URL... - `sendgrid-pp-cli messages request-csv` — This request will kick off a backend process to generate a CSV file. Once generated, the worker will then send an... **partner-settings** — Twilio SendGrid Partner Settings API - `sendgrid-pp-cli partner-settings` — **This endpoint allows you to retrieve a paginated list of all partner settings that you can enable.** You can use... **partners** — Manage partners - `sendgrid-pp-cli partners add-account-ips` — Adds IP(s) to the specified account. - `sendgrid-pp-cli partners authenticate-account` — Authenticates and logs in a user to Twilio Sendgrid as a specific admin identity configured for SSO by partner. Any... - `sendgrid-pp-cli partners create-account` — Creates a new account, with specified offering, under the organization. - `sendgrid-pp-cli partners delete-account` — Delete a specific account under your organization by account ID. Note that this is an **irreversible** action that... - `sendgrid-pp-cli partners get-account-state` — Retrieve the state of the specified account. - `sendgrid-pp-cli partners list-account` — Retrieves all accounts under the organization. - `sendgrid-pp-cli partners list-account-ips` — Retrieves a paginated list of IPs associated with the specified account, ordered by most recently added IP. - `sendgrid-pp-cli partners list-account-offering` — Retrieves offering information about the specified account. - `sendgrid-pp-cli partners list-offering` — Retrieves offerings available under the organization. - `sendgrid-pp-cli partners remove-account-ips` — Removes IP(s) from the specified account. - `sendgrid-pp-cli partners update-account-offering` — Changes a package offering for the specified account. Please note that an account can have only one package... - `sendgrid-pp-cli partners update-account-state` — Update the state of the specified account. **recipients** — Twilio SendGrid Legacy Marketing Campaigns Contacts: Recipients API - `sendgrid-pp-cli recipients` — **This operation allows you to delete your recipients' personal email data** The Delete Recipients' Email Data... **scopes** — Twilio SendGrid Scopes API - `sendgrid-pp-cli scopes` — **This endpoint returns a list of all scopes that this user has access to.** API Keys are used to authenticate with... **send-ips** — Manage send ips - `sendgrid-pp-cli send-ips add-ip` — This operation adds a Twilio SendGrid IP address to your account. You can also assign up to 100 Subusers to the IP... - `sendgrid-pp-cli send-ips add-ips-to-ip-pool` — This operation appends a batch of IPs to an IP Pool. This operation requires all IP assignments to succeed. If any... - `sendgrid-pp-cli send-ips add-sub-users-to-ip` — This operation appends a batch of Subusers to a specified IP address. This endpoint requires all Subuser assignments... - `sendgrid-pp-cli send-ips create-ip-pool` — This operation will create a named IP Pool and associate specified IP addresses with the newly created Pool. This... - `sendgrid-pp-cli send-ips delete-ip-pool` — This operation deletes an IP Pool and unassigns all IP addresses associated with the Pool. IP addresses associated... - `sendgrid-pp-cli send-ips delete-ips-from-ip-pool` — This operation removes a batch of IPs from an IP Pool. All IPs associated with the Pool will be unassigned from the... - `sendgrid-pp-cli send-ips delete-sub-users-from-ip` — This operation removes a batch of Subusers from a specified IP address. - `sendgrid-pp-cli send-ips get-ip` — This operation returns details for a specified IP address. Details include whether the IP is assigned to a parent... - `sendgrid-pp-cli send-ips get-ip-pool` — This operation will return the details for a specified IP Pool, including the Pool's name, ID, a sample list of the... - `sendgrid-pp-cli send-ips list-ip` — This operation returns a list of all IP addresses associated with your account. A sample of IP details is returned... - `sendgrid-pp-cli send-ips list-ip-assigned-to-ip-pool` — This operation returns the IP addresses that are assigned to the specified IP pool. - `sendgrid-pp-cli send-ips list-ip-pool` — This operation returns a list of your IP Pools and a sample of each Pools' associated IP addresses. A maximum of 10... - `sendgrid-pp-cli send-ips list-sub-user-assigned-to-ip` — This operation returns a list of Subuser IDs that have been assigned the specified IP address. To retrieve more... - `sendgrid-pp-cli send-ips update-ip` — This operation updates an IP address's settings, including whether the IP is set to warm up automatically, if the IP... - `sendgrid-pp-cli send-ips update-ip-pool` — This operation will rename an IP Pool. An IP Pool name cannot start with a dot/period (.) or space. **senders** — Twilio SendGrid Marketing Campaigns Senders API - `sendgrid-pp-cli senders create` — **This endpoint allows you to create a new sender identity.** You may create up to 100 unique sender identities. - `sendgrid-pp-cli senders delete` — **This endpoint allows you to delete one of your sender identities.** - `sendgrid-pp-cli senders get` — **This endpoint allows you to retrieve a specific sender identity.** - `sendgrid-pp-cli senders list` — **This endpoint allows you to retrieve a list of all sender identities that have been created for your account.** - `sendgrid-pp-cli senders update` — **This endpoint allows you to update a sender identity.** Updates to `from.email` require re-verification. Partial... **sso** — Manage sso - `sendgrid-pp-cli sso create-certificate` — **This endpoint allows you to create an SSO certificate.** - `sendgrid-pp-cli sso create-integration` — **This endpoint allows you to create an SSO integration.** - `sendgrid-pp-cli sso create-teammate` — **This endpoint allows you to create an SSO Teammate.** The email address provided for the Teammate will also... - `sendgrid-pp-cli sso delete-certificate` — **This endpoint allows you to delete an SSO certificate.** You can retrieve a certificate's ID from the response... - `sendgrid-pp-cli sso delete-integration` — **This endpoint allows you to delete an IdP configuration by ID.** You can retrieve the IDs for your configurations... - `sendgrid-pp-cli sso get-certificate` — **This endpoint allows you to retrieve an individual SSO certificate.** - `sendgrid-pp-cli sso get-integration` — **This endpoint allows you to retrieve an SSO integration by ID.** You can retrieve the IDs for your configurations... - `sendgrid-pp-cli sso list-integration` — **This endpoint allows you to retrieve all SSO integrations tied to your Twilio SendGrid account.** The IDs returned... - `sendgrid-pp-cli sso list-integration-certificate` — **This endpoint allows you to retrieve all your IdP configurations by configuration ID.** The `integration_id`... - `sendgrid-pp-cli sso update-certificate` — **This endpoint allows you to update an existing certificate by ID.** You can retrieve a certificate's ID from the... - `sendgrid-pp-cli sso update-integration` — **This endpoint allows you to modify an exisiting SSO integration.** You can retrieve the IDs for your... - `sendgrid-pp-cli sso update-teammate` — **This endpoint allows you to modify an existing SSO Teammate.** Only the parent user and Teammates with admin... **stats** — Twilio SendGrid Marketing Campaigns Stats API - `sendgrid-pp-cli stats` — **This endpoint allows you to retrieve all of your global email statistics between a given date range.** Parent... **subusers** — Twilio SendGrid Subusers API - `sendgrid-pp-cli subusers create` — **This endpoint allows you to create a new subuser.** - `sendgrid-pp-cli subusers delete` — **This endpoint allows you to delete a subuser.** This is a permanent action. Once deleted, a subuser cannot be... - `sendgrid-pp-cli subusers list` — **This endpoint allows you to retrieve a paginated list of all your subusers.** You can use the `username` query... - `sendgrid-pp-cli subusers list-monthly-stat` — **This endpoint allows you to retrieve the monthly email statistics for all subusers over the given date range.**... - `sendgrid-pp-cli subusers list-reputation` — **This endpoint allows you to request the reputations for your subusers.** Subuser sender reputations give a good... - `sendgrid-pp-cli subusers list-stat` — **This endpoint allows you to retrieve the email statistics for the given subusers.** You may retrieve statistics... - `sendgrid-pp-cli subusers list-stat-sum` — **This endpoint allows you to retrieve the total sums of each email statistic metric for all subusers over the given... - `sendgrid-pp-cli subusers update` — **This endpoint allows you to enable or disable a subuser.** **suppression** — Twilio SendGrid Suppressions API - `sendgrid-pp-cli suppression delete-block` — **This endpoint allows you to delete a specific email address from your blocks list.** - `sendgrid-pp-cli suppression delete-blocks` — **This endpoint allows you to delete all email addresses on your blocks list.** There are two options for deleting... - `sendgrid-pp-cli suppression delete-bounce` — **This endpoint allows you to remove an email address from your bounce list.** - `sendgrid-pp-cli suppression delete-bounces` — **This endpoint allows you to delete all emails on your bounces list.** There are two options for deleting bounced... - `sendgrid-pp-cli suppression delete-invalid-email` — **This endpoint allows you to remove a specific email address from the invalid email address list.** - `sendgrid-pp-cli suppression delete-invalid-emails` — **This endpoint allows you to remove email addresses from your invalid email address list.** There are two options... - `sendgrid-pp-cli suppression delete-spam-report` — **This endpoint allows you to delete a specific spam report by email address.** Deleting a spam report will remove... - `sendgrid-pp-cli suppression delete-spam-reports` — **This endpoint allows you to delete your spam reports.** Deleting a spam report will remove the suppression,... - `sendgrid-pp-cli suppression get-block` — **This endpoint allows you to retrieve a specific email address from your blocks list.** - `sendgrid-pp-cli suppression get-bounces` — **This endpoint allows you to retrieve a specific bounce by email address.** - `sendgrid-pp-cli suppression get-bounces-classifications` — This endpoint will return the number of bounces for the classification specified in descending order for each day.... - `sendgrid-pp-cli suppression get-invalid-email` — **This endpoint allows you to retrieve a specific invalid email addresses.** - `sendgrid-pp-cli suppression get-spam-report` — **This endpoint allows you to retrieve a specific spam report by email address.** - `sendgrid-pp-cli suppression list-block` — **This endpoint allows you to retrieve a paginated list of all email addresses that are currently on your blocks... - `sendgrid-pp-cli suppression list-bounces` — **This endpoint allows you to retrieve a paginated list of all your bounces.** You can use the `limit` query... - `sendgrid-pp-cli suppression list-bounces-classifications` — This endpoint will return the total number of bounces by classification in descending order for each day. You can... - `sendgrid-pp-cli suppression list-global` — **This endpoint allows you to retrieve a paginated list of all email address that are globally suppressed.** You can... - `sendgrid-pp-cli suppression list-invalid-email` — **This endpoint allows you to retrieve a paginated list of all invalid email addresses.** You can use the `limit`... - `sendgrid-pp-cli suppression list-spam-report` — **This endpoint allows you to retrieve a paginated list of all spam reports.** You can use the `limit` query... **teammates** — Twilio SendGrid Teammates API - `sendgrid-pp-cli teammates delete` — **This endpoint allows you to delete a teammate.** **Only the parent user or an admin teammate can delete another... - `sendgrid-pp-cli teammates delete-pending` — **This endpoint allows you to delete a pending teammate invite.** - `sendgrid-pp-cli teammates get` — **This endpoint allows you to retrieve a specific Teammate by username.** You can retrieve the username's for each... - `sendgrid-pp-cli teammates invite` — **This endpoint allows you to invite a Teammate to your account via email.** You can set a Teammate's initial... - `sendgrid-pp-cli teammates list` — **This endpoint allows you to retrieve a paginated list of all current Teammates.** You can use the `limit` query... - `sendgrid-pp-cli teammates list-pending` — **This endpoint allows you to retrieve a list of all pending Teammate invitations.** Each teammate invitation is... - `sendgrid-pp-cli teammates resend-invite` — **This endpoint allows you to resend a Teammate invitation.** Teammate invitations will expire after 7 days.... - `sendgrid-pp-cli teammates update` — **This endpoint allows you to update a teammate’s permissions.** To turn a teammate into an admin, the request... **templates** — Twilio SendGrid Templates API - `sendgrid-pp-cli templates create` — **This endpoint allows you to create a transactional template.** - `sendgrid-pp-cli templates delete` — **This endpoint allows you to delete a transactional template.** - `sendgrid-pp-cli templates duplicate` — **This endpoint allows you to duplicate a transactional template.** - `sendgrid-pp-cli templates get` — **This endpoint allows you to retrieve a single transactional template.** - `sendgrid-pp-cli templates list` — **This endpoint allows you to retrieve all transactional templates.** - `sendgrid-pp-cli templates update` — **This endpoint allows you to edit the name of a transactional template.** To edit the template itself, [create a... **tracking-settings** — Manage tracking settings - `sendgrid-pp-cli tracking-settings list` — **This endpoint allows you to retrieve a list of all tracking settings on your account.** - `sendgrid-pp-cli tracking-settings list-click` — **This endpoint allows you to retrieve your current click tracking setting.** Click Tracking overrides all the links... - `sendgrid-pp-cli tracking-settings list-google-analytics` — **This endpoint allows you to retrieve your current setting for Google Analytics.** Google Analytics helps you... - `sendgrid-pp-cli tracking-settings list-open` — **This endpoint allows you to retrieve your current settings for open tracking.** Open Tracking adds an invisible... - `sendgrid-pp-cli tracking-settings list-subscription` — **This endpoint allows you to retrieve your current settings for subscription tracking.** Subscription tracking adds... - `sendgrid-pp-cli tracking-settings update-click` — **This endpoint allows you to enable or disable your current click tracking setting.** Click Tracking overrides all... - `sendgrid-pp-cli tracking-settings update-google-analytics` — **This endpoint allows you to update your current setting for Google Analytics.** Google Analytics helps you... - `sendgrid-pp-cli tracking-settings update-open` — **This endpoint allows you to update your current settings for open tracking.** Open Tracking adds an invisible... - `sendgrid-pp-cli tracking-settings update-subscription` — **This endpoint allows you to update your current settings for subscription tracking.** Subscription tracking adds... **user** — Manage user - `sendgrid-pp-cli user create-event-webhook` — **This endpoint allows you to create a new Event Webhook.** When creating a webhook, you will provide a URL where... - `sendgrid-pp-cli user create-parse-setting` — **This endpoint allows you to create a new inbound parse setting.** Creating an Inbound Parse setting requires two... - `sendgrid-pp-cli user create-scheduled-send` — **This endpoint allows you to cancel or pause a scheduled send associated with a `batch_id`.** Passing this endpoint... - `sendgrid-pp-cli user create-security-policy` — Create a new webhook security policy. Note: One of signature or oauth must be given to have a valid security policy. - `sendgrid-pp-cli user delete-event-webhook` — **This endpoint allows you to delete a single Event Webhook by ID.** Unlike the [**Get an Event... - `sendgrid-pp-cli user delete-parse-setting` — **This endpoint allows you to delete a specific inbound parse setting by hostname.** You can retrieve all your... - `sendgrid-pp-cli user delete-scheduled-send` — **This endpoint allows you to delete the cancellation/pause of a scheduled send.** Scheduled sends cancelled less... - `sendgrid-pp-cli user delete-security-policy` — Permanently delete a webhook security policy by its ID. - `sendgrid-pp-cli user get-event-webhook` — **This endpoint allows you to retrieve a single Event Webhook by ID.** If you do not pass a webhook ID to this... - `sendgrid-pp-cli user get-parse-setting` — **This endpoint allows you to retrieve a specific inbound parse setting by hostname.** You can retrieve all your... - `sendgrid-pp-cli user get-scheduled-send` — **This endpoint allows you to retrieve the cancel/paused scheduled send information for a specific `batch_id`.** - `sendgrid-pp-cli user get-security-policy` — Retrieve the details of a specific webhook security policy by its ID. - `sendgrid-pp-cli user get-signed-event-webhook` — **This endpoint allows you to retrieve the public key for a single Event Webhook by ID.** If you do not pass a... - `sendgrid-pp-cli user list-account` — **This endpoint allows you to retrieve your user account details.** Your user's account information includes the... - `sendgrid-pp-cli user list-all-security-policies` — Returns a list of all webhook security policies configured for your account, including their IDs, names, and... - `sendgrid-pp-cli user list-credit` — **This endpoint allows you to retrieve the current credit balance for your account.** Each account has a credit... - `sendgrid-pp-cli user list-email` — **This endpoint allows you to retrieve the email address currently on file for your account.** - `sendgrid-pp-cli user list-enforced-tls-setting` — **This endpoint allows you to retrieve your current Enforced TLS settings.** The Enforced TLS settings specify... - `sendgrid-pp-cli user list-event-webhook` — **This endpoint allows you to retrieve all of your Event Webhooks.** Each webhook will be returned as an object in... - `sendgrid-pp-cli user list-parse-setting` — **This endpoint allows you to retrieve all of your current inbound parse settings.** - `sendgrid-pp-cli user list-parse-static` — **This endpoint allows you to retrieve the statistics for your Parse Webhook usage.** SendGrid's Inbound Parse... - `sendgrid-pp-cli user list-profile` — **This endpoint allows you to retrieve your current profile details.** - `sendgrid-pp-cli user list-scheduled-send` — **This endpoint allows you to retrieve all cancelled and paused scheduled send information.** This endpoint will... - `sendgrid-pp-cli user list-username` — **This endpoint allows you to retrieve your current account username.** - `sendgrid-pp-cli user test-event-webhook` — **This endpoint allows you to test an Event Webhook.** Retry logic for this endpoint differs from other endpoints,... - `sendgrid-pp-cli user update-email` — **This endpoint allows you to update the email address currently on file for your account.** - `sendgrid-pp-cli user update-enforced-tls-setting` — **This endpoint allows you to update your Enforced TLS settings.** To require TLS from recipients, set `require_tls`... - `sendgrid-pp-cli user update-event-webhook` — **This endpoint allows you to update a single Event Webhook by ID.** If you do not pass a webhook ID to this... - `sendgrid-pp-cli user update-parse-setting` — **This endpoint allows you to update a specific inbound parse setting by hostname.** You can retrieve all your... - `sendgrid-pp-cli user update-password` — **This endpoint allows you to update your password.** - `sendgrid-pp-cli user update-profile` — **This endpoint allows you to update your current profile details.** Any one or more of the parameters can be... - `sendgrid-pp-cli user update-scheduled-send` — **This endpoint allows you to update the status of a scheduled send for the given `batch_id`.** If you have already... - `sendgrid-pp-cli user update-security-policy` — Update an existing webhook security policy with new configuration values. - `sendgrid-pp-cli user update-signed-event-webhook` — **This endpoint allows you to enable or disable signature verification for a single Event Webhook by ID.** If you do... - `sendgrid-pp-cli user update-username` — **This endpoint allows you to update the username for your account.** **validations** — Manage validations - `sendgrid-pp-cli validations get-email-job-for-verification` — **This endpoint returns a specific Bulk Email Validation Job. You can use this endpoint to check on the progress of... - `sendgrid-pp-cli validations get-email-jobs` — **This endpoint returns a list of all of a user's Bulk Email Validation Jobs.** - `sendgrid-pp-cli validations list-email-job-for-verification` — **This endpoint returns a presigned URL and request headers. Use this information to upload a list of email... - `sendgrid-pp-cli validations validate-email` — **This endpoint allows you to validate an email address.** **verified-senders** — Manage verified senders - `sendgrid-pp-cli verified-senders create` — **This endpoint allows you to create a new Sender Identify**. Upon successful submission of a `POST` request to this... - `sendgrid-pp-cli verified-senders delete` — **This endpoint allows you to delete a Sender Identity**. Pass the `id` assigned to a Sender Identity to this... - `sendgrid-pp-cli verified-senders list` — **This endpoint allows you to retrieve all the Sender Identities associated with an account.** This endpoint will... - `sendgrid-pp-cli verified-senders list-domain` — **This endpoint returns a list of domains known to implement DMARC and categorizes them by failure type — hard... - `sendgrid-pp-cli verified-senders list-steps-completed` — **This endpoint allows you to determine which of SendGrid’s verification processes have been completed for an... - `sendgrid-pp-cli verified-senders resend` — **This endpoint allows you to resend a verification email to a specified Sender Identity**. Passing the `id`... - `sendgrid-pp-cli verified-senders update` — **This endpoint allows you to update an existing Sender Identity**. Pass the `id` assigned to a Sender Identity to... - `sendgrid-pp-cli verified-senders verify-sender-token` — **This endpoint allows you to verify a sender requests.** The token is generated by SendGrid and included in a... **whitelabel** — Manage whitelabel - `sendgrid-pp-cli whitelabel add-ip-to-authenticated-domain` — **This endpoint allows you to add an IP address to an authenticated domain.** - `sendgrid-pp-cli whitelabel associate-branded-link-with-subuser` — **This endpoint allows you to associate a branded link with a subuser account.** Link branding can be associated... - `sendgrid-pp-cli whitelabel associate-subuser-with-domain` — **This endpoint allows you to associate a specific authenticated domain with a subuser.** Authenticated domains can... - `sendgrid-pp-cli whitelabel associate-subuser-with-domain-multiple` — **This endpoint allows you to associate a specific authenticated domain with a subuser. It can be used to associate... - `sendgrid-pp-cli whitelabel authenticate-domain` — **This endpoint allows you to authenticate a domain.** If you are authenticating a domain for a subuser, you have... - `sendgrid-pp-cli whitelabel create-branded-link` — **This endpoint allows you to create a new branded link.** To create the link branding, supply the root domain and,... - `sendgrid-pp-cli whitelabel delete-authenticated-domain` — **This endpoint allows you to delete an authenticated domain.** - `sendgrid-pp-cli whitelabel delete-branded-link` — **This endpoint allows you to delete a branded link.** Your request will receive a response with a 204 status code... - `sendgrid-pp-cli whitelabel delete-ip-from-authenticated-domain` — **This endpoint allows you to remove an IP address from that domain's authentication.** - `sendgrid-pp-cli whitelabel delete-reverse-dns` — **This endpoint allows you to delete a reverse DNS record.** A call to this endpoint will respond with a 204 status... - `sendgrid-pp-cli whitelabel disassociate-authenticated-domain-from-user` — **This endpoint allows you to disassociate a specific authenticated domain from a subuser.** Authenticated domains... - `sendgrid-pp-cli whitelabel disassociate-branded-link-from-subuser` — **This endpoint allows you to take a branded link away from a subuser.** Link branding can be associated with... - `sendgrid-pp-cli whitelabel disassociate-subuser-from-domain` — **This endpoint allows you to disassociate a specific authenticated domain from a subuser, for users with up to five... - `sendgrid-pp-cli whitelabel email-dns-record` — **This endpoint is used to share DNS records with a colleagues** Use this endpoint to send SendGrid-generated DNS... - `sendgrid-pp-cli whitelabel get-authenticated-domain` — **This endpoint allows you to retrieve a specific authenticated domain.** - `sendgrid-pp-cli whitelabel get-branded-link` — **This endpoint allows you to retrieve a specific branded link by providing its ID.** You can submit this request as... - `sendgrid-pp-cli whitelabel get-reverse-dns` — **This endpoint allows you to retrieve a reverse DNS record.** You can retrieve the IDs associated with all your... - `sendgrid-pp-cli whitelabel list-all-authenticated-domain-with-user` — **This endpoint allows you to retrieve all of the authenticated domains that have been assigned to a specific... - `sendgrid-pp-cli whitelabel list-authenticated-domain` — **This endpoint allows you to retrieve a paginated list of all domains you have authenticated.** You can use the... - `sendgrid-pp-cli whitelabel list-authenticated-domain-with-user` — **This endpoint allows you to retrieve all of the authenticated domains that have been assigned to a specific... - `sendgrid-pp-cli whitelabel list-branded-link` — **This endpoint allows you to retrieve all branded links**. You can submit this request as one of your subusers if... - `sendgrid-pp-cli whitelabel list-default-authenticated-domain` — **This endpoint allows you to retrieve the default authentication for a domain.** When creating or updating a domain... - `sendgrid-pp-cli whitelabel list-default-branded-link` — **This endpoint allows you to retrieve the default branded link.** The default branded link is the actual URL to be... - `sendgrid-pp-cli whitelabel list-reverse-dns` — **This endpoint allows you to retrieve a paginated list of all the Reverse DNS records created by this account.**... - `sendgrid-pp-cli whitelabel list-subuser-branded-link` — **This endpoint allows you to retrieve the branded link associated with a subuser.** Link branding can be associated... - `sendgrid-pp-cli whitelabel set-up-reverse-dns` — **This endpoint allows you to set up reverse DNS.** - `sendgrid-pp-cli whitelabel update-authenticated-domain` — **This endpoint allows you to update the settings for an authenticated domain.** - `sendgrid-pp-cli whitelabel update-branded-link` — **This endpoint allows you to update a specific branded link. You can use this endpoint to change a branded link's... - `sendgrid-pp-cli whitelabel validate-authenticated-domain` — **This endpoint allows you to validate an authenticated domain. If it fails, it will return an error message... - `sendgrid-pp-cli whitelabel validate-branded-link` — **This endpoint allows you to validate a branded link.** You can submit this request as one of your subusers if you... - `sendgrid-pp-cli whitelabel validate-reverse-dns` — **This endpoint allows you to validate a reverse DNS record.** Always check the `valid` property of the response’s... ### Finding the right command When you know what you want to do but not which command does it, ask the CLI directly: ```bash sendgrid-pp-cli which "" ``` `which` resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code `0` means at least one match; exit code `2` means no confident match — fall back to `--help` or use a narrower query. ## Recipes ### Weekly deliverability standup ```bash sendgrid-pp-cli stats rollup --by week --metric opens,clicks,bounces --window 30d --agent --select rollup.week,rollup.metric,rollup.value,rollup.wow_delta ``` Pull a 30-day weekly rollup as agent-native JSON with only the columns the standup needs. ### Suppression hygiene cycle ```bash sendgrid-pp-cli sync suppressions && sendgrid-pp-cli suppression diff bounces --against crm.csv --json ``` Refresh the local mirror, then diff against your CRM export to find addresses that escaped suppression. ### Bounce root cause ```bash sendgrid-pp-cli bounce why user@example.com --agent ``` Joins suppressions, activity, and stats to produce a single narrative for a single bouncing address. ### Template pre-flight ```bash sendgrid-pp-cli templates lint d-abc123 --against '{"first_name":"Sam","order_id":"ord_42"}' --json ``` Catch missing Handlebars variables before triggering a production send. ## Auth Setup sendgrid-pp-cli reads SENDGRID_API_KEY (Bearer token) from the environment. Use a restricted key for read-only auditing or a full-access key for sends. Subuser impersonation via the on-behalf-of header is supported on admin endpoints (mail/send excluded by SendGrid policy). Run `sendgrid-pp-cli doctor` to verify setup. ## Agent Mode Add `--agent` to any command. Expands to: `--json --compact --no-input --no-color --yes`. - **Pipeable** — JSON on stdout, errors on stderr - **Filterable** — `--select` keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs: ```bash sendgrid-pp-cli alerts list --agent --select id,name,status ``` - **Previewable** — `--dry-run` shows the request without sending - **Offline-friendly** — sync/search commands can use the local SQLite store when available - **Non-interactive** — never prompts, every input is a flag - **Explicit retries** — use `--idempotent` only when an already-existing create should count as success, and `--ignore-missing` only when a missing delete target should count as success ### Response envelope Commands that read from the local store or the API wrap output in a provenance envelope: ```json { "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."}, "results": } ``` Parse `.results` for data and `.meta.source` to know whether it's live or local. A human-readable `N results (live)` summary is printed to stderr only when stdout is a terminal AND no machine-format flag (`--json`, `--csv`, `--compact`, `--quiet`, `--plain`, `--select`) is set — piped/agent consumers and explicit-format runs get pure JSON on stdout. ## Agent Feedback When you (or the agent) notice something off about this CLI, record it: ``` sendgrid-pp-cli feedback "the --since flag is inclusive but docs say exclusive" sendgrid-pp-cli feedback --stdin < notes.txt sendgrid-pp-cli feedback list --json --limit 10 ``` Entries are stored locally at `~/.sendgrid-pp-cli/feedback.jsonl`. They are never POSTed unless `SENDGRID_FEEDBACK_ENDPOINT` is set AND either `--send` is passed or `SENDGRID_FEEDBACK_AUTO_SEND=true`. Default behavior is local-only. Write what *surprised* you, not a bug report. Short, specific, one line: that is the part that compounds. ## Output Delivery Every command accepts `--deliver `. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported: | Sink | Effect | |------|--------| | `stdout` | Default; write to stdout only | | `file:` | Atomically write output to `` (tmp + rename) | | `webhook:` | POST the output body to the URL (`application/json` or `application/x-ndjson` when `--compact`) | Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr. ## Named Profiles A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern. ``` sendgrid-pp-cli profile save briefing --json sendgrid-pp-cli --profile briefing alerts list sendgrid-pp-cli profile list --json sendgrid-pp-cli profile show briefing sendgrid-pp-cli profile delete briefing --yes ``` Explicit flags always win over profile values; profile values win over defaults. `agent-context` lists all available profiles under `available_profiles` so introspecting agents discover them at runtime. ## Exit Codes | Code | Meaning | |------|---------| | 0 | Success | | 2 | Usage error (wrong arguments) | | 3 | Resource not found | | 4 | Authentication required | | 5 | API error (upstream issue) | | 7 | Rate limited (wait and retry) | | 10 | Config error | ## Argument Parsing Parse `$ARGUMENTS`: 1. **Empty, `help`, or `--help`** → show `sendgrid-pp-cli --help` output 2. **Starts with `install`** → ends with `mcp` → MCP installation; otherwise → see Prerequisites above 3. **Anything else** → Direct Use (execute as CLI command with `--agent`) ## MCP Server Installation Install the MCP binary from this CLI's published public-library entry or pre-built release, then register it: ```bash claude mcp add sendgrid-pp-mcp -- sendgrid-pp-mcp ``` Verify: `claude mcp list` ## Direct Use 1. Check if installed: `which sendgrid-pp-cli` If not found, offer to install (see Prerequisites at the top of this skill). 2. Match the user query to the best command from the Unique Capabilities and Command Reference above. 3. Execute with the `--agent` flag: ```bash sendgrid-pp-cli [subcommand] [args] --agent ``` 4. If ambiguous, drill into subcommand help: `sendgrid-pp-cli --help`.