Query structured spec data via REST or MCP. Get exactly what your agent needs.
http://api.sendgrid.com/v3
/api_keys/{api_key_id}
This endpoint allows you to revoke an existing API Key using an api_key_id
Authentications using a revoked API Key will fail after after some small propogation delay. If the API Key ID does not exist, a 404 status will be returned.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| api_key_id | path | required | string | — |
| on-behalf-of | header | optional | string | — |
DELETE /api_keys/{api_key_id}
/alerts/{alert_id}
This endpoint allows you to delete an alert.
Alerts allow you to specify an email address to receive notifications regarding your email usage or statistics.
For more information about alerts, please see our Alerts documentation.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| alert_id | path | required | integer | The ID of the alert you would like to retrieve. |
| on-behalf-of | header | optional | string | — |
DELETE /alerts/{alert_id}
/suppression/blocks
This endpoint allows you to delete all email addresses on your blocks list.
There are two options for deleting blocked emails:
delete_all to true in the request body.emails array of the request body.| Name | In | Required | Type | Description |
|---|---|---|---|---|
| on-behalf-of | header | optional | string | — |
application/json
BlocksApiDeleteAllBlockedEmailsRequest
| Property | Type | Required |
|---|---|---|
| emails | array | optional |
| delete_all | boolean | optional |
DELETE /suppression/blocks
/suppression/blocks/{email}
This endpoint allows you to delete a specific email address from your blocks list.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| path | required | string | The email address of the specific block. |
|
| on-behalf-of | header | optional | string | — |
DELETE /suppression/blocks/{email}
/suppression/bounces
This endpoint allows you to delete all emails on your bounces list.
There are two options for deleting bounced emails:
delete_all to true in the request body.emails array of the request body.| Name | In | Required | Type | Description |
|---|---|---|---|---|
| on-behalf-of | header | optional | string | — |
application/json
BouncesApiDeleteBouncesRequest
| Property | Type | Required |
|---|---|---|
| emails | array | optional |
| delete_all | boolean | optional |
DELETE /suppression/bounces
/suppression/bounces/{email}
This endpoint allows you to remove an email address from your bounce list.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| path | required | string | — | |
| email_address | query | required | string | The email address you would like to remove from the bounce list. |
| on-behalf-of | header | optional | string | — |
application/json
ContactsApiListsDeleteListByIdRequest
DELETE /suppression/bounces/{email}
/campaigns/{campaign_id}
This endpoint allows you to delete a specific campaign.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| campaign_id | path | required | integer | The id of the campaign you would like to retrieve. |
| on-behalf-of | header | optional | string | — |
””: “not found”
DELETE /campaigns/{campaign_id}
/campaigns/{campaign_id}/schedules
This endpoint allows you to unschedule a campaign that has already been scheduled to be sent.
A successful unschedule will return a 204.
If the specified campaign is in the process of being sent, the only option is to cancel (a different method).
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| campaign_id | path | required | integer | — |
| on-behalf-of | header | optional | string | — |
””: “This campaign is already In Progress.”
“”: “This campaign is already Sent.”
“”: “This campaign is already Paused.”
“”: “This campaign is already Canceled.”
””: “not found”
DELETE /campaigns/{campaign_id}/schedules
/user/scheduled_sends/{batch_id}
This endpoint allows you to delete the cancellation/pause of a scheduled send.
Scheduled sends cancelled less than 10 minutes before the scheduled time are not guaranteed to be cancelled.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| batch_id | path | required | string | — |
| on-behalf-of | header | optional | string | — |
DELETE /user/scheduled_sends/{batch_id}
/sso/certificates/{cert_id}
This endpoint allows you to delete an SSO certificate.
You can retrieve a certificate’s ID from the response provided by the “Get All SSO Integrations” endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| cert_id | path | required | string | — |
DELETE /sso/certificates/{cert_id}
/marketing/contacts
This endpoint can be used to delete one or more contacts.
The query parameter ids must set to a comma-separated list of contact IDs for bulk contact deletion.
The query parameter delete_all_contacts must be set to "true" to delete all contacts.
You must set either ids or delete_all_contacts.
Deletion jobs are processed asynchronously.
Twilio SendGrid recommends exporting your contacts regularly as a backup to avoid issues or lost data.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| delete_all_contacts | query | optional | string | Must be set to |
| ids | query | optional | string | A comma-separated list of contact IDs. |
DELETE /marketing/contacts
/contactdb/custom_fields/{custom_field_id}
This endpoint allows you to delete a custom field by ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_field_id | path | required | integer | The ID of the custom field that you want to retrieve. |
| on-behalf-of | header | optional | string | — |
“id” : “Returned if custom_field_id is not valid”
“custom_field_id” : “Returned if custom_field_id does not exist”
DELETE /contactdb/custom_fields/{custom_field_id}
/contactdb/lists
This endpoint allows you to delete multiple recipient lists.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| on-behalf-of | header | optional | string | — |
application/json
ContactsApiListsDeleteMultipleListsRequest
of integer
“id” : “Returned if all list ids are not valid”
DELETE /contactdb/lists
/contactdb/lists/{list_id}
This endpoint allows you to delete a specific recipient list with the given ID.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| list_id | path | required | string | — |
| delete_contacts | query | optional | boolean | Adds the ability to delete all contacts on the list in addition to deleting the list. |
| on-behalf-of | header | optional | string | — |
application/json
ContactsApiListsDeleteListByIdRequest
“list_id” : “Returned if list_id is not valid”
“delete_contacts” : “Returned if delete_contacts is not valid”
“list_id” : “Returned if list_id does not exist”
DELETE /contactdb/lists/{list_id}
/contactdb/lists/{list_id}/recipients/{recipient_id}
This endpoint allows you to delete a single recipient from a list.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| list_id | path | required | integer | The ID of the list that you want to add the recipient to. |
| recipient_id | path | required | string | The ID of the recipient you are adding to the list. |
| list_id | query | required | integer | The ID of the list you are taking this recipient away from. |
| recipient_id | query | required | integer | The ID of the recipient to take off the list. |
| on-behalf-of | header | optional | string | — |
application/json
ContactsApiListsDeleteListByIdRequest
“list_id” : “Returned if list_id is not valid”
“recipient_id” : “Returned if recipient_id is not valid”
“list_id” : “Returned if list_id does not exist”
“recipient_id” : “Returned if recipient_id does not exist”
DELETE /contactdb/lists/{list_id}/recipients/{recipient_id}
/contactdb/recipients
This endpoint allows you to deletes one or more recipients.
The body of an API call to this endpoint must include an array of recipient IDs of the recipients you want to delete.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| on-behalf-of | header | optional | string | — |
application/json
ContactsApiRecipientsDeleteMultipleRecipientsRequest
of string
”” : “Returned if no recipients are deleted”
“” : “Returned if all of the provided recipient ids are invalid”
“” : “Returned if request body is not valid json”
DELETE /contactdb/recipients
/contactdb/recipients/{recipient_id}
This endpoint allows you to delete a single recipient with the given ID from your contact database.
Use this to permanently delete your recipients from all of your contact lists and all segments if required by applicable law.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| recipient_id | path | required | string | The ID of the recipient that you want to retrieve. |
| on-behalf-of | header | optional | string | — |
“recipient_id” : “Returned if recipient_id is not valid”
“recipient_id” : “Returned if record for recipient id does not exist”
DELETE /contactdb/recipients/{recipient_id}
/contactdb/segments/{segment_id}
This endpoint allows you to delete a segment from your recipients database.
You also have the option to delete all the contacts from your Marketing Campaigns recipient database who were in this segment.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| segment_id | path | required | string | — |
| delete_contacts | query | optional | boolean | True to delete all contacts matching the segment in addition to deleting the segment |
| on-behalf-of | header | optional | string | — |
application/json
ContactsApiListsDeleteListByIdRequest
“segment_id” : “Returned if segment_id is not valid”
“delete_contacts” : “Returned if delete_contacts is not a valid boolean”
“segment_id” : “Returned if segment_id does not exist”
DELETE /contactdb/segments/{segment_id}
/marketing/field_definitions/{custom_field_id}
This endpoint deletes a defined Custom Field.
You cand delete only Custom Fields; Reserved Fields cannot be deleted.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| custom_field_id | path | required | string | — |
DELETE /marketing/field_definitions/{custom_field_id}
/designs/{id}
This endpoint allows you to delete a single design.
Be sure to check the ID of the design you intend to delete before making this request; deleting a design is a permanent action.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID of the Design you want to duplicate. |
DELETE /designs/{id}
/whitelabel/domains/subuser
This endpoint allows you to disassociate a specific authenticated domain from a subuser.
Authenticated domains can be associated with (i.e. assigned to) subusers from a parent account. This functionality allows subusers to send mail using their parent’s domain authentication. To associate an authenticated domain with a subuser, the parent account must first authenticate and validate the domain. The parent may then associate the authenticated domain via the subuser management tools.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| username | query | optional | string | Username for the subuser to find associated authenticated domain. |
DELETE /whitelabel/domains/subuser
/whitelabel/domains/{domain_id}
This endpoint allows you to delete an authenticated domain.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| domain_id | path | required | string | — |
| on-behalf-of | header | optional | string | — |
DELETE /whitelabel/domains/{domain_id}
/whitelabel/domains/{id}/ips/{ip}
This endpoint allows you to remove an IP address from that domain’s authentication.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | ID of the domain to delete the IP from. |
| ip | path | required | string | IP to remove from the domain. |
| on-behalf-of | header | optional | string | — |
DELETE /whitelabel/domains/{id}/ips/{ip}
/access_settings/whitelist
This endpoint allows you to remove one or more IP addresses from your list of allowed addresses.
To remove one or more IP addresses, pass this endpoint an array containing the ID(s) associated with the IP(s) you intend to remove. You can retrieve the IDs associated with your allowed IP addresses using the “Retrieve a list of currently allowed IPs” endpoint.
It is possible to remove your own IP address, which will block access to your account. You will need to submit a support ticket if this happens. For this reason, it is important to double check that you are removing only the IPs you intend to remove when using this endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| on-behalf-of | header | optional | string | — |
application/json
IpAccessManagementRemoveIpAddressesRequest
| Property | Type | Required |
|---|---|---|
| ids | array | optional |
DELETE /access_settings/whitelist
/access_settings/whitelist/{rule_id}
This endpoint allows you to remove a specific IP address from your list of allowed addresses.
When removing a specific IP address from your list, you must include the ID in your call. You can retrieve the IDs associated with your allowed IP addresses using the “Retrieve a list of currently allowed IPs” endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| rule_id | path | required | string | The ID of the allowed IP address that you want to retrieve. |
| on-behalf-of | header | optional | string | — |
DELETE /access_settings/whitelist/{rule_id}
/ips/pools/{pool_name}
This endpoint allows you to delete an IP pool.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| pool_name | path | required | string | The name of the IP pool that you want to retrieve the IP addresses for. |
DELETE /ips/pools/{pool_name}
/ips/pools/{pool_name}/ips/{ip}
This endpoint allows you to remove an IP address from an IP pool.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| pool_name | path | required | string | The name of the IP pool that you are removing the IP address from. |
| ip | path | required | string | The IP address that you wish to remove. |
DELETE /ips/pools/{pool_name}/ips/{ip}
/ips/warmup/{ip_address}
This endpoint allows you to remove an IP address from warmup mode.
Your request will return a 204 status code if the specified IP was successfully removed from warmup mode. To retrieve details of the IP’s warmup status before removing it from warmup mode, call the “Retrieve the warmpup status for a specific IP address” endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ip_address | path | required | string | The IP address that you want to retrieve the warmup status for. |
DELETE /ips/warmup/{ip_address}
/suppression/invalid_emails
This endpoint allows you to remove email addresses from your invalid email address list.
There are two options for deleting invalid email addresses:
1) You can delete all invalid email addresses by setting delete_all to true in the request body.
2) You can delete some invalid email addresses by specifying certain addresses in an array in the request body.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| on-behalf-of | header | optional | string | — |
application/json
InvalidEmailsApiDeleteInvalidEmailsRequest
| Property | Type | Required |
|---|---|---|
| emails | array | optional |
| delete_all | boolean | optional |
DELETE /suppression/invalid_emails
/suppression/invalid_emails/{email}
This endpoint allows you to remove a specific email address from the invalid email address list.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| path | required | string | The specific email address of the invalid email entry that you want to retrieve. |
|
| on-behalf-of | header | optional | string | — |
DELETE /suppression/invalid_emails/{email}
/whitelabel/links/subuser
This endpoint allows you to take a branded link away from a subuser.
Link branding can be associated with subusers from the parent account. This functionality allows subusers to send mail using their parent’s link branding. To associate link branding, the parent account must first create a branded link and validate it. The parent may then associate that branded link with a subuser via the API or the Subuser Management page of the Twilio SendGrid App.
Your request will receive a response with a 204 status code if the disassociation was successful.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| username | query | required | string | The username of the subuser account that you want to disassociate a branded link from. |
DELETE /whitelabel/links/subuser
/whitelabel/links/{id}
This endpoint allows you to delete a branded link.
Your request will receive a response with a 204 status code if the deletion was successful. The call does not return the link’s details, so if you wish to record these make sure you call the “Retrieve a branded link” endpoint before you request its deletion.
You can submit this request as one of your subusers if you include their ID in the on-behalf-of header in the request.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | integer | The ID of the branded link you want to retrieve. |
| on-behalf-of | header | optional | string | — |
DELETE /whitelabel/links/{id}
/marketing/lists/{id}
This endpoint allows you to deletes a specific list.
Optionally, you can also delete contacts associated to the list. The query parameter, delete_contacts=true, will delete the list and start an asynchronous job to delete associated contacts.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | — |
| delete_contacts | query | optional | boolean | Flag indicates that all contacts on the list are also to be deleted. |
DELETE /marketing/lists/{id}
/marketing/lists/{id}/contacts
This endpoint allows you to remove contacts from a given list.
The contacts will not be deleted. Only their list membership will be changed.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | — |
| contact_ids | query | required | string | comma separated list of contact ids |
DELETE /marketing/lists/{id}/contacts
/whitelabel/ips/{id}
This endpoint allows you to delete a reverse DNS record.
A call to this endpoint will respond with a 204 status code if the deletion was successful.
You can retrieve the IDs associated with all your reverse DNS records using the “Retrieve all reverse DNS records” endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | The ID of the reverse DNS record that you would like to retrieve. |
| on-behalf-of | header | optional | string | — |
DELETE /whitelabel/ips/{id}
/marketing/segments/{segment_id}
This endpoint allows you to delete a segment by segment_id.
Note that deleting a segment does not delete the contacts associated with the segment by default. Contacts associated with a deleted segment will remain in your list of all contacts and any other segments they belong to.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| segment_id | path | required | string | — |
DELETE /marketing/segments/{segment_id}
/marketing/segments/2.0/{segment_id}
The Segmentation V2 API is currently in private beta. If you’d like to be added to the beta, please fill out this form
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| segment_id | path | required | string | — |
DELETE /marketing/segments/2.0/{segment_id}
/senders/{sender_id}
This endoint allows you to delete one of your sender identities.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| sender_id | path | required | integer | The ID of the sender identity that you want to retrieve. |
| on-behalf-of | header | optional | string | — |
DELETE /senders/{sender_id}
/verified_senders/{id}
This endpoint allows you to delete a Sender Identity.
Pass the id assigned to a Sender Identity to this endpoint to delete the Sender Identity from your account.
You can retrieve the IDs associated with Sender Identities using the “Get All Verified Senders” endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | — |
DELETE /verified_senders/{id}
/user/webhooks/parse/settings/{hostname}
This endpoint allows you to delete a specific inbound parse setting by hostname.
You can retrieve all your Inbound Parse settings and their associated host names with the “Retrieve all parse settings” endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| hostname | path | required | string | The hostname associated with the inbound parse setting that you would like to retrieve. |
| on-behalf-of | header | optional | string | — |
DELETE /user/webhooks/parse/settings/{hostname}
/marketing/singlesends
This endpoint allows you to delete multiple Single Sends using an array of Single Sends IDs.
To first retrieve all your Single Sends’ IDs, you can make a GET request to the /marketing/singlensends endpoint.
Please note that a DELETE request is permanent, and your Single Sends will not be recoverable after deletion.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| ids | query | optional | array | Single Send IDs to delete |
DELETE /marketing/singlesends
/marketing/singlesends/{id}
This endpoint allows you to delete one Single Send using a Single Send ID.
To first retrieve all your Single Sends’ IDs, you can make a GET request to the /marketing/singlensends endpoint.
Please note that a DELETE request is permanent, and your Single Send will not be recoverable after deletion.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | — |
DELETE /marketing/singlesends/{id}
/marketing/singlesends/{id}/schedule
This endpoint allows you to cancel a scheduled Single Send using a Single Send ID.
Making a DELETE request to this endpoint will cancel the scheduled sending of a Single Send. The request will not delete the Single Send itself. Deleting a Single Send can be done by passing a DELETE request to /marketing/singlesends/{id}.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | — |
DELETE /marketing/singlesends/{id}/schedule
/sso/integrations/{id}
This endpoint allows you to delete an IdP configuration by ID.
You can retrieve the IDs for your configurations from the response provided by the “Get All SSO Integrations” endpoint.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| id | path | required | string | — |
DELETE /sso/integrations/{id}
/suppression/spam_reports
This endpoint allows you to delete your spam reports.
Deleting a spam report will remove the suppression, meaning email will once again be sent to the previously suppressed address. This should be avoided unless a recipient indicates they wish to receive email from you again. You can use our bypass filters to deliver messages to otherwise suppressed addresses when exceptions are required.
There are two options for deleting spam reports:
delete_all field to true in the request body.emails array of the request body.| Name | In | Required | Type | Description |
|---|---|---|---|---|
| on-behalf-of | header | optional | string | — |
application/json
SpamReportsApiDeleteReportsRequest
| Property | Type | Required |
|---|---|---|
| emails | array | optional |
| delete_all | boolean | optional |
DELETE /suppression/spam_reports
/suppression/spam_reports/{email}
This endpoint allows you to delete a specific spam report by email address.
Deleting a spam report will remove the suppression, meaning email will once again be sent to the previously suppressed address. This should be avoided unless a recipient indicates they wish to receive email from you again. You can use our bypass filters to deliver messages to otherwise suppressed addresses when exceptions are required.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| path | required | string | The email address of a specific spam report that you want to retrieve. |
|
| on-behalf-of | header | optional | string | — |
DELETE /suppression/spam_reports/{email}
/subusers/{subuser_name}/monitor
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| subuser_name | path | required | string | The name of the subuser for which to retrieve monitor settings. |
DELETE /subusers/{subuser_name}/monitor
/subusers/{subuser_name}
This endpoint allows you to delete a subuser.
This is a permanent action. Once deleted, a subuser cannot be retrieved.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| subuser_name | path | required | string | — |
DELETE /subusers/{subuser_name}
/asm/suppressions/global/{email}
This endpoint allows you to remove an email address from the global suppressions group.
Deleting a suppression group will remove the suppression, meaning email will once again be sent to the previously suppressed addresses. This should be avoided unless a recipient indicates they wish to receive email from you again. You can use our bypass filters to deliver messages to otherwise suppressed addresses when exceptions are required.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| path | required | string | The email address of the global suppression you want to retrieve. Or, if you want to check if an email address is on the global suppressions list, enter that email address here. |
|
| on-behalf-of | header | optional | string | — |
DELETE /asm/suppressions/global/{email}
/asm/groups/{group_id}/suppressions/{email}
This endpoint allows you to remove a suppressed email address from the given suppression group.
Removing an address will remove the suppression, meaning email will once again be sent to the previously suppressed addresses. This should be avoided unless a recipient indicates they wish to receive email from you again. You can use our bypass filters to deliver messages to otherwise suppressed addresses when exceptions are required.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| group_id | path | required | string | The id of the suppression group that you are removing an email address from. |
| path | required | string | The email address that you want to remove from the suppression group. |
|
| on-behalf-of | header | optional | string | — |
DELETE /asm/groups/{group_id}/suppressions/{email}
/asm/groups/{group_id}
This endpoint allows you to delete a suppression group.
If a recipient uses the “one-click unsubscribe” option on an email associated with a deleted group, that recipient will be added to the global suppression list.
Deleting a suppression group will remove the suppression, meaning email will once again be sent to the previously suppressed addresses. This should be avoided unless a recipient indicates they wish to receive email from you again. You can use our bypass filters to deliver messages to otherwise suppressed addresses when exceptions are required.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| group_id | path | required | string | The ID of the suppression group you would like to retrieve. |
| on-behalf-of | header | optional | string | — |
DELETE /asm/groups/{group_id}
/teammates/pending/{token}
This endpoint allows you to delete a pending teammate invite.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| token | path | required | string | The token for the invite you want to delete. |
| on-behalf-of | header | optional | string | — |
DELETE /teammates/pending/{token}
/teammates/{username}
This endpoint allows you to delete a teammate.
Only the parent user or an admin teammate can delete another teammate.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| username | path | required | string | The username of the teammate that you want to retrieve. |
| on-behalf-of | header | optional | string | — |
DELETE /teammates/{username}
/scopes/requests/{request_id}
This endpoint allows you to deny an attempt to access your account.
Note: Only teammate admins may delete a teammate’s access request.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| request_id | path | required | string | The ID of the request that you want to deny. |
DELETE /scopes/requests/{request_id}
/templates/{template_id}
This endpoint allows you to delete a transactional template.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| template_id | path | required | string | — |
| on-behalf-of | header | optional | string | — |
DELETE /templates/{template_id}
/templates/{template_id}/versions/{version_id}
This endpoint allows you to delete a transactional template version.
| Name | In | Required | Type | Description |
|---|---|---|---|---|
| template_id | path | required | string | The ID of the original template |
| version_id | path | required | string | The ID of the template version |
| on-behalf-of | header | optional | string | — |
DELETE /templates/{template_id}/versions/{version_id}
AlertsDeleteAlertByIdResponse
{
"type": "object",
"properties": {}
}
AlertsGetSpecificAlertResponse
{
"type": "object",
"required": [
"created_at",
"email_to",
"id",
"type",
"updated_at"
],
"properties": {
"id": {
"type": "integer",
"description": "The ID of the alert."
},
"type": {
"enum": [
"usage_alert",
"stats_notification"
],
"type": "string",
"description": "The type of alert."
},
"email_to": {
"type": "string",
"description": "The email address that the alert will be sent to."
},
"frequency": {
"type": "string",
"description": "If the alert is of type stats_notification, this indicates how frequently the stats notifications will be sent. For example: \"daily\", \"weekly\", or \"monthly\"."
},
"created_at": {
"type": "integer",
"description": "A Unix timestamp indicating when the alert was created."
},
"percentage": {
"type": "integer",
"description": "If the alert is of type usage_limit, this indicates the percentage of email usage that must be reached before the alert will be sent."
},
"updated_at": {
"type": "integer",
"description": "A Unix timestamp indicating when the alert was last modified."
}
}
}
AlertsUpdateAlertRequest
{
"type": "object",
"example": {
"email_to": "example@example.com"
},
"properties": {
"email_to": {
"type": "string",
"description": "The new email address you want your alert to be sent to.\nExample: test@example.com"
},
"frequency": {
"type": "string",
"description": "The new frequency at which to send the stats_notification alert.\nExample: monthly"
},
"percentage": {
"type": "integer",
"description": "The new percentage threshold at which the usage_limit alert will be sent.\nExample: 90"
}
}
}
AlertsUpdateAlertResponse
{
"type": "object",
"required": [
"created_at",
"email_to",
"id",
"type",
"updated_at"
],
"properties": {
"id": {
"type": "integer",
"description": "The ID of the alert."
},
"type": {
"enum": [
"usage_alert",
"stats_notification"
],
"type": "string",
"description": "The type of alert."
},
"email_to": {
"type": "string",
"description": "The email address that the alert will be sent to."
},
"frequency": {
"type": "string",
"description": "If the alert is of type stats_notification, this indicates how frequently the stats notifications will be sent. For example: \"daily\", \"weekly\", or \"monthly\"."
},
"created_at": {
"type": "integer",
"description": "A Unix timestamp indicating when the alert was created."
},
"percentage": {
"type": "integer",
"description": "If the alert is of type usage_limit, this indicates the percentage of email usage that must be reached before the alert will be sent."
},
"updated_at": {
"type": "integer",
"description": "A Unix timestamp indicating when the alert was last modified."
}
}
}
ApiKeysCreateKeyRequest
{
"type": "object",
"example": {
"name": "My API Key",
"scopes": [
"mail.send",
"alerts.create",
"alerts.read"
]
},
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The name you will use to describe this API Key."
},
"scopes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The individual permissions that you are giving to this API Key."
}
}
}
ApiKeysCreateKeyResponse
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
},
"api_key": {
"type": "string"
},
"api_key_id": {
"type": "string"
}
}
}
ApiKeysGetAllResponse
{
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"$ref": "#/components/schemas/api_key_name_id"
}
}
}
}
ApiKeysGetByKeyIdResponse
{
"type": "object",
"properties": {
"result": {
"type": "array",
"items": {
"$ref": "#/components/schemas/api_key_name_id_scopes"
}
}
}
}
ApiKeysUpdateKeyNameRequest
{
"type": "object",
"example": {
"name": "A New Hope"
},
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "The new name of the API Key."
}
}
}
ApiKeysUpdateNameAndScopesRequest
{
"type": "object",
"example": {
"name": "Profiles key",
"scopes": [
"user.profile.read",
"user.profile.update"
]
},
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"scopes": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
BlocksApiDeleteAllBlockedEmailsRequest
{
"type": "object",
"example": {
"emails": [
"example1@example.com",
"example2@example.com"
],
"delete_all": false
},
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "The specific blocked email addresses that you want to delete."
},
"delete_all": {
"type": "boolean",
"description": "Indicates if you want to delete all blocked email addresses."
}
}
}
BlocksApiDeleteAllBlockedEmailsResponse
{
"type": "object",
"properties": {}
}
BlocksApiDeleteSpecificBlockResponse
{
"type": "object",
"properties": {}
}
BouncesApiDeleteBouncesRequest
{
"type": "object",
"example": {
"emails": [
"example@example.com",
"example2@example.com"
],
"delete_all": false
},
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "Delete multiple emails from your bounce list at the same time. This should not be used with the delete_all parameter."
},
"delete_all": {
"type": "boolean",
"description": "This parameter allows you to delete **every** email in your bounce list. This should not be used with the emails parameter."
}
}
}
BouncesApiDeleteBouncesResponse
{
"type": "object",
"example": {},
"properties": {}
}
BouncesApiGetAllBouncesResponse
{
"type": "array",
"items": {
"$ref": "#/components/schemas/bounce_response"
}
}
BouncesApiGetByEmailAddressResponse
{
"type": "array",
"items": {
"$ref": "#/components/schemas/bounce_response"
}
}
BouncesApiRemoveBounceResponse
{
"type": "object",
"example": {},
"properties": {}
}
CampaignsApiDeleteCampaignById401Response
{
"type": "object",
"example": {
"errors": [
{
"field": null,
"message": "authorization required"
}
]
},
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"nullable": true,
"x-konfig-null-placeholder": true
},
"message": {
"type": "string",
"example": "authorization required"
}
}
}
}
}
}
CampaignsApiDeleteCampaignById404Response
{
"type": "object",
"example": {},
"properties": {}
}
CampaignsApiDeleteCampaignByIdResponse
{
"type": "object",
"example": {},
"properties": {}
}
CampaignsApiGetScheduledTimeResponse
{
"type": "object",
"title": "View Scheduled Time of a Campaign response",
"required": [
"send_at"
],
"properties": {
"send_at": {
"type": "integer",
"format": "int64"
}
}
}
CampaignsApiGetSingleCampaign401Response
{
"type": "object",
"example": {
"errors": [
{
"field": null,
"message": "authorization required"
}
]
},
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"nullable": true,
"x-konfig-null-placeholder": true
},
"message": {
"type": "string",
"example": "authorization required"
}
}
}
}
}
}
CampaignsApiGetSingleCampaign404Response
{
"type": "object",
"example": {
"errors": [
{
"field": null,
"message": "not found"
}
]
},
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"nullable": true,
"x-konfig-null-placeholder": true
},
"message": {
"type": "string",
"example": "not found"
}
}
}
}
}
}
CampaignsApiGetSingleCampaignResponse
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"title": {
"type": "string"
},
"status": {
"type": "string"
},
"ip_pool": {
"type": "string"
},
"subject": {
"type": "string"
},
"list_ids": {
"type": "array",
"items": {
"type": "integer"
}
},
"sender_id": {
"type": "integer"
},
"categories": {
"type": "array",
"items": {
"type": "string"
}
},
"segment_ids": {
"type": "array",
"items": {
"type": "integer"
}
},
"html_content": {
"type": "string"
},
"plain_content": {
"type": "string"
},
"suppression_group_id": {
"type": "integer"
},
"custom_unsubscribe_url": {
"type": "string"
}
}
}
CampaignsApiScheduleCampaignRequest
{
"type": "object",
"title": "Schedule a Campaign request",
"example": {
"send_at": 1489771528
},
"required": [
"send_at"
],
"properties": {
"send_at": {
"type": "integer",
"description": "The unix timestamp for the date and time you would like your campaign to be sent out."
}
}
}
CampaignsApiScheduleCampaignResponse
{
"type": "object",
"title": "Schedule a Campaign response",
"required": [
"id",
"send_at",
"status"
],
"properties": {
"id": {
"type": "integer",
"description": "The campaign ID."
},
"status": {
"enum": [
"Scheduled"
],
"type": "string",
"description": "The status of your campaign."
},
"send_at": {
"type": "integer",
"description": "The date time you scheduled your campaign to be sent."
}
}
}
CampaignsApiSendCampaignNowResponse
{
"type": "object",
"title": "Send a Campaign response",
"required": [
"id",
"status"
],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"status": {
"type": "string"
}
}
}
CampaignsApiSendTestCampaignRequest
{
"type": "object",
"example": {
"to": "your.email@example.com"
},
"required": [
"to"
],
"properties": {
"to": {
"type": "string",
"format": "email",
"description": "The email address that should receive the test campaign."
}
}
}
CampaignsApiSendTestCampaignResponse
{
"type": "object",
"title": "Send a Test Campaign request",
"required": [
"to"
],
"properties": {
"to": {
"type": "string"
}
}
}
CampaignsApiUnscheduleCampaignResponse
{
"type": "object",
"example": {},
"properties": {}
}
CampaignsApiUpdateScheduledTimeRequest
{
"type": "object",
"title": "Update a Scheduled Campaign request",
"example": {
"send_at": 1489451436
},
"required": [
"send_at"
],
"properties": {
"send_at": {
"type": "integer",
"format": "int64"
}
}
}
CampaignsApiUpdateScheduledTimeResponse
{
"type": "object",
"title": "Update a Scheduled Campaign response",
"required": [
"id",
"send_at",
"status"
],
"properties": {
"id": {
"type": "integer",
"description": "The campaign ID"
},
"status": {
"type": "string",
"description": "The status of the schedule."
},
"send_at": {
"type": "integer",
"description": "The unix timestamp to send the campaign."
}
}
}
CampaignsApiUpdateSpecificCampaign403Response
{
"type": "object",
"example": {
"errors": [
{
"field": null,
"message": "You may only update a campaign when it is in draft mode."
}
]
},
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"nullable": true,
"x-konfig-null-placeholder": true
},
"message": {
"type": "string",
"example": "You may only update a campaign when it is in draft mode."
}
}
}
}
}
}
CampaignsApiUpdateSpecificCampaignRequest
{
"type": "object",
"title": "Update a Campaign request",
"example": {
"title": "May Newsletter",
"subject": "New Products for Summer!",
"categories": [
"summer line"
],
"html_content": "<html><head><title></title></head><body><p>Check out our summer line!</p></body></html>",
"plain_content": "Check out our summer line!"
},
"required": [
"title",
"subject",
"categories",
"html_content",
"plain_content"
],
"properties": {
"title": {
"type": "string",
"description": "The title of the campaign."
},
"subject": {
"type": "string",
"description": "The subject line for your campaign."
},
"categories": {
"type": "array",
"items": {
"type": "string"
},
"description": "The categories you want to tag on this campaign."
},
"html_content": {
"type": "string",
"description": "The HTML content of this campaign."
},
"plain_content": {
"type": "string",
"description": "The plain content of this campaign."
}
}
}
CampaignsApiUpdateSpecificCampaignResponse
{
"type": "object",
"example": {
"errors": [
{
"field": "title",
"message": "title can't be blank"
},
{
"field": "title",
"message": "title is too long (maximum is 100 characters)"
},
{
"field": "categories",
"message": "categories exceeds 10 category limit"
},
{
"field": "html_content",
"message": "html_content exceeds the 1MB limit"
},
{
"field": "plain_content",
"message": "plain_content exceeds the 1MB limit"
},
{
"field": "sender_id",
"message": "sender_id does not exist"
},
{
"field": "sender_id",
"message": "sender_id is not a verified sender identity"
},
{
"field": "list_ids",
"message": "list_ids do not all exist"
},
{
"field": "segment_ids",
"message": "segment_ids do not all exist"
},
{
"field": "ip_pool",
"message": "The ip pool you provided is invalid"
},
{
"field": "suppression_group_id",
"message": "suppression_group_id does not exist"
},
{
"field": "unsubscribes",
"message": "Either suppression_group_id or custom_unsubscribe_url may be set/used, but not both. Please remove one before setting the other."
},
{
"field": null,
"message": "The JSON you have submitted cannot be parsed."
}
]
},
"properties": {
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"example": "title",
"nullable": true
},
"message": {
"type": "string",
"example": "title can't be blank"
}
}
}
}
}
}
CancelScheduledSendsAllScheduledSendsResponse
{
"type": "array",
"items": {
"$ref": "#/components/schemas/user_scheduled_send_status"
}
}
CancelScheduledSendsByBatchIdResponse
{
"type": "array",
"items": {
"$ref": "#/components/schemas/user_scheduled_send_status"
},
"title": "Retrieve scheduled send response"
}
CancelScheduledSendsByBatchIdStatusRequest
{
"type": "object",
"title": "Cancel or pause a scheduled send request",
"example": {
"status": "pause",
"batch_id": "YOUR_BATCH_ID"
},
"required": [
"batch_id",
"status"
],
"properties": {
"status": {
"enum": [
"pause",
"cancel"
],
"type": "string",
"default": "pause",
"description": "The status of the send you would like to implement. This can be pause or cancel. To delete a pause or cancel status see DELETE /v3/user/scheduled_sends/{batch_id}"
},
"batch_id": {
"type": "string",
"pattern": "^[a-zA-Z0-9]",
"description": "The batch ID is the identifier that your scheduled mail sends share."
}
}
}
CancelScheduledSendsRequestResponse
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"help": {
"type": "object"
},
"field": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
}
}
CancelScheduledSendsUpdateStatusRequest
{
"type": "object",
"example": {
"status": "pause"
},
"required": [
"status"
],
"properties": {
"status": {
"enum": [
"cancel",
"pause"
],
"type": "string",
"description": "The status you would like the scheduled send to have."
}
}
}
CancelScheduledSendsUpdateStatusResponse
{
"type": "object",
"example": {},
"properties": {}
}
CategoriesGetEmailStatisticsForResponse
{
"type": "array",
"items": {
"$ref": "#/components/schemas/category_stats"
}
}
CertificatesCreateSsoCertificateRequest
{
"type": "object",
"example": {
"enabled": false,
"integration_id": "b0b98502-9408-4b24-9e3d-31ed7cb15312",
"public_certificate": "<your x509 certificate>"
},
"required": [
"public_certificate",
"integration_id"
],
"properties": {
"enabled": {
"type": "boolean",
"description": "Indicates if the certificate is enabled."
},
"integration_id": {
"type": "string",
"description": "An ID that matches a certificate to a specific IdP integration. This is the `id` returned by the \"Get All SSO Integrations\" endpoint."
},
"public_certificate": {
"type": "string",
"description": "This public certificate allows SendGrid to verify that SAML requests it receives are signed by an IdP that it recognizes."
}
},
"description": ""
}
CertificatesGetByIdpConfigurationsResponse
{
"type": "array",
"items": {
"$ref": "#/components/schemas/sso-certificate-body"
}
}
CertificatesUpdateByIdRequest
{
"type": "object",
"example": {
"enabled": false,
"intergration_id": "b0b98502-9408-4b24-9e3d-31ed7cb15312",
"public_certificate": "<your x509 certificate>"
},
"properties": {
"enabled": {
"type": "boolean",
"description": "Indicates whether or not the certificate is enabled."
},
"integration_id": {
"type": "string",
"description": "An ID that matches a certificate to a specific IdP integration."
},
"public_certificate": {
"type": "string",
"description": "This public certificate allows SendGrid to verify that SAML requests it receives are signed by an IdP that it recognizes."
}
}
}
ContactsApiCustomFieldsCreateNewFieldRequest
{
"type": "object",
"example": {
"name": "pet",
"type": "text"
},
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
}
}
}
ContactsApiCustomFieldsGetAllResponse
{
"type": "object",
"title": "List All Custom Fields response",
"required": [
"custom_fields"
],
"properties": {
"custom_fields": {
"type": "array",
"items": {
"$ref": "#/components/schemas/contactdb_custom_field_with_id"
}
}
}
}
ContactsApiCustomFieldsGetReservedFieldsResponse
{
"type": "object",
"properties": {
"reserved_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
}
}
}
}
}
}
ContactsApiListsAddMultipleRecipientsToListRequest
{
"type": "array",
"items": {
"type": "integer"
},
"example": [
"recipient_id1",
"recipient_id2"
]
}
| Version | Endpoints | Schemas | Ingested | Status |
|---|---|---|---|---|
| 1.0.0 | 334 | 545 | 2026-05-11 | current |
| 1.0.0 | 334 | 545 | 2026-04-16 |