Development — entry 061 of 100

Netlify

Verified Jul 2026

The Netlify API manages sites, deploys, builds, DNS, and forms through a single REST host (`api.netlify.com`) using OAuth2 or personal access tokens, with a full OpenAPI/Swagger reference published alongside the guides. Netlify moved to credit-based pricing in September 2025: a free tier covers 300 monthly credits, with paid Personal, Pro, and Enterprise plans scaling credits and features above that.

hostingdeploymentjamstackdevops
AuthenticationOAuthRequires an OAuth flow; expect app registration.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreemiumA usable free tier exists, with paid plans for more volume.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score74out of 100
Authentication8/25OAuth flow required
Pricing17/20Freemium tier available
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 74 on greatapis.com
<a href="https://greatapis.com/api/netlify/"><img src="https://greatapis.com/badge/netlify.svg" alt="Scored 74 on greatapis.com"></a>

Auth quickstart

  1. Register an app / run the OAuth flow to obtain a bearer token.
  2. Send it as an Authorization headerAuthorization: Bearer <token>
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://api.netlify.com/api/v1
Auth
netlifyAuth
ticket2
POST/oauth/tickets
Parameters
NameInRequiredType
client_idqueryyesstring
Request body

application/json

Responses
StatusDescriptionSchema
201Created
401OAuth application not found
422Validation error
defaulterror
GET/oauth/tickets/{ticket_id}
Parameters
NameInRequiredType
ticket_idpathyesstring
Responses
StatusDescriptionSchema
200ok
defaulterror
accessToken1
POST/oauth/tickets/{ticket_id}/exchange
Parameters
NameInRequiredType
ticket_idpathyesstring
Responses
StatusDescriptionSchema
201ok
defaulterror
user1
GET/user
Responses
StatusDescriptionSchema
200OK
defaulterror
accountMembership5
GET/accounts
Parameters
NameInRequiredType
minimalquerynoboolean
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/accounts
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Created
defaulterror
GET/accounts/{account_id}
Parameters
NameInRequiredType
account_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/accounts/{account_id}
Parameters
NameInRequiredType
account_idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200OK
defaulterror
DELETE/accounts/{account_id}
Parameters
NameInRequiredType
account_idpathyesstring
Responses
StatusDescriptionSchema
204Not Content
defaulterror
member5
GET/{account_slug}/members
Parameters
NameInRequiredType
account_slugpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/{account_slug}/members
Parameters
NameInRequiredType
account_slugpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
defaulterror
GET/{account_slug}/members/{member_id}
Parameters
NameInRequiredType
account_slugpathyesstring
member_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/{account_slug}/members/{member_id}
Parameters
NameInRequiredType
account_slugpathyesstring
member_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
defaulterror
DELETE/{account_slug}/members/{member_id}
Parameters
NameInRequiredType
account_slugpathyesstring
member_idpathyesstring
Responses
StatusDescriptionSchema
204Not Content
defaulterror
accountType1
GET/accounts/types
Responses
StatusDescriptionSchema
200OK
defaulterror
paymentMethod1
GET/billing/payment_methods
Responses
StatusDescriptionSchema
200OK
defaulterror
auditLog1
GET/accounts/{account_id}/audit
Parameters
NameInRequiredType
account_idpathyesstring
queryquerynostring
log_typequerynostring
pagequerynointeger
per_pagequerynointeger
Responses
StatusDescriptionSchema
200OK
defaulterror
site10
GET/sites
Parameters
NameInRequiredType
namequerynostring
filterquerynostring
pagequerynointeger
per_pagequerynointeger
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/sites
Parameters
NameInRequiredType
configure_dnsquerynoboolean
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Created
defaulterror
GET/sites/{site_id}
Parameters
NameInRequiredType
site_idpathyesstring
feature_flagsquerynostring
Responses
StatusDescriptionSchema
200OK
defaulterror
PATCH/sites/{site_id}
Parameters
NameInRequiredType
site_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
defaulterror
DELETE/sites/{site_id}
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
204Deleted
defaulterror
PUT/sites/{site_id}/disable
Parameters
NameInRequiredType
site_idpathyesstring
reasonqueryyesstring
Responses
StatusDescriptionSchema
204No content
defaulterror
PUT/sites/{site_id}/enable
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
204No content
422Cannot enable this site
defaulterror
PUT/sites/{site_id}/unlink_repo
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
404Site not found
GET/{account_slug}/sites
Parameters
NameInRequiredType
namequerynostring
account_slugpathyesstring
pagequerynointeger
per_pagequerynointeger
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/{account_slug}/sites
Parameters
NameInRequiredType
configure_dnsquerynoboolean
account_slugpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
201Created
defaulterror
environmentVariables8
GET/accounts/{account_id}/env
Parameters
NameInRequiredType
account_idpathyesstring
context_namequerynostring
scopequerynostring
site_idquerynostring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/accounts/{account_id}/env
Parameters
NameInRequiredType
account_idpathyesstring
site_idquerynostring
Request body

application/json

Responses
StatusDescriptionSchema
201OK
defaulterror
GET/accounts/{account_id}/env/{key}
Parameters
NameInRequiredType
account_idpathyesstring
keypathyesstring
site_idquerynostring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/accounts/{account_id}/env/{key}
Parameters
NameInRequiredType
account_idpathyesstring
keypathyesstring
site_idquerynostring
Request body

application/json

Responses
StatusDescriptionSchema
200OK
defaulterror
PATCH/accounts/{account_id}/env/{key}
Parameters
NameInRequiredType
account_idpathyesstring
keypathyesstring
site_idquerynostring
Request body

application/json

Responses
StatusDescriptionSchema
201Created (success)
defaulterror
DELETE/accounts/{account_id}/env/{key}
Parameters
NameInRequiredType
account_idpathyesstring
keypathyesstring
site_idquerynostring
Responses
StatusDescriptionSchema
204No Content (success)
defaulterror
DELETE/accounts/{account_id}/env/{key}/value/{id}
Parameters
NameInRequiredType
account_idpathyesstring
idpathyesstring
keypathyesstring
site_idquerynostring
Responses
StatusDescriptionSchema
204No Content (success)
defaulterror
GET/api/v1/sites/{site_id}/env
Parameters
NameInRequiredType
context_namequerynostring
scopequerynostring
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
file3
PUT/deploys/{deploy_id}/files/{path}
Parameters
NameInRequiredType
deploy_idpathyesstring
pathpathyesstring
sizequerynointeger
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
defaulterror
GET/sites/{site_id}/files
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
GET/sites/{site_id}/files/{file_path}
Parameters
NameInRequiredType
site_idpathyesstring
file_pathpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
metadata2
GET/sites/{site_id}/metadata
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/sites/{site_id}/metadata
Parameters
NameInRequiredType
site_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
204No content
defaulterror
snippet5
GET/sites/{site_id}/snippets
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/sites/{site_id}/snippets
Parameters
NameInRequiredType
site_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
201OK
defaulterror
GET/sites/{site_id}/snippets/{snippet_id}
Parameters
NameInRequiredType
site_idpathyesstring
snippet_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/sites/{site_id}/snippets/{snippet_id}
Parameters
NameInRequiredType
site_idpathyesstring
snippet_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
204No content
defaulterror
DELETE/sites/{site_id}/snippets/{snippet_id}
Parameters
NameInRequiredType
site_idpathyesstring
snippet_idpathyesstring
Responses
StatusDescriptionSchema
204No content
defaulterror
purge1
POST/purge
Request body

application/json (required)

Responses
StatusDescriptionSchema
202OK
400Invalid request parameters
404Site not found
dnsZone11
GET/dns_zones
Parameters
NameInRequiredType
account_slugquerynostring
Responses
StatusDescriptionSchema
200get all DNS zones the user has access to
defaulterror
POST/dns_zones
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Created
defaulterror
GET/dns_zones/{zone_id}
Parameters
NameInRequiredType
zone_idpathyesstring
Responses
StatusDescriptionSchema
200get a single DNS zone
defaulterror
DELETE/dns_zones/{zone_id}
Parameters
NameInRequiredType
zone_idpathyesstring
Responses
StatusDescriptionSchema
204delete a single DNS zone
defaulterror
GET/dns_zones/{zone_id}/dns_records
Parameters
NameInRequiredType
zone_idpathyesstring
Responses
StatusDescriptionSchema
200get all DNS records for a single DNS zone
defaulterror
POST/dns_zones/{zone_id}/dns_records
Parameters
NameInRequiredType
zone_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Created
defaulterror
GET/dns_zones/{zone_id}/dns_records/{dns_record_id}
Parameters
NameInRequiredType
zone_idpathyesstring
dns_record_idpathyesstring
Responses
StatusDescriptionSchema
200get a single DNS record
defaulterror
DELETE/dns_zones/{zone_id}/dns_records/{dns_record_id}
Parameters
NameInRequiredType
zone_idpathyesstring
dns_record_idpathyesstring
Responses
StatusDescriptionSchema
204record deleted
defaulterror
PUT/dns_zones/{zone_id}/transfer
Parameters
NameInRequiredType
zone_idpathyesstring
account_idqueryyesstring
transfer_account_idqueryyesstring
transfer_user_idqueryyesstring
Responses
StatusDescriptionSchema
200transfer a DNS zone to another account
defaulterror
GET/sites/{site_id}/dns
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/sites/{site_id}/dns
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
sniCertificate3
GET/sites/{site_id}/ssl
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/sites/{site_id}/ssl
Parameters
NameInRequiredType
site_idpathyesstring
certificatequerynostring
keyquerynostring
ca_certificatesquerynostring
Responses
StatusDescriptionSchema
200OK
422Unprocessable Entity. Returns errors such as: "certificate parameter is required when updating an existing certificate" (when updating without params), "No custom domain configured", or "bad dns for custom domain"
defaulterror
GET/sites/{site_id}/ssl/certificates
Parameters
NameInRequiredType
site_idpathyesstring
domainqueryyesstring
Responses
StatusDescriptionSchema
200Array of SNI Certificates
404Not Found
422Unprocessable Entity
deploy13
GET/deploys/{deploy_id}
Parameters
NameInRequiredType
deploy_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
DELETE/deploys/{deploy_id}
Parameters
NameInRequiredType
deploy_idpathyesstring
Responses
StatusDescriptionSchema
204No content
defaulterror
POST/deploys/{deploy_id}/cancel
Parameters
NameInRequiredType
deploy_idpathyesstring
Responses
StatusDescriptionSchema
201Cancelled
defaulterror
POST/deploys/{deploy_id}/lock
Parameters
NameInRequiredType
deploy_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/deploys/{deploy_id}/unlock
Parameters
NameInRequiredType
deploy_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PATCH/deploys/{deploy_id}/validations_report
Parameters
NameInRequiredType
deploy_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
GET/sites/{site_id}/deploys
Parameters
NameInRequiredType
site_idpathyesstring
deploy-previewsquerynoboolean
productionquerynoboolean
statequerynostring
branchquerynostring
latest-publishedquerynoboolean
pagequerynointeger
per_pagequerynointeger
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/sites/{site_id}/deploys
Parameters
NameInRequiredType
site_idpathyesstring
deploy-previewsquerynoboolean
productionquerynoboolean
statequerynostring
branchquerynostring
latest-publishedquerynoboolean
titlequerynostring
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
defaulterror
GET/sites/{site_id}/deploys/{deploy_id}
Parameters
NameInRequiredType
site_idpathyesstring
deploy_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/sites/{site_id}/deploys/{deploy_id}
Parameters
NameInRequiredType
site_idpathyesstring
deploy_idpathyesstring
commit_refquerynostring
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
defaulterror
DELETE/sites/{site_id}/deploys/{deploy_id}
Parameters
NameInRequiredType
deploy_idpathyesstring
site_idpathyesstring
Responses
StatusDescriptionSchema
204No content
defaulterror
POST/sites/{site_id}/deploys/{deploy_id}/restore
Parameters
NameInRequiredType
site_idpathyesstring
deploy_idpathyesstring
Responses
StatusDescriptionSchema
201Created
defaulterror
PUT/sites/{site_id}/rollback
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
204No content
defaulterror
deployedBranch1
GET/sites/{site_id}/deployed-branches
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
deployKey4
GET/deploy_keys
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/deploy_keys
Responses
StatusDescriptionSchema
201Created
defaulterror
GET/deploy_keys/{key_id}
Parameters
NameInRequiredType
key_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
DELETE/deploy_keys/{key_id}
Parameters
NameInRequiredType
key_idpathyesstring
Responses
StatusDescriptionSchema
204Not Content
defaulterror
build5
GET/builds/{build_id}
Parameters
NameInRequiredType
build_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/builds/{build_id}/start
Parameters
NameInRequiredType
build_idpathyesstring
buildbot_versionquerynostring
build_versionquerynostring
task_idquerynostring
Responses
StatusDescriptionSchema
204No content
defaulterror
GET/sites/{site_id}/builds
Parameters
NameInRequiredType
site_idpathyesstring
pagequerynointeger
per_pagequerynointeger
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/sites/{site_id}/builds
Parameters
NameInRequiredType
site_idpathyesstring
branchquerynostring
clear_cachequerynoboolean
imagequerynostring
template_idquerynostring
titlequerynostring
Responses
StatusDescriptionSchema
200OK
400Bad Request
404Not Found
422Unprocessable Entity
defaulterror
GET/{account_id}/builds/status
Parameters
NameInRequiredType
account_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
buildLogMsg1
POST/builds/{build_id}/log
Parameters
NameInRequiredType
build_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
204No content
defaulterror
hook6
GET/hooks
Parameters
NameInRequiredType
site_idqueryyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/hooks
Parameters
NameInRequiredType
site_idqueryyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
201OK
defaulterror
GET/hooks/{hook_id}
Parameters
NameInRequiredType
hook_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/hooks/{hook_id}
Parameters
NameInRequiredType
hook_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
defaulterror
DELETE/hooks/{hook_id}
Parameters
NameInRequiredType
hook_idpathyesstring
Responses
StatusDescriptionSchema
204No content
POST/hooks/{hook_id}/enable
Parameters
NameInRequiredType
hook_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
hookType1
GET/hooks/types
Responses
StatusDescriptionSchema
200OK
defaulterror
buildHook5
GET/sites/{site_id}/build_hooks
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/sites/{site_id}/build_hooks
Parameters
NameInRequiredType
site_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Created
defaulterror
GET/sites/{site_id}/build_hooks/{id}
Parameters
NameInRequiredType
site_idpathyesstring
idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/sites/{site_id}/build_hooks/{id}
Parameters
NameInRequiredType
site_idpathyesstring
idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
204No content
defaulterror
DELETE/sites/{site_id}/build_hooks/{id}
Parameters
NameInRequiredType
site_idpathyesstring
idpathyesstring
Responses
StatusDescriptionSchema
204No content
defaulterror
service3
GET/services/
Parameters
NameInRequiredType
searchquerynostring
Responses
StatusDescriptionSchema
200services
defaulterror
GET/services/{addonName}
Parameters
NameInRequiredType
addonNamepathyesstring
Responses
StatusDescriptionSchema
200services
defaulterror
GET/services/{addonName}/manifest
Parameters
NameInRequiredType
addonNamepathyesstring
Responses
StatusDescriptionSchema
201retrieving from provider
defaulterror
serviceInstance5
GET/sites/{site_id}/service-instances
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/sites/{site_id}/services/{addon}/instances
Parameters
NameInRequiredType
site_idpathyesstring
addonpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Created
defaulterror
GET/sites/{site_id}/services/{addon}/instances/{instance_id}
Parameters
NameInRequiredType
site_idpathyesstring
addonpathyesstring
instance_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/sites/{site_id}/services/{addon}/instances/{instance_id}
Parameters
NameInRequiredType
site_idpathyesstring
addonpathyesstring
instance_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
204No Content
defaulterror
DELETE/sites/{site_id}/services/{addon}/instances/{instance_id}
Parameters
NameInRequiredType
site_idpathyesstring
addonpathyesstring
instance_idpathyesstring
Responses
StatusDescriptionSchema
204Deleted
defaulterror
function2
PUT/deploys/{deploy_id}/functions/{name}
Parameters
NameInRequiredType
deploy_idpathyesstring
namepathyesstring
runtimequerynostring
invocation_modequerynostring
timeoutquerynointeger
sizequerynointeger
X-Nf-Retry-Countheadernointeger
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
defaulterror
GET/sites/{site_id}/functions
Parameters
NameInRequiredType
site_idpathyesstring
filterquerynostring
Responses
StatusDescriptionSchema
200OK
defaulterror
form2
GET/sites/{site_id}/forms
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
DELETE/sites/{site_id}/forms/{form_id}
Parameters
NameInRequiredType
site_idpathyesstring
form_idpathyesstring
Responses
StatusDescriptionSchema
204Deleted
defaulterror
submission4
GET/forms/{form_id}/submissions
Parameters
NameInRequiredType
form_idpathyesstring
pagequerynointeger
per_pagequerynointeger
Responses
StatusDescriptionSchema
200OK
defaulterror
GET/sites/{site_id}/submissions
Parameters
NameInRequiredType
site_idpathyesstring
pagequerynointeger
per_pagequerynointeger
Responses
StatusDescriptionSchema
200OK
defaulterror
GET/submissions/{submission_id}
Parameters
NameInRequiredType
submission_idpathyesstring
queryquerynostring
pagequerynointeger
per_pagequerynointeger
Responses
StatusDescriptionSchema
200OK
defaulterror
DELETE/submissions/{submission_id}
Parameters
NameInRequiredType
submission_idpathyesstring
Responses
StatusDescriptionSchema
204Deleted
defaulterror
splitTest6
GET/sites/{site_id}/traffic_splits
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200split_tests
defaulterror
POST/sites/{site_id}/traffic_splits
Parameters
NameInRequiredType
site_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Created
defaulterror
GET/sites/{site_id}/traffic_splits/{split_test_id}
Parameters
NameInRequiredType
site_idpathyesstring
split_test_idpathyesstring
Responses
StatusDescriptionSchema
200split_test
defaulterror
PUT/sites/{site_id}/traffic_splits/{split_test_id}
Parameters
NameInRequiredType
site_idpathyesstring
split_test_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Created
defaulterror
POST/sites/{site_id}/traffic_splits/{split_test_id}/publish
Parameters
NameInRequiredType
site_idpathyesstring
split_test_idpathyesstring
Responses
StatusDescriptionSchema
204enable
defaulterror
POST/sites/{site_id}/traffic_splits/{split_test_id}/unpublish
Parameters
NameInRequiredType
site_idpathyesstring
split_test_idpathyesstring
Responses
StatusDescriptionSchema
204disabled
defaulterror
asset5
GET/sites/{site_id}/assets
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/sites/{site_id}/assets
Parameters
NameInRequiredType
site_idpathyesstring
namequeryyesstring
sizequeryyesinteger
content_typequeryyesstring
visibilityquerynostring
Responses
StatusDescriptionSchema
201Created
defaulterror
GET/sites/{site_id}/assets/{asset_id}
Parameters
NameInRequiredType
site_idpathyesstring
asset_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/sites/{site_id}/assets/{asset_id}
Parameters
NameInRequiredType
site_idpathyesstring
asset_idpathyesstring
statequeryyesstring
Responses
StatusDescriptionSchema
200Updated
defaulterror
DELETE/sites/{site_id}/assets/{asset_id}
Parameters
NameInRequiredType
site_idpathyesstring
asset_idpathyesstring
Responses
StatusDescriptionSchema
204Deleted
defaulterror
assetPublicSignature1
GET/sites/{site_id}/assets/{asset_id}/public_signature
Parameters
NameInRequiredType
site_idpathyesstring
asset_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
devServer6
GET/sites/{site_id}/dev_servers
Parameters
NameInRequiredType
site_idpathyesstring
pagequerynointeger
per_pagequerynointeger
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/sites/{site_id}/dev_servers
Parameters
NameInRequiredType
site_idpathyesstring
branchquerynostring
Responses
StatusDescriptionSchema
200OK
defaulterror
DELETE/sites/{site_id}/dev_servers
Parameters
NameInRequiredType
site_idpathyesstring
branchquerynostring
Responses
StatusDescriptionSchema
202OK
defaulterror
GET/sites/{site_id}/dev_servers/{dev_server_id}
Parameters
NameInRequiredType
site_idpathyesstring
dev_server_idpathyesstring
Responses
StatusDescriptionSchema
200OK
POST/sites/{site_id}/dev_servers/{dev_server_id}/activity
Parameters
NameInRequiredType
site_idpathyesstring
dev_server_idpathyesstring
Responses
StatusDescriptionSchema
200OK
POST/sites/{site_id}/dev_servers/{dev_server_id}/state
Parameters
NameInRequiredType
site_idpathyesstring
dev_server_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
409Conflict
devServerHook5
GET/sites/{site_id}/dev_server_hooks
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/sites/{site_id}/dev_server_hooks
Parameters
NameInRequiredType
site_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Created
defaulterror
GET/sites/{site_id}/dev_server_hooks/{id}
Parameters
NameInRequiredType
site_idpathyesstring
idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/sites/{site_id}/dev_server_hooks/{id}
Parameters
NameInRequiredType
site_idpathyesstring
idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
204No content
defaulterror
DELETE/sites/{site_id}/dev_server_hooks/{id}
Parameters
NameInRequiredType
site_idpathyesstring
idpathyesstring
Responses
StatusDescriptionSchema
204No content
defaulterror
database19
GET/sites/{site_id}/database
Parameters
NameInRequiredType
site_idpathyesstring
rolequerynostring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/sites/{site_id}/database
Parameters
NameInRequiredType
site_idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200Database already exists
201Created
defaulterror
DELETE/sites/{site_id}/database
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
204Deleted
defaulterror
POST/sites/{site_id}/database/branch
Parameters
NameInRequiredType
site_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
200Branch already exists
201Created
defaulterror
GET/sites/{site_id}/database/branch/{branch_id}
Parameters
NameInRequiredType
site_idpathyesstring
branch_idpathyesstring
rolequerynostring
Responses
StatusDescriptionSchema
200OK
404Branch not found
defaulterror
DELETE/sites/{site_id}/database/branch/{branch_id}
Parameters
NameInRequiredType
site_idpathyesstring
branch_idpathyesstring
Responses
StatusDescriptionSchema
204Deleted
defaulterror
PUT/sites/{site_id}/database/branch/{branch_id}/compute/settings
Parameters
NameInRequiredType
site_idpathyesstring
branch_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
403Compute customization requires a Pro or higher plan
defaulterror
POST/sites/{site_id}/database/branch/{branch_id}/reset
Parameters
NameInRequiredType
site_idpathyesstring
branch_idpathyesstring
forcequerynoboolean
rolequerynostring
Request body

application/json

Responses
StatusDescriptionSchema
200OK
400Invalid request — for example, the target is the production branch or the source branch is the same as the target.
404Database or branch not found
defaulterror
GET/sites/{site_id}/database/branches
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
GET/sites/{site_id}/database/compute/settings
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
403Compute customization requires a Pro or higher plan
defaulterror
PUT/sites/{site_id}/database/compute/settings
Parameters
NameInRequiredType
site_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
403Compute customization requires a Pro or higher plan
defaulterror
DELETE/sites/{site_id}/database/compute/settings
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
204Cleared
403Compute customization requires a Pro or higher plan
defaulterror
GET/sites/{site_id}/database/migrations
Parameters
NameInRequiredType
site_idpathyesstring
branchquerynostring
Responses
StatusDescriptionSchema
200OK
404Database or branch not found
423Database is disabled
defaulterror
POST/sites/{site_id}/database/migrations/{deploy_id}
Parameters
NameInRequiredType
site_idpathyesstring
deploy_idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200OK
409Migration conflict - migration modified or removed after being applied
422Migration validation failed
defaulterror
GET/sites/{site_id}/database/migrations/{name}
Parameters
NameInRequiredType
site_idpathyesstring
namepathyesstring
branchquerynostring
Responses
StatusDescriptionSchema
200OK
404Migration, database, or branch not found
423Database is disabled
defaulterror
POST/sites/{site_id}/database/snapshot
Parameters
NameInRequiredType
site_idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
201Created
defaulterror
DELETE/sites/{site_id}/database/snapshot/{snapshot_id}
Parameters
NameInRequiredType
site_idpathyesstring
snapshot_idpathyesstring
Responses
StatusDescriptionSchema
204Deleted
defaulterror
POST/sites/{site_id}/database/snapshot/{snapshot_id}/restore
Parameters
NameInRequiredType
site_idpathyesstring
snapshot_idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200OK
defaulterror
GET/sites/{site_id}/database/snapshots
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
agentRunner9
GET/agent_runners
Parameters
NameInRequiredType
account_idqueryyesstring
site_idqueryyesstring
pagequerynointeger
per_pagequerynointeger
statequerynostring
titlequerynostring
branchquerynostring
result_branchquerynostring
fromquerynointeger
toquerynointeger
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/agent_runners
Parameters
NameInRequiredType
site_idqueryyesstring
deploy_idquerynostring
branchquerynostring
promptquerynostring
agentquerynostring
modelquerynostring
parent_agent_runner_idquerynostring
dev_server_imagequerynostring
file_keysquerynoarray
Responses
StatusDescriptionSchema
200OK
404Not Found
422Unprocessable Entity
defaulterror
POST/agent_runners/upload_url
Parameters
NameInRequiredType
account_idqueryyesstring
filenamequeryyesstring
content_typequeryyesstring
Responses
StatusDescriptionSchema
200OK
400Bad Request
422Unprocessable Entity
defaulterror
GET/agent_runners/{agent_runner_id}
Parameters
NameInRequiredType
agent_runner_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PATCH/agent_runners/{agent_runner_id}
Parameters
NameInRequiredType
agent_runner_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
DELETE/agent_runners/{agent_runner_id}
Parameters
NameInRequiredType
agent_runner_idpathyesstring
Responses
StatusDescriptionSchema
202Accepted
defaulterror
POST/agent_runners/{agent_runner_id}/archive
Parameters
NameInRequiredType
agent_runner_idpathyesstring
Responses
StatusDescriptionSchema
202Accepted
404Not Found
422Unprocessable Entity
defaulterror
POST/agent_runners/{agent_runner_id}/commit
Parameters
NameInRequiredType
agent_runner_idpathyesstring
target_branchqueryyesstring
Responses
StatusDescriptionSchema
200OK
400Bad Request
409Conflict
422Unprocessable Entity
defaulterror
POST/agent_runners/{agent_runner_id}/pull_request
Parameters
NameInRequiredType
agent_runner_idpathyesstring
Responses
StatusDescriptionSchema
200OK
400Bad Request
409Conflict
422Unprocessable Entity
defaulterror
agentRunnerHook5
GET/sites/{site_id}/agent_runner_hooks
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/sites/{site_id}/agent_runner_hooks
Parameters
NameInRequiredType
site_idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
201Created
defaulterror
GET/sites/{site_id}/agent_runner_hooks/{id}
Parameters
NameInRequiredType
site_idpathyesstring
idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/sites/{site_id}/agent_runner_hooks/{id}
Parameters
NameInRequiredType
site_idpathyesstring
idpathyesstring
Request body

application/json (required)

Responses
StatusDescriptionSchema
204No content
defaulterror
DELETE/sites/{site_id}/agent_runner_hooks/{id}
Parameters
NameInRequiredType
site_idpathyesstring
idpathyesstring
Responses
StatusDescriptionSchema
204No content
defaulterror
agentRunnerSession5
GET/agent_runners/{agent_runner_id}/sessions
Parameters
NameInRequiredType
agent_runner_idpathyesstring
pagequerynointeger
per_pagequerynointeger
statequerynostring
fromquerynointeger
toquerynointeger
order_byquerynostring
Responses
StatusDescriptionSchema
200OK
defaulterror
POST/agent_runners/{agent_runner_id}/sessions
Parameters
NameInRequiredType
agent_runner_idpathyesstring
promptquerynostring
agentquerynostring
modelquerynostring
file_keysquerynoarray
Responses
StatusDescriptionSchema
200OK
404Not Found
422Unprocessable Entity
defaulterror
GET/agent_runners/{agent_runner_id}/sessions/{agent_runner_session_id}
Parameters
NameInRequiredType
agent_runner_idpathyesstring
agent_runner_session_idpathyesstring
Responses
StatusDescriptionSchema
200OK
defaulterror
PATCH/agent_runners/{agent_runner_id}/sessions/{agent_runner_session_id}
Parameters
NameInRequiredType
agent_runner_idpathyesstring
agent_runner_session_idpathyesstring
is_publishedquerynoboolean
Responses
StatusDescriptionSchema
200OK
defaulterror
DELETE/agent_runners/{agent_runner_id}/sessions/{agent_runner_session_id}
Parameters
NameInRequiredType
agent_runner_idpathyesstring
agent_runner_session_idpathyesstring
Responses
StatusDescriptionSchema
202Accepted
defaulterror
aiGateway3
GET/accounts/{account_id}/ai-gateway/token
Parameters
NameInRequiredType
account_idpathyesstring
Responses
StatusDescriptionSchema
200AI Gateway token for the account
404AI Gateway not available for this account
defaulterror
GET/ai-gateway/providers
Responses
StatusDescriptionSchema
200The mapping of providers and supported models
defaulterror
GET/sites/{site_id}/ai-gateway/token
Parameters
NameInRequiredType
site_idpathyesstring
Responses
StatusDescriptionSchema
200AI Gateway token for the site
404AI Gateway not available for this site
defaulterror
edgeFunction1
PUT/deploys/{deploy_id}/edge_functions/{code_sha}
Parameters
NameInRequiredType
deploy_idpathyesstring
code_shapathyesstring
X-Nf-Retry-Countheadernointeger
Request body

application/json (required)

Responses
StatusDescriptionSchema
200OK
defaulterror
x-internal3
POST/deploys/{deploy_id}/plugin_runs
Parameters
NameInRequiredType
deploy_idpathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
201CREATED
defaulterror
GET/sites/{site_id}/plugin_runs/latest
Parameters
NameInRequiredType
site_idpathyesstring
packagesqueryyesarray
statequerynostring
Responses
StatusDescriptionSchema
200OK
defaulterror
PUT/sites/{site_id}/plugins/{package}
Parameters
NameInRequiredType
site_idpathyesstring
packagepathyesstring
Request body

application/json

Responses
StatusDescriptionSchema
200OK
defaulterror

Try it

Developer reference

Base URLhttps://api.netlify.com/api/v1
Rate limit

Netlify's API guide documents a flat 500 requests per minute for most endpoints, with deploy operations held to a stricter 3 deploys per minute and 100 deploys per day. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers so a client can check its current standing; the docs point clients needing more headroom to contact Netlify support rather than publishing a paid-tier override.

Key endpoints
  • GET/sites
  • GET/sites/{site_id}
  • POST/sites
  • GET/sites/{site_id}/deploys
  • POST/sites/{site_id}/deploys