Netlify · OAuth Scopes

Netlify OAuth Scopes

OAuth 2.0 searched

Netlify uses OAuth 2.0 but publishes no discrete scopes — access is governed by the grant itself (e.g. client-credentials or role-based authorization) rather than per-scope consent.

This index is generated from the provider’s OpenAPI security definitions (and, where available, its documented scope reference) and refreshes on every APIs.io network build. Browse every provider’s scopes at scopes.apis.io.

CDNCloudContinuous DeploymentEdge ComputingJAMstackServerlessServerless FunctionsStatic SitesWeb HostingWebsites
Scopes: 0 Flows: implicit Method: searched

OAuth endpoints

Authorization URL
https://app.netlify.com/authorize
Flows
implicit

Scopes (0)

Netlify implements OAuth 2.0 but publishes no discrete scopes — access is governed by the grant itself (client-credentials or role-based authorization) rather than per-scope consent.

Netlify OAuth2 declares NO granular scopes. The securityDefinitions entry in Netlify's own OpenAPI carries an empty scopes object across all 35 refined specs and in upstream 2.57.0, and Netlify staff have confirmed only a single public scope exists (https://answers.netlify.com/t/netlify-oauth-scopes/112113). A personal access token or an OAuth token therefore carries the full authority of the account it was issued for: an agent given a token to read deploys can also delete the site. There is no read-only token and no way to scope a token to one project.

Source

OAuth Scopes

Raw ↑
generated: '2026-08-27'
method: searched
source: openapi/ (35 refined specs, all declaring the same netlifyAuth oauth2 scheme) plus https://docs.netlify.com/api-and-cli-guides/api-guides/get-started-with-api/
  and https://docs.netlify.com/manage/accounts-and-billing/team-management/roles-and-permissions/, both
  fetched 2026-08-27.
docs: https://docs.netlify.com/api-and-cli-guides/api-guides/get-started-with-api/#authentication
scope_count: 0
note: 'Netlify OAuth2 declares NO granular scopes. The securityDefinitions entry in Netlify''s own OpenAPI
  carries an empty scopes object across all 35 refined specs and in upstream 2.57.0, and Netlify staff
  have confirmed only a single public scope exists (https://answers.netlify.com/t/netlify-oauth-scopes/112113).
  A personal access token or an OAuth token therefore carries the full authority of the account it was
  issued for: an agent given a token to read deploys can also delete the site. There is no read-only token
  and no way to scope a token to one project.'
authorization_endpoint: https://app.netlify.com/authorize
scopes: []
authorization_model:
  mechanism: team roles, not token scopes
  detail: Permission is bounded by the ROLE of the user the token belongs to, applied at the team level
    in the dashboard — not by anything the token itself carries. A token cannot be narrower than its owner.
  roles_docs: https://docs.netlify.com/manage/accounts-and-billing/team-management/roles-and-permissions/
  sso_constraint: Under team SAML SSO, personal access tokens are denied team access by default; access
    must be granted explicitly at generation time while signed in to that team.
  revocation: Resetting the Netlify account password permanently invalidates every PAT and OAuth token
    issued before the reset.
related_oauth_surface:
  name: Netlify MCP server
  resource: https://netlify-mcp.netlify.app/mcp
  scopes_supported:
  - offline_access
  - read
  - write
  - claudeai
  source: well-known/netlify-mcp-oauth-authorization-server.json
  note: The MCP server DOES advertise scopes — a read/write split the REST API does not offer. These govern
    the MCP session, not the underlying Netlify REST token, so they are recorded separately and are not
    scopes of the API above.
schemes:
- name: netlifyAuth
  source: openapi/netlify-accesstoken-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-accountmembership-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-accounttype-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-asset-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-assetpublicsignature-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-auditlog-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-build-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-buildhook-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-buildlogmsg-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-deploy-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-deployedbranch-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-deploykey-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-devserver-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-devserverhook-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-dnszone-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-environmentvariables-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-file-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-form-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-function-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-hook-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-hooktype-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-member-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-metadata-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-paymentmethod-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-purge-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-serviceinstance-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-services-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-site-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-snicertificate-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-snippet-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-splittest-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-submission-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-ticket-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-user-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize
- name: netlifyAuth
  source: openapi/netlify-x-internal-api-openapi.yml
  flows:
  - flow: implicit
    authorizationUrl: https://app.netlify.com/authorize

Work with this as data

Every scope set here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for oauth scopes

4 MCP tools reach this
  • find_scopesBrowse and filter every scope set in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This scope set
curl "https://apis.io/api/v1/scopes/netlify-scopes"
All oauth scopes
curl "https://apis.io/api/v1/scopes?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.