Email Activity (beta)

Email delivery and marketing service

sendgrid.com/docs ↗
Version
1.0.0
OpenAPI
3.0.0
Endpoints
334
Schemas
545
86
Quality
Updated
3 days ago
Email email marketing communications
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

http://api.sendgrid.com/v3

Endpoints

Clear filters

Apikeys 1 endpoints

PATCH /api_keys/{api_key_id}

This endpoint allows you to update the name of an existing API Key.

You must pass this endpoint a JSON request body with a name property, which will be used to rename the key associated with the api_key_id passed in the URL.

operationId: ApiKeys_updateKeyName

Parameters

Name In Required Type Description
api_key_id path required string
on-behalf-of header optional string

Request Body

application/json
schema ApiKeysUpdateKeyNameRequest
Property Type Required
name string required

Responses

200
400
401
403
404
500
PATCH /api_keys/{api_key_id}

Alerts 1 endpoints

PATCH /alerts/{alert_id}

This endpoint allows you to update an alert.

Alerts allow you to specify an email address to receive notifications regarding your email usage or statistics.

  • Usage alerts allow you to set the threshold at which an alert will be sent.
  • Stats notifications allow you to set how frequently you would like to receive email statistics reports. For example, “daily”, “weekly”, or “monthly”.

For more information about alerts, please see our Alerts documentation.

operationId: Alerts_updateAlert

Parameters

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

Request Body

application/json
schema AlertsUpdateAlertRequest
Property Type Required
email_to string optional
frequency string optional
percentage integer optional

Responses

200
PATCH /alerts/{alert_id}

Campaignsapi 2 endpoints

PATCH /campaigns/{campaign_id}

This endpoint allows you to update a specific campaign.

This is especially useful if you only set up the campaign using POST /campaigns, but didn’t set many of the parameters.

operationId: CampaignsApi_updateSpecificCampaign

Parameters

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

Request Body

application/json
schema CampaignsApiUpdateSpecificCampaignRequest
Property Type Required
title string required
subject string required
categories array required
html_content string required
plain_content string required

Responses

200
400

“title”: “title can’t be blank”
“title”: “title is too long (maximum is 100 characters)”
“categories”: “categories exceeds 10 category limit”
“html_content”: “html_content exceeds the 1MB limit”
“plain_content”: “plain_content exceeds the 1MB limit”
“sender_id”: “sender_id does not exist”
“sender_id”: “sender_id is not a verified sender identity”
“list_ids”: “list_ids do not all exist”
“segment_ids”: “segment_ids do not all exist”
“ip_pool”: “The ip pool you provided is invalid”
“suppression_group_id”: “suppression_group_id does not exist”
“unsubscribes”: “Either suppression_group_id or custom_unsubscribe_url may be set/used, but not both. Please remove one before setting the other.”
“”: “The JSON you have submitted cannot be parsed.”

401
403

””: “You may only update a campaign when it is in draft mode.”

404

””: “not found”

PATCH /campaigns/{campaign_id}
PATCH /campaigns/{campaign_id}/schedules

This endpoint allows to you change the scheduled time and date for a campaign to be sent.

operationId: CampaignsApi_updateScheduledTime

Parameters

Name In Required Type Description
campaign_id path required integer
on-behalf-of header optional string

Request Body

application/json
schema CampaignsApiUpdateScheduledTimeRequest
Property Type Required
send_at integer required

Responses

200
400

””: “The JSON you have submitted cannot be parsed.”
“send_at”: “Please choose a future time for sending your campaign.”
“”:”You do not have enough credits to send this campaign. Upgrade your plan to send more: https://app.sendgrid.com/settings/billing”

403

“send_at”: “You cannot update the send_at value of non-scheduled campaign.”

404

””: “not found”

PATCH /campaigns/{campaign_id}/schedules

Cancelscheduledsends 1 endpoints

PATCH /user/scheduled_sends/{batch_id}

This endpoint allows you to update the status of a scheduled send for the given batch_id.

If you have already set a cancel or pause status on a scheduled send using the “Cancel or pause a scheduled send” endpoint, you can update it’s status using this endpoint. Attempting to update a status once it has been set with the “Cancel or pause a scheduled send” endpoint will result in a 400 error.

operationId: CancelScheduledSends_updateStatus

Parameters

Name In Required Type Description
batch_id path required string
on-behalf-of header optional string

Request Body

application/json
schema CancelScheduledSendsUpdateStatusRequest
Property Type Required
status string required

Responses

204
400
401
403
404
500
PATCH /user/scheduled_sends/{batch_id}

Certificates 1 endpoints

PATCH /sso/certificates/{cert_id}

This endpoint allows you to update an existing certificate by ID.

You can retrieve a certificate’s ID from the response provided by the “Get All SSO Integrations” endpoint.

operationId: Certificates_updateById

Parameters

Name In Required Type Description
cert_id path required string

Request Body

application/json
schema CertificatesUpdateByIdRequest
Property Type Required
enabled boolean optional
integration_id string optional
public_certificate string optional

Responses

200

OK

400
401
403
429
500
PATCH /sso/certificates/{cert_id}

Contactsapilists 1 endpoints

PATCH /contactdb/lists/{list_id}

This endpoint allows you to update the name of one of your recipient lists.

operationId: ContactsApiLists_updateListName

Parameters

Name In Required Type Description
list_id path required string
list_id query required integer

The ID of the list you are updating.

on-behalf-of header optional string

Request Body

application/json
schema ContactsApiListsUpdateListNameRequest
Property Type Required
name string required

Responses

200
400

“name” : “Returned if list name is a duplicate of existing list or segment”
“name” : “Returned if list name is invalid or not provided”
“list_id” : “Returned if list_id is not valid”
“” : “Returned if request body is invalid JSON”

404

“list_id” : “Returned if list_id does not exist”

PATCH /contactdb/lists/{list_id}

Contactsapirecipients 1 endpoints

PATCH /contactdb/recipients

This endpoint allows you to update one or more recipients.

The body of an API call to this endpoint must include an array of one or more recipient objects.

It is of note that you can add custom field data as parameters on recipient objects. We have provided an example using some of the default custom fields SendGrid provides.

operationId: ContactsApiRecipients_updateMultipleRecipients

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema ContactsApiRecipientsUpdateMultipleRecipientsRequest
array of object
Property Type Required
email string required
last_name string optional
first_name string optional

Responses

201
400

”” : “Returned if request body is not valid json”

401
PATCH /contactdb/recipients

Contactsapisegments 1 endpoints

PATCH /contactdb/segments/{segment_id}

This endpoint allows you to update a segment.

operationId: ContactsApiSegments_updateSegment

Parameters

Name In Required Type Description
segment_id path required string
segment_id query optional string

The ID of the segment you are updating.

on-behalf-of header optional string

Request Body

application/json
schema ContactsApiSegmentsUpdateSegmentRequest
Property Type Required
name string required
list_id number optional
conditions array optional
field string required
value string required
and_or string optional
operator string required

Responses

200
400
401
PATCH /contactdb/segments/{segment_id}

Customfields 1 endpoints

PATCH /marketing/field_definitions/{custom_field_id}

This endopoint allows you to update a defined Custom Field.

Only your Custom fields can be modified; Reserved Fields cannot be updated.

operationId: CustomFields_updateDefinition

Parameters

Name In Required Type Description
custom_field_id path required string

Request Body

application/json
schema CustomFieldsUpdateDefinitionRequest
Property Type Required
name string required

Responses

200
400
404
PATCH /marketing/field_definitions/{custom_field_id}

Designsapi 1 endpoints

PATCH /designs/{id}

This endpoint allows you to edit a design.

The Design API supports PATCH requests, which allow you to make partial updates to a single design. Passing data to a specific field will update only the data stored in that field; all other fields will be unaltered.

For example, updating a design’s name requires that you make a PATCH request to this endpoint with data specified for the name field only.

{
    "name": "<Updated Name>"
}
operationId: DesignsApi_updateDesignById

Parameters

Name In Required Type Description
id path required string

The ID of the Design you want to duplicate.

Request Body

application/json
schema DesignsApiUpdateDesignByIdRequest
Property Type Required
name string optional
subject string optional
categories array optional
html_content string optional
plain_content string optional
generate_plain_content boolean optional

Responses

200
400
404
PATCH /designs/{id}

Domainauthentication 1 endpoints

PATCH /whitelabel/domains/{domain_id}

This endpoint allows you to update the settings for an authenticated domain.

operationId: DomainAuthentication_updateDomainSettings

Parameters

Name In Required Type Description
domain_id path required string
on-behalf-of header optional string

Request Body

application/json
schema DomainAuthenticationUpdateDomainSettingsRequest
Property Type Required
default boolean optional
custom_spf boolean optional

Responses

200
PATCH /whitelabel/domains/{domain_id}

Linkbranding 1 endpoints

PATCH /whitelabel/links/{id}

This endpoint allows you to update a specific branded link. You can use this endpoint to change a branded link’s default status.

You can submit this request as one of your subusers if you include their ID in the on-behalf-of header in the request.

operationId: LinkBranding_updateBrandedLink

Parameters

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

Request Body

application/json
schema LinkBrandingUpdateBrandedLinkRequest
Property Type Required
default boolean optional

Responses

200
PATCH /whitelabel/links/{id}

Lists 1 endpoints

PATCH /marketing/lists/{id}

This endpoint updates the name of a list.

operationId: Lists_updateName

Parameters

Name In Required Type Description
id path required string

Request Body

application/json
schema ListsUpdateNameRequest
Property Type Required
name string optional

Responses

200
400
404
PATCH /marketing/lists/{id}

Segmentingcontacts 1 endpoints

PATCH /marketing/segments/{segment_id}

This endpoint allows you to update a segment.

Segment name needs to be unique. A user can not update a segment name to an existing one.

operationId: SegmentingContacts_updateSegmentById

Parameters

Name In Required Type Description
segment_id path required string

Request Body

application/json
schema segment_write_v2
Property Type Required
name string required
query_dsl string required
parent_list_ids array optional

Responses

200
401
403
404
500
PATCH /marketing/segments/{segment_id}

Segmentingcontactsv2beta 1 endpoints

PATCH /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

Segment name has to be unique. A user can not create a new segment with an existing segment name.

operationId: SegmentingContactsV2Beta_updateSegmentById

Parameters

Name In Required Type Description
segment_id path required string

Request Body

application/json
schema segment_update
Property Type Required
name string optional
query_dsl string optional

Responses

200
400
429
500
PATCH /marketing/segments/2.0/{segment_id}

Senderidentitiesapi 1 endpoints

PATCH /senders/{sender_id}

This endpoint allows you to update a sender identity.

Updates to from.email require re-verification.

Partial updates are allowed, but fields that are marked as “required” in the POST (create) endpoint must not be nil if that field is included in the PATCH request.

operationId: SenderIdentitiesApi_updateSenderIdentity

Parameters

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

Request Body

application/json
schema sender-id-request
Property Type Required
zip string optional
city string optional
from object optional
name string optional
email string optional
state string optional
address string optional
country string optional
nickname string optional
reply_to object optional
name string optional
email string optional
address_2 string optional

Responses

200
400
403
404
PATCH /senders/{sender_id}

Senderverification 1 endpoints

PATCH /verified_senders/{id}

This endpoint allows you to update an existing Sender Identity.

Pass the id assigned to a Sender Identity to this endpoint as a path parameter. Include any fields you wish to update in the request body in JSON format.

You can retrieve the IDs associated with Sender Identities by passing a GET request to the Get All Verified Senders endpoint, /verified_senders.

Note: Unlike a PUT request, PATCH allows you to update only the fields you wish to edit. Fields that are not passed as part of a request will remain unaltered.

operationId: SenderVerification_updateSenderIdentity

Parameters

Name In Required Type Description
id path required string

Request Body

application/json
schema verified-sender-request-schema
Property Type Required
zip string optional
city string optional
state string optional
address string optional
country string optional
address2 string optional
nickname string required
reply_to string required
from_name string optional
from_email string required
reply_to_name string optional

Responses

200
400
401
403
404
500
PATCH /verified_senders/{id}

Settingsenforcedtls 1 endpoints

PATCH /user/settings/enforced_tls

This endpoint allows you to update your Enforced TLS settings.

To require TLS from recipients, set require_tls to true. If either require_tls or require_valid_cert is set to true, the recipient must support TLS 1.1 or higher or have a valid certificate. If these conditions are not met, Twilio SendGrid will drop the message and send a block event with “TLS required but not supported” as the description.

Twilio SendGrid supports TLS 1.1 and higher and does not support older versions of TLS due to security vulnerabilities.

operationId: SettingsEnforcedTls_updateEnforcedTlsSettings

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema enforced-tls-request-response
Property Type Required
require_tls boolean optional
require_valid_cert boolean optional

Responses

200
401
403
404
500
PATCH /user/settings/enforced_tls

Settingsinboundparse 1 endpoints

PATCH /user/webhooks/parse/settings/{hostname}

This endpoint allows you to update 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.

operationId: SettingsInboundParse_updateHostnameSetting

Parameters

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

Request Body

application/json
schema parse-setting
Property Type Required
url string optional
hostname string optional
send_raw boolean optional
spam_check boolean optional

Responses

200
401
403
404
500
PATCH /user/webhooks/parse/settings/{hostname}

Settingsmail 6 endpoints

PATCH /mail_settings/address_whitelist

This endpoint allows you to update your current email address whitelist settings.

You can select whether or not this setting should be enabled by assigning the enabled field a true or false value.

Passing only the enabled field to this endpoint will not alter your current list of whitelist entries. However, any modifications to your list of entries will overwrite the entire list. For this reason, you must included all existing entries you wish to retain in your list in addition to any new entries you intend to add. To remove one or more list entries, pass a list with only the entries you wish to retain.

You should not add generic domains such as gmail.com or yahoo.com in your list because your emails will not honor recipients’ unsubscribes. This may cause a legal violation of CAN-SPAM and could damage your sending reputation.

The Address Whitelist setting allows you to specify email addresses or domains for which mail should never be suppressed.

For example, if you own the domain example.com, and one or more of your recipients use email@example.com addresses, placing example.com in the address whitelist setting instructs Twilio SendGrid to ignore all bounces, blocks, and unsubscribes logged for that domain. In other words, all bounces, blocks, and unsubscribes will still be sent to example.com as if they were sent under normal sending conditions.

operationId: SettingsMail_updateAddressWhitelistMailSettings

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema SettingsMailUpdateAddressWhitelistMailSettingsRequest
Property Type Required
list array optional
enabled boolean optional

Responses

200
400
401
403
404
500
PATCH /mail_settings/address_whitelist
PATCH /mail_settings/bounce_purge

This endpoint allows you to update your current bounce and purge settings.

The Bounce Perge setting allows you to set a schedule that Twilio SendGrid will use to automatically delete contacts from your soft and hard bounce suppression lists. The schedule is set in full days by assigning the number of days, an integer, to the soft_bounces and/or hard_bounces fields.

A hard bounce occurs when an email message has been returned to the sender because the recipient’s address is invalid. A hard bounce might occur because the domain name doesn’t exist or because the recipient is unknown.

A soft bounce occurs when an email message reaches the recipient’s mail server but is bounced back undelivered before it actually reaches the recipient. A soft bounce might occur because the recipient’s inbox is full.

You can also manage this setting in the Mail Settings section of the Twilio SendGrid App. You can manage your bounces manually using the Bounces API or the Bounces menu in the Twilio SendGrid App.

operationId: SettingsMail_updateBouncePurgeSettings

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema mail_settings_bounce_purge
Property Type Required
enabled boolean optional
hard_bounces integer optional
soft_bounces integer optional

Responses

200
400
401
403
404
500
PATCH /mail_settings/bounce_purge
PATCH /mail_settings/footer

This endpoint allows you to update your current Footer mail settings.

The Footer setting will insert a custom footer at the bottom of your text and HTML email message bodies.

You can insert your HTML or plain text directly using this endpoint, or you can create the footer using the Mail Settings menu in the Twilio SendGrid App.

operationId: SettingsMail_updateFooterMailSettings

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema mail_settings_footer
Property Type Required
enabled boolean optional
html_content string optional
plain_content string optional

Responses

200
400
401
403
404
500
PATCH /mail_settings/footer
PATCH /mail_settings/forward_bounce

This endpoint allows you to update your current bounce forwarding mail settings.

Enabling the Forward Bounce setting allows you to specify an email address to which bounce reports will be forwarded.

You can also configure the Forward Spam mail settings in the Mail Settings section of the Twilio SendGrid App.

operationId: SettingsMail_updateForwardBounceSettings

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema mail_settings_forward_bounce
Property Type Required
email string optional
enabled boolean optional

Responses

200
400
401
403
404
500
PATCH /mail_settings/forward_bounce
PATCH /mail_settings/forward_spam

This endpoint allows you to update your current Forward Spam mail settings.

Enabling the Forward Spam setting allows you to specify email addresses to which spam reports will be forwarded. You can set multiple addresses by passing this endpoint a comma separated list of emails in a single string.

{
  "email": "address1@example.com, address2@exapmle.com",
  "enabled": true
}

The Forward Spam setting may also be used to receive emails sent to abuse@ and postmaster@ role addresses if you have authenticated your domain.

For example, if you authenticated example.com as your root domain and set a custom return path of sub for that domain, you could turn on Forward Spam, and any emails sent to abuse@sub.example.com or postmaster@sub.example.com would be forwarded to the email address you entered in the email field.

You can authenticate your domain using the “Authenticate a domain” endpoint or in the Sender Authentication section of the Twilio SendGrid App. You can also configure the Forward Spam mail settings in the Mail Settings section of the Twilio SendGrid App.

operationId: SettingsMail_updateForwardSpamSettings

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema mail_settings_forward_spam
Property Type Required
email string optional
enabled boolean optional

Responses

200
400
401
403
404
500
PATCH /mail_settings/forward_spam
PATCH /mail_settings/template

This endpoint allows you to update your current legacy email template settings.

This setting refers to our original email templates. We currently support more fully featured Dynamic Transactional Templates.

The legacy email template setting wraps an HTML template around your email content. This can be useful for sending out marketing email and/or other HTML formatted messages. For instructions on using legacy templates, see how to “Create and Edit Legacy Transactional Templates. For help migrating to our current template system, see “Migrating from Legacy Templates”.

operationId: SettingsMail_updateLegacyTemplateSettings

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema SettingsMailUpdateLegacyTemplateSettingsRequest
Property Type Required
enabled boolean optional
html_content string optional

Responses

200
400
401
403
404
500
PATCH /mail_settings/template

Settingspartner 1 endpoints

PATCH /partner_settings/new_relic

This endpoint allows you to update or change your New Relic partner settings.

Our partner settings allow you to integrate your SendGrid account with our partners to increase your SendGrid experience and functionality. For more information about our partners, and how you can begin integrating with them, please visit our Partners documentation.

By integrating with New Relic, you can send your SendGrid email statistics to your New Relic Dashboard. If you enable this setting, your stats will be sent to New Relic every 5 minutes. You will need your New Relic License Key to enable this setting. For more information, please see our SendGrid for New Relic documentation.

operationId: SettingsPartner_updateNewRelicPartnerSettings

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema SettingsPartnerUpdateNewRelicPartnerSettingsRequest
Property Type Required
enabled boolean optional
license_key string optional
enable_subuser_statistics boolean optional

Responses

200
PATCH /partner_settings/new_relic

Settingstracking 4 endpoints

PATCH /tracking_settings/click

This endpoint allows you to enable or disable your current click tracking setting.

Click Tracking overrides all the links and URLs in your emails and points them to either SendGrid’s servers or the domain with which you branded your link. When a customer clicks a link, SendGrid tracks those clicks.

Click tracking helps you understand how users are engaging with your communications. SendGrid can track up to 1000 links per email

operationId: SettingsTracking_updateClickTrackingSetting

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema SettingsTrackingUpdateClickTrackingSettingRequest
Property Type Required
enabled boolean optional

Responses

200
PATCH /tracking_settings/click
PATCH /tracking_settings/google_analytics

This endpoint allows you to update your current setting for Google Analytics.

Google Analytics helps you understand how users got to your site and what they’re doing there. For more information about using Google Analytics, please refer to Google’s URL Builder and their article on “Best Practices for Campaign Building”.

We default the settings to Google’s recommendations. For more information, see Google Analytics Demystified.

operationId: SettingsTracking_updateGoogleAnalyticsSettings

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema google_analytics_settings
Property Type Required
enabled boolean optional
utm_term string optional
utm_medium string optional
utm_source string optional
utm_content string optional
utm_campaign string optional

Responses

200
PATCH /tracking_settings/google_analytics
PATCH /tracking_settings/open

This endpoint allows you to update your current settings for open tracking.

Open Tracking adds an invisible image at the end of the email which can track email opens.

If the email recipient has images enabled on their email client, a request to SendGrid’s server for the invisible image is executed and an open event is logged.

These events are logged in the Statistics portal, Email Activity interface, and are reported by the Event Webhook.

operationId: SettingsTracking_updateOpenTrackingSettings

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema SettingsTrackingUpdateOpenTrackingSettingsRequest
Property Type Required
enabled boolean optional

Responses

200
PATCH /tracking_settings/open
PATCH /tracking_settings/subscription

This endpoint allows you to update your current settings for subscription tracking.

Subscription tracking adds links to the bottom of your emails that allows your recipients to subscribe to, or unsubscribe from, your emails.

operationId: SettingsTracking_updateSubscriptionTrackingSettings

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema subscription_tracking_settings
Property Type Required
url string optional
enabled boolean optional
landing string optional
replace string optional
html_content string optional
plain_content string optional

Responses

200
PATCH /tracking_settings/subscription

Singlesends 1 endpoints

PATCH /marketing/singlesends/{id}

This endpoint allows you to update a Single Send using a Single Send ID.

You only need to pass the fields you want to update. Any blank/missing fields will remain unaltered.

operationId: SingleSends_updateById

Parameters

Name In Required Type Description
id path required string

Request Body

application/json
schema singlesend_request
Property Type Required
name string required
send_at string optional
send_to object optional
all boolean optional
list_ids array optional
segment_ids array optional
categories array optional
email_config object optional
editor string optional
ip_pool string optional
subject string optional
design_id string optional
sender_id integer optional
html_content string optional
plain_content string optional
suppression_group_id integer optional
custom_unsubscribe_url string optional
generate_plain_content boolean optional

Responses

202
400
404
500
PATCH /marketing/singlesends/{id}

Singlesignonsettings 1 endpoints

PATCH /sso/integrations/{id}

This endpoint allows you to modify an exisiting SSO integration.

You can retrieve the IDs for your configurations from the response provided by the “Get All SSO Integrations” endpoint.

operationId: SingleSignOnSettings_updateIntegration

Parameters

Name In Required Type Description
id path required string
si query optional boolean

If this parameter is set to true, the response will include the completed_integration field.

Request Body

application/json
schema create-integration-request
Property Type Required
name string required
enabled boolean required
entity_id string required
signin_url string required
signout_url string required
completed_integration boolean optional

Responses

200
400
401
403
429
500
PATCH /sso/integrations/{id}

Singlesignonteammates 1 endpoints

PATCH /sso/teammates/{username}

This endpoint allows you to modify an existing SSO Teammate.

To turn a teammate into an admin, the request body should contain the is_admin field set to true. Otherwise, set is_admin to false and pass in all the scopes that a teammate should have.

Only the parent user and Teammates with admin permissions can update another Teammate’s permissions. Admin users can only update permissions.

operationId: SingleSignOnTeammates_editTeammate

Parameters

Name In Required Type Description
username path required string

This email address must be the same address assigned to the teammate in your IdP

Request Body

application/json
schema SingleSignOnTeammatesEditTeammateRequest
Property Type Required
scopes array optional
is_admin boolean optional
last_name string optional
first_name string optional

Responses

200
400
401
403
429
500
PATCH /sso/teammates/{username}

Subusersapi 1 endpoints

PATCH /subusers/{subuser_name}

This endpoint allows you to enable or disable a subuser.

operationId: SubusersApi_updateSubuserEnableState

Parameters

Name In Required Type Description
subuser_name path required string

Request Body

application/json
schema SubusersApiUpdateSubuserEnableStateRequest
Property Type Required
disabled boolean optional

Responses

204
400
401
500
PATCH /subusers/{subuser_name}

Suppressionsunsubscribegroups 1 endpoints

PATCH /asm/groups/{group_id}

This endpoint allows you to update or change a suppression group.

operationId: SuppressionsUnsubscribeGroups_updateGroup

Parameters

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

Request Body

application/json
schema suppression-group-request-base
Property Type Required
name string optional
is_default boolean optional
description string optional

Responses

201
PATCH /asm/groups/{group_id}

Teammates 2 endpoints

PATCH /teammates/{username}

This endpoint allows you to update a teammate’s permissions.

To turn a teammate into an admin, the request body should contain an is_admin set to true. Otherwise, set is_admin to false and pass in all the scopes that a teammate should have.

Only the parent user or other admin teammates can update another teammate’s permissions.

Admin users can only update permissions.

operationId: Teammates_updatePermissions

Parameters

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

Request Body

application/json
schema TeammatesUpdatePermissionsRequest
Property Type Required
scopes array required
is_admin boolean required

Responses

200
400
404
PATCH /teammates/{username}
PATCH /scopes/requests/{request_id}/approve

This endpoint allows you to approve an access attempt.

Note: Only teammate admins may approve another teammate’s access request.

operationId: Teammates_approveAccessRequest

Parameters

Name In Required Type Description
request_id path required string

The ID of the request that you want to approve.

Responses

200
401
404
PATCH /scopes/requests/{request_id}/approve

Transactionaltemplates 1 endpoints

PATCH /templates/{template_id}

This endpoint allows you to edit the name of a transactional template.

To edit the template itself, create a new transactional template version.

operationId: TransactionalTemplates_editTemplateName

Parameters

Name In Required Type Description
template_id path required string
on-behalf-of header optional string

Request Body

application/json
schema TransactionalTemplatesEditTemplateNameRequest
Property Type Required
name string optional

Responses

200
PATCH /templates/{template_id}

Transactionaltemplatesversions 1 endpoints

PATCH /templates/{template_id}/versions/{version_id}

This endpoint allows you to edit the content of your template version.

operationId: TransactionalTemplatesVersions_editContent

Parameters

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

Request Body

application/json
schema transactional_template_version_create
Property Type Required
name string required
active integer optional
editor string optional
subject string required
test_data string optional
html_content string optional
plain_content string optional
generate_plain_content boolean optional

Responses

200
PATCH /templates/{template_id}/versions/{version_id}

Usersapi 1 endpoints

PATCH /user/profile

This endpoint allows you to update your current profile details.

Any one or more of the parameters can be updated via the PATCH /user/profile endpoint. You must include at least one when you PATCH.

operationId: UsersApi_updateUserProfile

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema user_profile
Property Type Required
zip string optional
city string optional
phone string optional
state string optional
address string optional
company string optional
country string optional
website string optional
address2 string optional
last_name string optional
first_name string optional

Responses

200
401
PATCH /user/profile

Webhooks 2 endpoints

PATCH /user/webhooks/event/settings

This endpoint allows you to update your current event webhook settings.

If an event type is marked as true, then the event webhook will include information about that event.

SendGrid’s Event Webhook will notify a URL of your choice via HTTP POST with information about events that occur as SendGrid processes your email.

Common uses of this data are to remove unsubscribes, react to spam reports, determine unengaged recipients, identify bounced email addresses, or create advanced analytics of your email program.

operationId: Webhooks_updateEventNotificationSettings

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema event-webhook-update-oauth-request
Property Type Required
url string required
open boolean required
click boolean required
bounce boolean required
dropped boolean required
enabled boolean required
deferred boolean required
delivered boolean required
processed boolean required
spam_report boolean required
unsubscribe boolean required
oauth_client_id string optional
oauth_token_url string optional
group_resubscribe boolean required
group_unsubscribe boolean required
oauth_client_secret string optional

Responses

200
PATCH /user/webhooks/event/settings
PATCH /user/webhooks/event/settings/signed

This endpoint allows you to enable or disable signing of the Event Webhook.

This endpoint takes a single boolean request parameter, enabled. You may either enable or disable signing of the Event Webhook using this endpoint. Once enabled, you can retrieve your public key using the /webhooks/event/settings/signed endpoint.

For more information about cryptographically signing the Event Webhook, see Getting Started with the Event Webhook Security Features.

operationId: Webhooks_enableSignedWebhook

Parameters

Name In Required Type Description
on-behalf-of header optional string

Request Body

application/json
schema WebhooksEnableSignedWebhookRequest
Property Type Required
enabled boolean required

Responses

200
400
401
500
PATCH /user/webhooks/event/settings/signed

Schemas

object AlertsDeleteAlertByIdResponse
{
  "type": "object",
  "properties": {}
}
object 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."
    }
  }
}
object 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"
    }
  }
}
object 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."
    }
  }
}
object 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."
    }
  }
}
object ApiKeysCreateKeyResponse
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "scopes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "api_key": {
      "type": "string"
    },
    "api_key_id": {
      "type": "string"
    }
  }
}
object ApiKeysGetAllResponse
{
  "type": "object",
  "properties": {
    "result": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/api_key_name_id"
      }
    }
  }
}
object ApiKeysGetByKeyIdResponse
{
  "type": "object",
  "properties": {
    "result": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/api_key_name_id_scopes"
      }
    }
  }
}
object ApiKeysUpdateKeyNameRequest
{
  "type": "object",
  "example": {
    "name": "A New Hope"
  },
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The new name of the API Key."
    }
  }
}
object 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"
      }
    }
  }
}
object 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."
    }
  }
}
object BlocksApiDeleteAllBlockedEmailsResponse
{
  "type": "object",
  "properties": {}
}
object BlocksApiDeleteSpecificBlockResponse
{
  "type": "object",
  "properties": {}
}
object 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."
    }
  }
}
object BouncesApiDeleteBouncesResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
array BouncesApiGetAllBouncesResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/bounce_response"
  }
}
array BouncesApiGetByEmailAddressResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/bounce_response"
  }
}
object BouncesApiRemoveBounceResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object 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"
          }
        }
      }
    }
  }
}
object CampaignsApiDeleteCampaignById404Response
{
  "type": "object",
  "example": {},
  "properties": {}
}
object CampaignsApiDeleteCampaignByIdResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object CampaignsApiGetScheduledTimeResponse
{
  "type": "object",
  "title": "View Scheduled Time of a Campaign response",
  "required": [
    "send_at"
  ],
  "properties": {
    "send_at": {
      "type": "integer",
      "format": "int64"
    }
  }
}
object 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"
          }
        }
      }
    }
  }
}
object 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"
          }
        }
      }
    }
  }
}
object 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"
    }
  }
}
object 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."
    }
  }
}
object 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."
    }
  }
}
object CampaignsApiSendCampaignNowResponse
{
  "type": "object",
  "title": "Send a Campaign response",
  "required": [
    "id",
    "status"
  ],
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64"
    },
    "status": {
      "type": "string"
    }
  }
}
object 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."
    }
  }
}
object CampaignsApiSendTestCampaignResponse
{
  "type": "object",
  "title": "Send a Test Campaign request",
  "required": [
    "to"
  ],
  "properties": {
    "to": {
      "type": "string"
    }
  }
}
object CampaignsApiUnscheduleCampaignResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
object CampaignsApiUpdateScheduledTimeRequest
{
  "type": "object",
  "title": "Update a Scheduled Campaign request",
  "example": {
    "send_at": 1489451436
  },
  "required": [
    "send_at"
  ],
  "properties": {
    "send_at": {
      "type": "integer",
      "format": "int64"
    }
  }
}
object 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."
    }
  }
}
object 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."
          }
        }
      }
    }
  }
}
object 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."
    }
  }
}
object 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"
          }
        }
      }
    }
  }
}
array CancelScheduledSendsAllScheduledSendsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user_scheduled_send_status"
  }
}
array CancelScheduledSendsByBatchIdResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/user_scheduled_send_status"
  },
  "title": "Retrieve scheduled send response"
}
object 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."
    }
  }
}
object CancelScheduledSendsRequestResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "errors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "help": {
            "type": "object"
          },
          "field": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        }
      }
    }
  }
}
object 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."
    }
  }
}
object CancelScheduledSendsUpdateStatusResponse
{
  "type": "object",
  "example": {},
  "properties": {}
}
array CategoriesGetEmailStatisticsForResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/category_stats"
  }
}
object 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": ""
}
array CertificatesGetByIdpConfigurationsResponse
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/sso-certificate-body"
  }
}
object 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."
    }
  }
}
object ContactsApiCustomFieldsCreateNewFieldRequest
{
  "type": "object",
  "example": {
    "name": "pet",
    "type": "text"
  },
  "properties": {
    "name": {
      "type": "string"
    },
    "type": {
      "type": "string"
    }
  }
}
object 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"
      }
    }
  }
}
object ContactsApiCustomFieldsGetReservedFieldsResponse
{
  "type": "object",
  "properties": {
    "reserved_fields": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      }
    }
  }
}
array ContactsApiListsAddMultipleRecipientsToListRequest
{
  "type": "array",
  "items": {
    "type": "integer"
  },
  "example": [
    "recipient_id1",
    "recipient_id2"
  ]
}

Versions

Version Endpoints Schemas Ingested Status
1.0.0 334 545 2026-05-11 current
1.0.0 334 545 2026-04-16