Netlify · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Netlify's API documentation Site API
11 actions
11 updates
phrasing
extends
openapi/netlify-site-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Netlify's API. It is a proposal applied on top of the contract, not a document Netlify publishes.
What the actions change
x-apievangelist-phrasing
Targets 11
$.info
$.paths['/sites'].get
$.paths['/sites'].post
$.paths['/sites/{site_id}'].get
$.paths['/sites/{site_id}'].delete
$.paths['/sites/{site_id}'].patch
$.paths['/sites/{site_id}/unlink_repo'].put
$.paths['/sites/{site_id}/enable'].put
$.paths['/sites/{site_id}/disable'].put
$.paths['/{account_slug}/sites'].get
$.paths['/{account_slug}/sites'].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 Netlify's API documentation Site API
version: 1.0.0
extends: openapi/netlify-site-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 10
- target: $.paths['/sites'].get
update:
x-apievangelist-phrasing:
intent: List my sites
effect: read
questions:
- What sites do I have access to?
- Can I search my sites by name?
- How do I page through a long list of sites?
instructions:
- text: List all my sites.
- text: Find my sites whose name matches {name}.
slots:
name: query.name
- text: List sites using filter {filter}.
slots:
filter: query.filter
method: generated
generated: '2026-09-26'
- target: $.paths['/sites'].post
update:
x-apievangelist-phrasing:
intent: Create a new site
effect: write
questions:
- How do I create a new Netlify site through the API?
- Can I set a custom domain when I create a site?
instructions:
- text: Create a new site named {name}.
slots:
name: requestBody.name
- text: Create site {name} with custom domain {domain}.
slots:
name: requestBody.name
domain: requestBody.custom_domain
method: generated
generated: '2026-09-26'
- target: $.paths['/sites/{site_id}'].get
update:
x-apievangelist-phrasing:
intent: Get a site's details
effect: read
questions:
- Can I see a site's settings, URL and published deploy?
- What feature flags are enabled for my site?
instructions:
- text: Get details for site {site}.
slots:
site: path.site_id
- text: Show site {site} including feature flags {flags}.
slots:
site: path.site_id
flags: query.feature_flags
method: generated
generated: '2026-09-26'
- target: $.paths['/sites/{site_id}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a site
effect: destructive
questions:
- How do I permanently delete a site?
- Is deleting a site reversible?
instructions:
- text: Delete site {site}.
slots:
site: path.site_id
- text: Permanently remove site {site} from my account.
slots:
site: path.site_id
method: generated
generated: '2026-09-26'
- target: $.paths['/sites/{site_id}'].patch
update:
x-apievangelist-phrasing:
intent: Update a site's settings
effect: write
questions:
- Can I rename a site or change its custom domain?
- How do I force HTTPS on an existing site?
- Is it possible to password-protect my site?
instructions:
- text: Rename site {site} to {name}.
slots:
site: path.site_id
name: requestBody.name
- text: Set custom domain {domain} on site {site}.
slots:
domain: requestBody.custom_domain
site: path.site_id
- text: Force HTTPS on site {site}.
slots:
site: path.site_id
method: generated
generated: '2026-09-26'
- target: $.paths['/sites/{site_id}/unlink_repo'].put
update:
x-apievangelist-phrasing:
intent: Unlink a site's Git repository
effect: destructive
questions:
- How do I disconnect my site from its Git repo?
- What gets deleted when I unlink a repository from a site?
instructions:
- text: Unlink the repository from site {site}.
slots:
site: path.site_id
- text: Disconnect site {site} from Git, removing its deploy keys and build hooks.
slots:
site: path.site_id
method: generated
generated: '2026-09-26'
- target: $.paths['/sites/{site_id}/enable'].put
update:
x-apievangelist-phrasing:
intent: Re-enable a disabled site
effect: write
questions:
- Can I turn a site back on after I disabled it?
- Why can't I re-enable a site that was disabled for exceeding usage?
instructions:
- text: Re-enable site {site}.
slots:
site: path.site_id
- text: Turn site {site} back on so it serves content again.
slots:
site: path.site_id
method: generated
generated: '2026-09-26'
- target: $.paths['/sites/{site_id}/disable'].put
update:
x-apievangelist-phrasing:
intent: Disable a site
effect: write
questions:
- How do I take a site offline temporarily without deleting it?
- Do I need to give a reason when disabling a site?
instructions:
- text: Disable site {site} because {reason}.
slots:
site: path.site_id
reason: query.reason
- text: Take site {site} offline with reason {reason}.
slots:
site: path.site_id
reason: query.reason
method: generated
generated: '2026-09-26'
- target: $.paths['/{account_slug}/sites'].get
update:
x-apievangelist-phrasing:
intent: List a team's sites
effect: read
questions:
- Which sites belong to a particular team?
- Can I search a team's sites by name?
instructions:
- text: List all sites in team {team}.
slots:
team: path.account_slug
- text: Find sites named {name} in team {team}.
slots:
name: query.name
team: path.account_slug
method: generated
generated: '2026-09-26'
- target: $.paths['/{account_slug}/sites'].post
update:
x-apievangelist-phrasing:
intent: Create a site in a team
effect: write
questions:
- How do I create a site under a specific team rather than my personal account?
- Can I create a team site with a custom domain?
instructions:
- text: Create site {name} in team {team}.
slots:
name: requestBody.name
team: path.account_slug
- text: Create a site in team {team} with custom domain {domain}.
slots:
team: path.account_slug
domain: requestBody.custom_domain
method: generated
generated: '2026-09-26'