SendGrid · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Twilio SendGrid IP Address Management API
16 actions
16 updates
phrasing
extends
openapi/sendgrid-ip-address-management-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for SendGrid's API. It is a proposal applied on top of the contract, not a document SendGrid publishes.
What the actions change
x-apievangelist-phrasing
Targets 16
$.info
$.paths['/v3/send_ips/ips'].get
$.paths['/v3/send_ips/ips'].post
$.paths['/v3/send_ips/ips/{ip}'].get
$.paths['/v3/send_ips/ips/{ip}'].patch
$.paths['/v3/send_ips/ips/{ip}/subusers'].get
$.paths['/v3/send_ips/ips/{ip}/subusers:batchAdd'].post
$.paths['/v3/send_ips/ips/{ip}/subusers:batchDelete'].post
$.paths['/v3/send_ips/pools'].get
$.paths['/v3/send_ips/pools'].post
$.paths['/v3/send_ips/pools/{poolid}'].get
$.paths['/v3/send_ips/pools/{poolid}'].put
$.paths['/v3/send_ips/pools/{poolid}'].delete
$.paths['/v3/send_ips/pools/{poolid}/ips'].get
$.paths['/v3/send_ips/pools/{poolid}/ips:batchAdd'].post
$.paths['/v3/send_ips/pools/{poolid}/ips:batchDelete'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Twilio SendGrid IP Address Management API
version: 1.0.0
extends: openapi/sendgrid-ip-address-management-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-24'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 15
- target: $.paths['/v3/send_ips/ips'].get
update:
x-apievangelist-phrasing:
intent: List the IP addresses on my account
effect: read
questions:
- Which sending IPs are on my account and which pools are they in?
- Can I filter my IP list to only leased or only enabled addresses?
- Is it possible to see IPs added within a certain date range?
instructions:
- text: List every sending IP address on my account.
- text: List my IPs in pool {pool}, {limit} at a time.
slots:
pool: query.pool
limit: query.limit
- text: 'Show IPs in region {region} that are enabled: {is_enabled}.'
slots:
region: query.region
is_enabled: query.is_enabled
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/ips'].post
update:
x-apievangelist-phrasing:
intent: Add a dedicated IP address
effect: write
questions:
- How do I add a new dedicated IP address to my account?
- Can I assign subusers to an IP at the moment I add it?
instructions:
- text: Add a new IP with auto warmup {is_auto_warmup} and parent assignment {is_parent_assigned}.
slots:
is_auto_warmup: requestBody.is_auto_warmup
is_parent_assigned: requestBody.is_parent_assigned
- text: Add an IP in region {region}, auto warmup {is_auto_warmup}, parent assigned {is_parent_assigned}, for subusers {subusers}.
slots:
region: requestBody.region
is_auto_warmup: requestBody.is_auto_warmup
is_parent_assigned: requestBody.is_parent_assigned
subusers: requestBody.subusers
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/ips/{ip}'].get
update:
x-apievangelist-phrasing:
intent: Get details for one IP address
effect: read
questions:
- Is a particular IP leased, warming up automatically, or assigned to the parent?
- When was a specific sending IP added and last modified?
instructions:
- text: Get the details for IP {ip}.
slots:
ip: path.ip
- text: 'Show IP {ip} including its region: {include_region}.'
slots:
ip: path.ip
include_region: query.include_region
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/ips/{ip}'].patch
update:
x-apievangelist-phrasing:
intent: Update an IP address's settings
effect: write
questions:
- Can I turn off automatic warmup for one of my IPs?
- What settings on an IP can I switch, like enabled or parent-assigned?
instructions:
- text: Set auto warmup to {is_auto_warmup} on IP {ip}.
slots:
is_auto_warmup: requestBody.is_auto_warmup
ip: path.ip
- text: 'Disable or enable IP {ip}: set enabled to {is_enabled}.'
slots:
ip: path.ip
is_enabled: requestBody.is_enabled
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/ips/{ip}/subusers'].get
update:
x-apievangelist-phrasing:
intent: List subusers assigned to an IP
effect: read
questions:
- Which subusers are allowed to send from a given IP?
- Can I page through the subuser IDs on an IP with a limit?
instructions:
- text: List the subusers assigned to IP {ip}.
slots:
ip: path.ip
- text: Show up to {limit} subuser IDs on IP {ip}.
slots:
limit: query.limit
ip: path.ip
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/ips/{ip}/subusers:batchAdd'].post
update:
x-apievangelist-phrasing:
intent: Assign subusers to an IP in bulk
effect: write
questions:
- How do I give several subusers access to one IP in a single request?
- What happens if one subuser in the batch can't be assigned to the IP?
instructions:
- text: Assign subusers {subusers} to IP {ip}.
slots:
subusers: requestBody.subusers
ip: path.ip
- text: 'Batch add these subusers to IP {ip}: {subusers}.'
slots:
ip: path.ip
subusers: requestBody.subusers
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/ips/{ip}/subusers:batchDelete'].post
update:
x-apievangelist-phrasing:
intent: Unassign subusers from an IP in bulk
effect: destructive
questions:
- Can I remove a batch of subusers from an IP at once?
- Which call takes several subusers off a dedicated IP?
instructions:
- text: Remove subusers {subusers} from IP {ip}.
slots:
subusers: requestBody.subusers
ip: path.ip
- text: 'Unassign this batch of subusers from IP {ip}: {subusers}.'
slots:
ip: path.ip
subusers: requestBody.subusers
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/pools'].get
update:
x-apievangelist-phrasing:
intent: List IP pools with a sample of their IPs
effect: read
questions:
- What IP pools do I have and which IPs are in each?
- Can I find which pools contain a specific IP?
instructions:
- text: List all my IP pools.
- text: Show the IP pools that include IP {ip}.
slots:
ip: query.ip
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/pools'].post
update:
x-apievangelist-phrasing:
intent: Create an IP pool
effect: write
questions:
- How do I create a named IP pool and put IPs in it?
- Does creating a pool fail if one of the IP assignments fails?
instructions:
- text: Create an IP pool named {name}.
slots:
name: requestBody.name
- text: Create IP pool {name} containing IPs {ips}.
slots:
name: requestBody.name
ips: requestBody.ips
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/pools/{poolid}'].get
update:
x-apievangelist-phrasing:
intent: Get details for an IP pool
effect: read
questions:
- How many IPs belong to a particular IP pool?
- What does SendGrid tell me about a single pool, like its name and sample IPs?
instructions:
- text: Get the details of IP pool {poolid}.
slots:
poolid: path.poolid
- text: 'Show pool {poolid} with regions included: {include_region}.'
slots:
poolid: path.poolid
include_region: query.include_region
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/pools/{poolid}'].put
update:
x-apievangelist-phrasing:
intent: Rename an IP pool
effect: write
questions:
- Can I rename an existing IP pool?
- Are there naming rules for an IP pool, like no leading dot or space?
instructions:
- text: Rename IP pool {poolid} to {name}.
slots:
poolid: path.poolid
name: requestBody.name
- text: Change pool {poolid}'s name to {name}.
slots:
poolid: path.poolid
name: requestBody.name
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/pools/{poolid}'].delete
update:
x-apievangelist-phrasing:
intent: Delete an IP pool
effect: destructive
questions:
- If I delete an IP pool, do its IP addresses stay on my account?
- How do I get rid of an IP pool entirely?
instructions:
- text: Delete IP pool {poolid}.
slots:
poolid: path.poolid
- text: Remove pool {poolid} and unassign all of its IPs.
slots:
poolid: path.poolid
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/pools/{poolid}/ips'].get
update:
x-apievangelist-phrasing:
intent: List all IPs in an IP pool
effect: read
questions:
- Which IP addresses are assigned to a given pool, beyond the sample?
- Can I page through every IP in one pool?
instructions:
- text: List every IP assigned to pool {poolid}.
slots:
poolid: path.poolid
- text: Show {limit} IPs from pool {poolid}.
slots:
limit: query.limit
poolid: path.poolid
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/pools/{poolid}/ips:batchAdd'].post
update:
x-apievangelist-phrasing:
intent: Add IPs to an IP pool in bulk
effect: write
questions:
- Can I add several IPs to an existing pool in one request?
- What happens if one IP in a batch can't be added to the pool?
instructions:
- text: Add IPs {ips} to pool {poolid}.
slots:
ips: requestBody.ips
poolid: path.poolid
- text: 'Batch assign these IPs to IP pool {poolid}: {ips}.'
slots:
poolid: path.poolid
ips: requestBody.ips
method: generated
generated: '2026-09-24'
- target: $.paths['/v3/send_ips/pools/{poolid}/ips:batchDelete'].post
update:
x-apievangelist-phrasing:
intent: Remove IPs from an IP pool in bulk
effect: destructive
questions:
- Does removing IPs from a pool also remove them from my account?
- How do I take a batch of addresses out of one IP pool?
instructions:
- text: Remove IPs {ips} from pool {poolid}.
slots:
ips: requestBody.ips
poolid: path.poolid
- text: 'Unassign this batch of IPs from IP pool {poolid}: {ips}.'
slots:
poolid: path.poolid
ips: requestBody.ips
method: generated
generated: '2026-09-24'