swagger: "2.0"
schemes:
  - https
host: api.netlify.com
basePath: /api/v1
info:
  contact:
    x-twitter: Netlify
  description: |-
    Netlify is a hosting service for the programmable web. It understands your documents and provides an API to handle atomic deploys of websites, manage form submissions, inject JavaScript snippets, and much more. This is a REST-style API that uses JSON for serialization and OAuth 2 for authentication.

    This document is an OpenAPI reference for the Netlify API that you can explore. For more detailed instructions for common uses, please visit the [online documentation](https://www.netlify.com/docs/api/). Visit our Community forum to join the conversation about [understanding and using Netlify’s API](https://community.netlify.com/t/common-issue-understanding-and-using-netlifys-api/160).

    Additionally, we have two API clients for your convenience:
    - [Go Client](https://github.com/netlify/open-api#go-client)
    - [JS Client](https://github.com/netlify/build/tree/main/packages/js-client)
  termsOfService: https://www.netlify.com/legal/terms-of-use/
  title: Netlify's API documentation
  version: 2.16.0
  x-apisguru-categories:
    - cloud
  x-logo:
    altText: Netlify
    href: https://www.netlify.com/docs/
    url: https://twitter.com/Netlify/profile_image?size=original
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/netlify/open-api/master/swagger.yml
      version: "2.0"
  x-providerName: netlify.com
externalDocs:
  description: Online documentation
  url: https://www.netlify.com/docs/api/
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  netlifyAuth:
    authorizationUrl: https://app.netlify.com/authorize
    flow: implicit
    type: oauth2
security:
  - netlifyAuth: []
parameters:
  page:
    format: int32
    in: query
    name: page
    required: false
    type: integer
  perPage:
    format: int32
    in: query
    name: per_page
    required: false
    type: integer
  retryCount:
    in: header
    name: X-Nf-Retry-Count
    type: integer
responses:
  error:
    description: error
    schema:
      $ref: "#/definitions/error"
tags:
  - name: ticket
    x-displayName: Ticket
  - name: accessToken
    x-displayName: Access token
  - name: user
    x-displayName: User
  - name: accountMembership
    x-displayName: Accounts
  - name: member
    x-displayName: Member
  - name: accountType
    x-displayName: Access type
  - name: paymentMethod
    x-displayName: Payment method
  - name: auditLog
    x-displayName: Audit log
  - name: site
    x-displayName: Site
  - name: environmentVariables
    x-displayName: Environment variables
  - name: file
    x-displayName: File
  - name: metadata
    x-displayName: Metadata
  - name: snippet
    x-displayName: Snippet
  - name: dnsZone
    x-displayName: DNS zone
  - name: sniCertificate
    x-displayName: SNI certificate
  - name: deploy
    x-displayName: Deploy
  - name: deployedBranch
    x-displayName: Deployed branch
  - name: deployKey
    x-displayName: Deploy key
  - name: build
    x-displayName: Build
  - name: buildLogMsg
    x-displayName: Build log message
  - name: hook
    x-displayName: Hook
  - name: hookType
    x-displayName: Hook type
  - name: buildHook
    x-displayName: Build hook
  - name: service
    x-displayName: Service
  - name: serviceInstance
    x-displayName: Service instance
  - name: function
    x-displayName: Function
  - name: form
    x-displayName: Form
  - name: submission
    x-displayName: Form submission
  - name: splitTest
    x-displayName: Split test
  - name: asset
    x-displayName: Asset
  - name: assetPublicSignature
    x-displayName: Asset public signature
paths:
  /accounts:
    get:
      operationId: listAccountsForUser
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/accountMembership"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - accountMembership
    post:
      operationId: createAccount
      parameters:
        - in: body
          name: accountSetup
          required: true
          schema:
            $ref: "#/definitions/accountSetup"
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/accountMembership"
        default:
          $ref: "#/responses/error"
      tags:
        - accountMembership
  /accounts/types:
    get:
      operationId: listAccountTypesForUser
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/accountType"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - accountType
  "/accounts/{account_id}":
    delete:
      operationId: cancelAccount
      responses:
        "204":
          description: Not Content
        default:
          $ref: "#/responses/error"
      tags:
        - accountMembership
    get:
      operationId: getAccount
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/accountMembership"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - accountMembership
    parameters:
      - in: path
        name: account_id
        required: true
        type: string
    put:
      operationId: updateAccount
      parameters:
        - in: body
          name: accountUpdateSetup
          schema:
            $ref: "#/definitions/accountUpdateSetup"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/accountMembership"
        default:
          $ref: "#/responses/error"
      tags:
        - accountMembership
  "/accounts/{account_id}/audit":
    get:
      operationId: listAccountAuditEvents
      parameters:
        - in: query
          name: query
          type: string
        - in: query
          name: log_type
          type: string
        - $ref: "#/parameters/page"
        - $ref: "#/parameters/perPage"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/auditLog"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - auditLog
    parameters:
      - in: path
        name: account_id
        required: true
        type: string
  "/accounts/{account_id}/env":
    get:
      description: Returns all environment variables for an account or site. An account corresponds to a team in the Netlify UI. To use this endpoint, your site must no longer be using the <a href="https://docs.netlify.com/environment-variables/classic-experience/">classic environment variables experience</a>.  Migrate now with the Netlify UI.
      operationId: getEnvVars
      parameters:
        - description: Scope response to account_id
          in: path
          name: account_id
          required: true
          type: string
        - description: Filter by deploy context
          enum:
            - all
            - dev
            - branch-deploy
            - deploy-preview
            - production
          in: query
          name: context_name
          required: false
          type: string
        - description: Filter by scope
          enum:
            - builds
            - functions
            - runtime
            - post-processing
          in: query
          name: scope
          required: false
          type: string
        - description: If specified, only return environment variables set on this site
          in: query
          name: site_id
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/envVar"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - environmentVariables
    post:
      description: Creates new environment variables. Granular scopes are available on Pro plans and above.  To use this endpoint, your site must no longer be using the <a href="https://docs.netlify.com/environment-variables/classic-experience/">classic environment variables experience</a>.  Migrate now with the Netlify UI.
      operationId: createEnvVars
      parameters:
        - in: body
          name: env_vars
          schema:
            items:
              properties:
                key:
                  description: The existing or new name of the key, if you wish to rename it (case-sensitive)
                  type: string
                scopes:
                  description: The scopes that this environment variable is set to (Pro plans and above)
                  items:
                    enum:
                      - builds
                      - functions
                      - runtime
                      - post-processing
                    type: string
                  type: array
                values:
                  items:
                    $ref: "#/definitions/envVarValue"
                  type: array
              type: object
            type: array
        - description: Scope response to account_id
          in: path
          name: account_id
          required: true
          type: string
        - description: If provided, create an environment variable on the site level, not the account level
          in: query
          name: site_id
          required: false
          type: string
      responses:
        "201":
          description: OK
          schema:
            items:
              $ref: "#/definitions/envVar"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - environmentVariables
  "/accounts/{account_id}/env/{key}":
    delete:
      description: Deletes an environment variable. To use this endpoint, your site must no longer be using the <a href="https://docs.netlify.com/environment-variables/classic-experience/">classic environment variables experience</a>.  Migrate now with the Netlify UI.
      operationId: deleteEnvVar
      parameters:
        - description: Scope response to account_id
          in: path
          name: account_id
          required: true
          type: string
        - description: The environment variable key (case-sensitive)
          in: path
          name: key
          required: true
          type: string
        - description: If provided, delete the environment variable from this site
          in: query
          name: site_id
          required: false
          type: string
      responses:
        "204":
          description: No Content (success)
        default:
          $ref: "#/responses/error"
      tags:
        - environmentVariables
    get:
      description: Returns an individual environment variable. To use this endpoint, your site must no longer be using the <a href="https://docs.netlify.com/environment-variables/classic-experience/">classic environment variables experience</a>.  Migrate now with the Netlify UI.
      operationId: getEnvVar
      parameters:
        - description: Scope response to account_id
          in: path
          name: account_id
          required: true
          type: string
        - description: The environment variable key (case-sensitive)
          in: path
          name: key
          required: true
          type: string
        - description: If provided, return the environment variable for a specific site (no merging is performed)
          in: query
          name: site_id
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/envVar"
        default:
          $ref: "#/responses/error"
      tags:
        - environmentVariables
    patch:
      description: Updates or creates a new value for an existing environment variable. To use this endpoint, your site must no longer be using the <a href="https://docs.netlify.com/environment-variables/classic-experience/">classic environment variables experience</a>.  Migrate now with the Netlify UI.
      operationId: setEnvVarValue
      parameters:
        - description: Scope response to account_id
          in: path
          name: account_id
          required: true
          type: string
        - description: The existing environment variable key name (case-sensitive)
          in: path
          name: key
          required: true
          type: string
        - description: If provided, update an environment variable set on this site
          in: query
          name: site_id
          type: string
        - in: body
          name: env_var
          schema:
            properties:
              context:
                description: The deploy context in which this value will be used. `dev` refers to local development when running `netlify dev`.
                enum:
                  - dev
                  - branch-deploy
                  - deploy-preview
                  - production
                type: string
              value:
                description: The environment variable's unencrypted value
                type: string
            type: object
      responses:
        "201":
          description: Created (success)
          schema:
            $ref: "#/definitions/envVar"
        default:
          $ref: "#/responses/error"
      tags:
        - environmentVariables
    put:
      description: Updates an existing environment variable and all of its values. Existing values will be replaced by values provided. To use this endpoint, your site must no longer be using the <a href="https://docs.netlify.com/environment-variables/classic-experience/">classic environment variables experience</a>.  Migrate now with the Netlify UI.
      operationId: updateEnvVar
      parameters:
        - description: Scope response to account_id
          in: path
          name: account_id
          required: true
          type: string
        - description: The existing environment variable key name (case-sensitive)
          in: path
          name: key
          required: true
          type: string
        - in: body
          name: env_var
          schema:
            properties:
              key:
                description: The existing or new name of the key, if you wish to rename it (case-sensitive)
                type: string
              scopes:
                description: The scopes that this environment variable is set to (Pro plans and above)
                items:
                  enum:
                    - builds
                    - functions
                    - runtime
                    - post-processing
                  type: string
                type: array
              values:
                items:
                  $ref: "#/definitions/envVarValue"
                type: array
            type: object
        - description: If provided, update an environment variable set on this site
          in: query
          name: site_id
          required: false
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/envVar"
        default:
          $ref: "#/responses/error"
      tags:
        - environmentVariables
  "/accounts/{account_id}/env/{key}/value/{id}":
    delete:
      description: Deletes a specific environment variable value. To use this endpoint, your site must no longer be using the <a href="https://docs.netlify.com/environment-variables/classic-experience/">classic environment variables experience</a>.  Migrate now with the Netlify UI.
      operationId: deleteEnvVarValue
      parameters:
        - description: Scope response to account_id
          in: path
          name: account_id
          required: true
          type: string
        - description: The environment variable value's ID
          in: path
          name: id
          required: true
          type: string
        - description: The environment variable key name (case-sensitive)
          in: path
          name: key
          required: true
          type: string
        - description: If provided, delete the value from an environment variable on this site
          in: query
          name: site_id
          required: false
          type: string
      responses:
        "204":
          description: No Content (success)
        default:
          $ref: "#/responses/error"
      tags:
        - environmentVariables
  /billing/payment_methods:
    get:
      operationId: listPaymentMethodsForUser
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/paymentMethod"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - paymentMethod
  "/builds/{build_id}":
    get:
      operationId: getSiteBuild
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/build"
        default:
          $ref: "#/responses/error"
      tags:
        - build
    parameters:
      - in: path
        name: build_id
        required: true
        type: string
  "/builds/{build_id}/log":
    parameters:
      - in: path
        name: build_id
        required: true
        type: string
      - in: body
        name: msg
        required: true
        schema:
          $ref: "#/definitions/buildLogMsg"
    post:
      operationId: updateSiteBuildLog
      responses:
        "204":
          description: No content
        default:
          $ref: "#/responses/error"
      tags:
        - buildLogMsg
  "/builds/{build_id}/start":
    parameters:
      - in: path
        name: build_id
        required: true
        type: string
    post:
      operationId: notifyBuildStart
      responses:
        "204":
          description: No content
        default:
          $ref: "#/responses/error"
      tags:
        - build
  /deploy_keys:
    get:
      operationId: listDeployKeys
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/deployKey"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - deployKey
    post:
      consumes:
        - application/json
      operationId: createDeployKey
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/deployKey"
        default:
          $ref: "#/responses/error"
      tags:
        - deployKey
  "/deploy_keys/{key_id}":
    delete:
      operationId: deleteDeployKey
      responses:
        "204":
          description: Not Content
        default:
          $ref: "#/responses/error"
      tags:
        - deployKey
    get:
      operationId: getDeployKey
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/deployKey"
        default:
          $ref: "#/responses/error"
      tags:
        - deployKey
    parameters:
      - in: path
        name: key_id
        required: true
        type: string
  "/deploys/{deploy_id}":
    delete:
      operationId: deleteDeploy
      parameters:
        - in: path
          name: deploy_id
          required: true
          type: string
      responses:
        "204":
          description: No content
        default:
          $ref: "#/responses/error"
      tags:
        - deploy
    get:
      operationId: getDeploy
      parameters:
        - in: path
          name: deploy_id
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/deploy"
        default:
          $ref: "#/responses/error"
      tags:
        - deploy
  "/deploys/{deploy_id}/cancel":
    post:
      operationId: cancelSiteDeploy
      parameters:
        - in: path
          name: deploy_id
          required: true
          type: string
      responses:
        "201":
          description: Cancelled
          schema:
            $ref: "#/definitions/deploy"
        default:
          $ref: "#/responses/error"
      tags:
        - deploy
  "/deploys/{deploy_id}/files/{path}":
    put:
      consumes:
        - application/octet-stream
      operationId: uploadDeployFile
      parameters:
        - in: path
          name: deploy_id
          required: true
          type: string
        - in: path
          name: path
          required: true
          type: string
        - in: query
          name: size
          type: integer
        - in: body
          name: file_body
          required: true
          schema:
            format: binary
            type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/file"
        default:
          $ref: "#/responses/error"
      tags:
        - file
  "/deploys/{deploy_id}/functions/{name}":
    put:
      consumes:
        - application/octet-stream
      operationId: uploadDeployFunction
      parameters:
        - in: path
          name: deploy_id
          required: true
          type: string
        - in: path
          name: name
          required: true
          type: string
        - in: query
          name: runtime
          type: string
        - in: query
          name: size
          type: integer
        - in: body
          name: file_body
          required: true
          schema:
            format: binary
            type: string
        - $ref: "#/parameters/retryCount"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/function"
        default:
          $ref: "#/responses/error"
      tags:
        - function
  "/deploys/{deploy_id}/lock":
    post:
      operationId: lockDeploy
      parameters:
        - in: path
          name: deploy_id
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/deploy"
        default:
          $ref: "#/responses/error"
      tags:
        - deploy
  "/deploys/{deploy_id}/plugin_runs":
    post:
      description: This is an internal-only endpoint.
      operationId: createPluginRun
      parameters:
        - in: path
          name: deploy_id
          required: true
          type: string
        - in: body
          name: plugin_run
          schema:
            $ref: "#/definitions/pluginRunData"
      responses:
        "201":
          description: CREATED
          schema:
            $ref: "#/definitions/pluginRun"
        default:
          $ref: "#/responses/error"
      tags:
        - x-internal
  "/deploys/{deploy_id}/unlock":
    post:
      operationId: unlockDeploy
      parameters:
        - in: path
          name: deploy_id
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/deploy"
        default:
          $ref: "#/responses/error"
      tags:
        - deploy
  /dns_zones:
    get:
      operationId: getDnsZones
      parameters:
        - in: query
          name: account_slug
          required: false
          type: string
      responses:
        "200":
          description: get all DNS zones the user has access to
          schema:
            $ref: "#/definitions/dnsZones"
        default:
          $ref: "#/responses/error"
      tags:
        - dnsZone
    post:
      consumes:
        - application/json
      operationId: createDnsZone
      parameters:
        - in: body
          name: DnsZoneParams
          required: true
          schema:
            $ref: "#/definitions/dnsZoneSetup"
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/dnsZone"
        default:
          $ref: "#/responses/error"
      tags:
        - dnsZone
  "/dns_zones/{zone_id}":
    delete:
      operationId: deleteDnsZone
      responses:
        "204":
          description: delete a single DNS zone
        default:
          $ref: "#/responses/error"
      tags:
        - dnsZone
    get:
      operationId: getDnsZone
      responses:
        "200":
          description: get a single DNS zone
          schema:
            $ref: "#/definitions/dnsZone"
        default:
          $ref: "#/responses/error"
      tags:
        - dnsZone
    parameters:
      - in: path
        name: zone_id
        required: true
        type: string
  "/dns_zones/{zone_id}/dns_records":
    get:
      operationId: getDnsRecords
      responses:
        "200":
          description: get all DNS records for a single DNS zone
          schema:
            $ref: "#/definitions/dnsRecords"
        default:
          $ref: "#/responses/error"
      tags:
        - dnsZone
    parameters:
      - in: path
        name: zone_id
        required: true
        type: string
    post:
      consumes:
        - application/json
      operationId: createDnsRecord
      parameters:
        - in: body
          name: dns_record
          required: true
          schema:
            $ref: "#/definitions/dnsRecordCreate"
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/dnsRecord"
        default:
          $ref: "#/responses/error"
      tags:
        - dnsZone
  "/dns_zones/{zone_id}/dns_records/{dns_record_id}":
    delete:
      operationId: deleteDnsRecord
      responses:
        "204":
          description: record deleted
        default:
          $ref: "#/responses/error"
      tags:
        - dnsZone
    get:
      operationId: getIndividualDnsRecord
      responses:
        "200":
          description: get a single DNS record
          schema:
            $ref: "#/definitions/dnsRecord"
        default:
          $ref: "#/responses/error"
      tags:
        - dnsZone
    parameters:
      - in: path
        name: zone_id
        required: true
        type: string
      - in: path
        name: dns_record_id
        required: true
        type: string
  "/dns_zones/{zone_id}/transfer":
    parameters:
      - in: path
        name: zone_id
        required: true
        type: string
      - description: the account of the dns zone
        in: query
        name: account_id
        required: true
        type: string
      - description: the account you want to transfer the dns zone to
        in: query
        name: transfer_account_id
        required: true
        type: string
      - description: the user you want to transfer the dns zone to
        in: query
        name: transfer_user_id
        required: true
        type: string
    put:
      operationId: transferDnsZone
      responses:
        "200":
          description: transfer a DNS zone to another account
          schema:
            $ref: "#/definitions/dnsZone"
        default:
          $ref: "#/responses/error"
      tags:
        - dnsZone
  "/forms/{form_id}/submissions":
    get:
      operationId: listFormSubmissions
      parameters:
        - in: path
          name: form_id
          required: true
          type: string
        - $ref: "#/parameters/page"
        - $ref: "#/parameters/perPage"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/submission"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - submission
  /hooks:
    get:
      operationId: listHooksBySiteId
      parameters:
        - in: query
          name: site_id
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/hook"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - hook
    post:
      consumes:
        - application/json
      operationId: createHookBySiteId
      parameters:
        - in: query
          name: site_id
          required: true
          type: string
        - in: body
          name: hook
          required: true
          schema:
            $ref: "#/definitions/hook"
      responses:
        "201":
          description: OK
          schema:
            $ref: "#/definitions/hook"
        default:
          $ref: "#/responses/error"
      tags:
        - hook
  /hooks/types:
    get:
      operationId: listHookTypes
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/hookType"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - hookType
  "/hooks/{hook_id}":
    delete:
      operationId: deleteHook
      responses:
        "204":
          description: No content
      tags:
        - hook
    get:
      operationId: getHook
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/hook"
        default:
          $ref: "#/responses/error"
      tags:
        - hook
    parameters:
      - in: path
        name: hook_id
        required: true
        type: string
    put:
      operationId: updateHook
      parameters:
        - in: body
          name: hook
          required: true
          schema:
            $ref: "#/definitions/hook"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/hook"
        default:
          $ref: "#/responses/error"
      tags:
        - hook
  "/hooks/{hook_id}/enable":
    parameters:
      - in: path
        name: hook_id
        required: true
        type: string
    post:
      operationId: enableHook
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/hook"
        default:
          $ref: "#/responses/error"
      tags:
        - hook
  /oauth/tickets:
    post:
      operationId: createTicket
      parameters:
        - in: query
          name: client_id
          required: true
          type: string
      responses:
        "201":
          description: ok
          schema:
            $ref: "#/definitions/ticket"
        default:
          $ref: "#/responses/error"
      tags:
        - ticket
  "/oauth/tickets/{ticket_id}":
    get:
      operationId: showTicket
      parameters:
        - in: path
          name: ticket_id
          required: true
          type: string
      responses:
        "200":
          description: ok
          schema:
            $ref: "#/definitions/ticket"
        default:
          $ref: "#/responses/error"
      tags:
        - ticket
  "/oauth/tickets/{ticket_id}/exchange":
    post:
      operationId: exchangeTicket
      parameters:
        - in: path
          name: ticket_id
          required: true
          type: string
      responses:
        "201":
          description: ok
          schema:
            $ref: "#/definitions/accessToken"
        default:
          $ref: "#/responses/error"
      tags:
        - accessToken
  /services/:
    get:
      operationId: getServices
      responses:
        "200":
          description: services
          schema:
            items:
              $ref: "#/definitions/service"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - service
    parameters:
      - in: query
        name: search
        type: string
  "/services/{addonName}":
    get:
      operationId: showService
      responses:
        "200":
          description: services
          schema:
            $ref: "#/definitions/service"
        default:
          $ref: "#/responses/error"
      tags:
        - service
    parameters:
      - in: path
        name: addonName
        required: true
        type: string
  "/services/{addonName}/manifest":
    get:
      operationId: showServiceManifest
      responses:
        "201":
          description: retrieving from provider
          schema:
            type: object
        default:
          $ref: "#/responses/error"
      tags:
        - service
    parameters:
      - in: path
        name: addonName
        required: true
        type: string
  /sites:
    get:
      description: "**Note:** Environment variable keys and values will soon be moved from `build_settings.env` and `repo.env` to a new endpoint. Please use [getEnvVars](#tag/environmentVariables/operation/getEnvVars) to retrieve site environment variables."
      operationId: listSites
      parameters:
        - in: query
          name: name
          type: string
        - enum:
            - all
            - owner
            - guest
          in: query
          name: filter
          type: string
        - $ref: "#/parameters/page"
        - $ref: "#/parameters/perPage"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/site"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - site
    post:
      consumes:
        - application/json
      description: "**Note:** Environment variable keys and values will soon be moved from `build_settings.env` and `repo.env` to a new endpoint. Please use [createEnvVars](#tag/environmentVariables/operation/createEnvVars) to create environment variables for a site."
      operationId: createSite
      parameters:
        - in: body
          name: site
          required: true
          schema:
            $ref: "#/definitions/siteSetup"
        - in: query
          name: configure_dns
          type: boolean
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/site"
        default:
          $ref: "#/responses/error"
      tags:
        - site
  "/sites/{site_id}":
    delete:
      operationId: deleteSite
      responses:
        "204":
          description: Deleted
        default:
          $ref: "#/responses/error"
      tags:
        - site
    get:
      description: "**Note:** Environment variable keys and values will soon be moved from `build_settings.env` and `repo.env` to a new endpoint. Please use [getEnvVars](#tag/environmentVariables/operation/getEnvVars) to retrieve site environment variables."
      operationId: getSite
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/site"
        default:
          $ref: "#/responses/error"
      tags:
        - site
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
    patch:
      consumes:
        - application/json
      description: "**Note:** Environment variable keys and values will soon be moved from `build_settings.env` and `repo.env` to a new endpoint. Please use [updateEnvVar](#tag/environmentVariables/operation/updateEnvVar) to update a site's environment variables."
      operationId: updateSite
      parameters:
        - in: body
          name: site
          required: true
          schema:
            $ref: "#/definitions/siteSetup"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/site"
        default:
          $ref: "#/responses/error"
      tags:
        - site
  "/sites/{site_id}/assets":
    get:
      operationId: listSiteAssets
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/asset"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - asset
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
    post:
      operationId: createSiteAsset
      parameters:
        - in: query
          name: name
          required: true
          type: string
        - format: int64
          in: query
          name: size
          required: true
          type: integer
        - in: query
          name: content_type
          required: true
          type: string
        - in: query
          name: visibility
          type: string
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/assetSignature"
        default:
          $ref: "#/responses/error"
      tags:
        - asset
  "/sites/{site_id}/assets/{asset_id}":
    delete:
      operationId: deleteSiteAsset
      responses:
        "204":
          description: Deleted
        default:
          $ref: "#/responses/error"
      tags:
        - asset
    get:
      operationId: getSiteAssetInfo
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/asset"
        default:
          $ref: "#/responses/error"
      tags:
        - asset
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
      - in: path
        name: asset_id
        required: true
        type: string
    put:
      operationId: updateSiteAsset
      parameters:
        - in: query
          name: state
          required: true
          type: string
      responses:
        "200":
          description: Updated
          schema:
            $ref: "#/definitions/asset"
        default:
          $ref: "#/responses/error"
      tags:
        - asset
  "/sites/{site_id}/assets/{asset_id}/public_signature":
    get:
      operationId: getSiteAssetPublicSignature
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/assetPublicSignature"
        default:
          $ref: "#/responses/error"
      tags:
        - assetPublicSignature
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
      - in: path
        name: asset_id
        required: true
        type: string
  "/sites/{site_id}/build_hooks":
    get:
      operationId: listSiteBuildHooks
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/buildHook"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - buildHook
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
    post:
      consumes:
        - application/json
      operationId: createSiteBuildHook
      parameters:
        - in: body
          name: buildHook
          required: true
          schema:
            $ref: "#/definitions/buildHookSetup"
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/buildHook"
        default:
          $ref: "#/responses/error"
      tags:
        - buildHook
  "/sites/{site_id}/build_hooks/{id}":
    delete:
      operationId: deleteSiteBuildHook
      responses:
        "204":
          description: No content
        default:
          $ref: "#/responses/error"
      tags:
        - buildHook
    get:
      operationId: getSiteBuildHook
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/buildHook"
        default:
          $ref: "#/responses/error"
      tags:
        - buildHook
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
      - in: path
        name: id
        required: true
        type: string
    put:
      consumes:
        - application/json
      operationId: updateSiteBuildHook
      parameters:
        - in: body
          name: buildHook
          required: true
          schema:
            $ref: "#/definitions/buildHookSetup"
      responses:
        "204":
          description: No content
        default:
          $ref: "#/responses/error"
      tags:
        - buildHook
  "/sites/{site_id}/builds":
    get:
      operationId: listSiteBuilds
      parameters:
        - $ref: "#/parameters/page"
        - $ref: "#/parameters/perPage"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/build"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - build
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
    post:
      operationId: createSiteBuild
      parameters:
        - in: body
          name: build
          required: false
          schema:
            $ref: "#/definitions/buildSetup"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/build"
        default:
          $ref: "#/responses/error"
      tags:
        - build
  "/sites/{site_id}/deployed-branches":
    get:
      operationId: listSiteDeployedBranches
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/deployedBranch"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - deployedBranch
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
  "/sites/{site_id}/deploys":
    get:
      operationId: listSiteDeploys
      parameters:
        - $ref: "#/parameters/page"
        - $ref: "#/parameters/perPage"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/deploy"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - deploy
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
      - in: query
        name: deploy-previews
        type: boolean
      - in: query
        name: production
        type: boolean
      - enum:
          - new
          - pending_review
          - accepted
          - rejected
          - enqueued
          - building
          - uploading
          - uploaded
          - preparing
          - prepared
          - processing
          - ready
          - error
          - retrying
        in: query
        name: state
        type: string
      - in: query
        name: branch
        type: string
      - in: query
        name: latest-published
        type: boolean
    post:
      operationId: createSiteDeploy
      parameters:
        - in: query
          name: title
          type: string
        - in: body
          name: deploy
          required: true
          schema:
            $ref: "#/definitions/deployFiles"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/deploy"
        default:
          $ref: "#/responses/error"
      tags:
        - deploy
  "/sites/{site_id}/deploys/{deploy_id}":
    delete:
      operationId: deleteSiteDeploy
      parameters:
        - in: path
          name: deploy_id
          required: true
          type: string
        - in: path
          name: site_id
          required: true
          type: string
      responses:
        "204":
          description: No content
        default:
          $ref: "#/responses/error"
      tags:
        - deploy
    get:
      operationId: getSiteDeploy
      parameters:
        - in: path
          name: site_id
          required: true
          type: string
        - in: path
          name: deploy_id
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/deploy"
        default:
          $ref: "#/responses/error"
      tags:
        - deploy
    put:
      operationId: updateSiteDeploy
      parameters:
        - in: path
          name: site_id
          required: true
          type: string
        - in: path
          name: deploy_id
          required: true
          type: string
        - in: body
          name: deploy
          required: true
          schema:
            $ref: "#/definitions/deployFiles"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/deploy"
        default:
          $ref: "#/responses/error"
      tags:
        - deploy
  "/sites/{site_id}/deploys/{deploy_id}/restore":
    post:
      operationId: restoreSiteDeploy
      parameters:
        - in: path
          name: site_id
          required: true
          type: string
        - in: path
          name: deploy_id
          required: true
          type: string
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/deploy"
        default:
          $ref: "#/responses/error"
      tags:
        - deploy
  "/sites/{site_id}/dns":
    get:
      operationId: getDNSForSite
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/dnsZone"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - dnsZone
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
    put:
      operationId: configureDNSForSite
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/dnsZone"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - dnsZone
  "/sites/{site_id}/files":
    get:
      operationId: listSiteFiles
      parameters:
        - in: path
          name: site_id
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/file"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - file
  "/sites/{site_id}/files/{file_path}":
    get:
      operationId: getSiteFileByPathName
      parameters:
        - in: path
          name: site_id
          required: true
          type: string
        - in: path
          name: file_path
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/file"
        default:
          $ref: "#/responses/error"
      tags:
        - file
  "/sites/{site_id}/forms":
    get:
      operationId: listSiteForms
      parameters:
        - in: path
          name: site_id
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/form"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - form
  "/sites/{site_id}/forms/{form_id}":
    delete:
      operationId: deleteSiteForm
      parameters:
        - in: path
          name: site_id
          required: true
          type: string
        - in: path
          name: form_id
          required: true
          type: string
      responses:
        "204":
          description: Deleted
        default:
          $ref: "#/responses/error"
      tags:
        - form
  "/sites/{site_id}/metadata":
    get:
      operationId: getSiteMetadata
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/metadata"
        default:
          $ref: "#/responses/error"
      tags:
        - metadata
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
    put:
      operationId: updateSiteMetadata
      parameters:
        - in: body
          name: metadata
          required: true
          schema:
            $ref: "#/definitions/metadata"
      responses:
        "204":
          description: No content
        default:
          $ref: "#/responses/error"
      tags:
        - metadata
  "/sites/{site_id}/plugin_runs/latest":
    get:
      description: This is an internal-only endpoint.
      operationId: getLatestPluginRuns
      parameters:
        - in: path
          name: site_id
          required: true
          type: string
        - in: query
          items:
            type: string
          name: packages
          required: true
          type: array
        - in: query
          name: state
          type: string
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/pluginRun"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - x-internal
  "/sites/{site_id}/plugins/{package}":
    put:
      description: This is an internal-only endpoint.
      operationId: updatePlugin
      parameters:
        - in: path
          name: site_id
          required: true
          type: string
        - in: path
          name: package
          required: true
          type: string
        - in: body
          name: plugin_params
          schema:
            $ref: "#/definitions/pluginParams"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/plugin"
        default:
          $ref: "#/responses/error"
      tags:
        - x-internal
  "/sites/{site_id}/rollback":
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
    put:
      operationId: rollbackSiteDeploy
      responses:
        "204":
          description: No content
        default:
          $ref: "#/responses/error"
      tags:
        - deploy
  "/sites/{site_id}/service-instances":
    get:
      operationId: listServiceInstancesForSite
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/serviceInstance"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - serviceInstance
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
  "/sites/{site_id}/services/{addon}/instances":
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
      - in: path
        name: addon
        required: true
        type: string
    post:
      consumes:
        - application/json
      operationId: createServiceInstance
      parameters:
        - in: body
          name: config
          required: true
          schema:
            type: object
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/serviceInstance"
        default:
          $ref: "#/responses/error"
      tags:
        - serviceInstance
  "/sites/{site_id}/services/{addon}/instances/{instance_id}":
    delete:
      operationId: deleteServiceInstance
      responses:
        "204":
          description: Deleted
        default:
          $ref: "#/responses/error"
      tags:
        - serviceInstance
    get:
      operationId: showServiceInstance
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/serviceInstance"
        default:
          $ref: "#/responses/error"
      tags:
        - serviceInstance
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
      - in: path
        name: addon
        required: true
        type: string
      - in: path
        name: instance_id
        required: true
        type: string
    put:
      consumes:
        - application/json
      operationId: updateServiceInstance
      parameters:
        - in: body
          name: config
          required: true
          schema:
            type: object
      responses:
        "204":
          description: No Content
        default:
          $ref: "#/responses/error"
      tags:
        - serviceInstance
  "/sites/{site_id}/snippets":
    get:
      operationId: listSiteSnippets
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/snippet"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - snippet
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
    post:
      consumes:
        - application/json
      operationId: createSiteSnippet
      parameters:
        - in: body
          name: snippet
          required: true
          schema:
            $ref: "#/definitions/snippet"
      responses:
        "201":
          description: OK
          schema:
            $ref: "#/definitions/snippet"
        default:
          $ref: "#/responses/error"
      tags:
        - snippet
  "/sites/{site_id}/snippets/{snippet_id}":
    delete:
      operationId: deleteSiteSnippet
      responses:
        "204":
          description: No content
        default:
          $ref: "#/responses/error"
      tags:
        - snippet
    get:
      operationId: getSiteSnippet
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/snippet"
        default:
          $ref: "#/responses/error"
      tags:
        - snippet
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
      - in: path
        name: snippet_id
        required: true
        type: string
    put:
      consumes:
        - application/json
      operationId: updateSiteSnippet
      parameters:
        - in: body
          name: snippet
          required: true
          schema:
            $ref: "#/definitions/snippet"
      responses:
        "204":
          description: No content
        default:
          $ref: "#/responses/error"
      tags:
        - snippet
  "/sites/{site_id}/ssl":
    get:
      operationId: showSiteTLSCertificate
      parameters:
        - in: path
          name: site_id
          required: true
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/sniCertificate"
        default:
          $ref: "#/responses/error"
      tags:
        - sniCertificate
    post:
      operationId: provisionSiteTLSCertificate
      parameters:
        - in: path
          name: site_id
          required: true
          type: string
        - in: query
          name: certificate
          type: string
        - in: query
          name: key
          type: string
        - in: query
          name: ca_certificates
          type: string
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/sniCertificate"
        default:
          $ref: "#/responses/error"
      tags:
        - sniCertificate
  "/sites/{site_id}/submissions":
    get:
      operationId: listSiteSubmissions
      parameters:
        - in: path
          name: site_id
          required: true
          type: string
        - $ref: "#/parameters/page"
        - $ref: "#/parameters/perPage"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/submission"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - submission
  "/sites/{site_id}/traffic_splits":
    get:
      operationId: getSplitTests
      responses:
        "200":
          description: split_tests
          schema:
            $ref: "#/definitions/splitTests"
        default:
          $ref: "#/responses/error"
      tags:
        - splitTest
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
    post:
      consumes:
        - application/json
      operationId: createSplitTest
      parameters:
        - in: body
          name: branch_tests
          required: true
          schema:
            $ref: "#/definitions/splitTestSetup"
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/splitTest"
        default:
          $ref: "#/responses/error"
      tags:
        - splitTest
  "/sites/{site_id}/traffic_splits/{split_test_id}":
    get:
      operationId: getSplitTest
      responses:
        "200":
          description: split_test
          schema:
            $ref: "#/definitions/splitTest"
        default:
          $ref: "#/responses/error"
      tags:
        - splitTest
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
      - in: path
        name: split_test_id
        required: true
        type: string
    put:
      consumes:
        - application/json
      operationId: updateSplitTest
      parameters:
        - in: body
          name: branch_tests
          required: true
          schema:
            $ref: "#/definitions/splitTestSetup"
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/splitTest"
        default:
          $ref: "#/responses/error"
      tags:
        - splitTest
  "/sites/{site_id}/traffic_splits/{split_test_id}/publish":
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
      - in: path
        name: split_test_id
        required: true
        type: string
    post:
      operationId: enableSplitTest
      responses:
        "204":
          description: enable
        default:
          $ref: "#/responses/error"
      tags:
        - splitTest
  "/sites/{site_id}/traffic_splits/{split_test_id}/unpublish":
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
      - in: path
        name: split_test_id
        required: true
        type: string
    post:
      operationId: disableSplitTest
      responses:
        "204":
          description: disabled
        default:
          $ref: "#/responses/error"
      tags:
        - splitTest
  "/sites/{site_id}/unlink_repo":
    parameters:
      - in: path
        name: site_id
        required: true
        type: string
    put:
      description: |-
        [Beta] Unlinks the repo from the site.

        This action will also:
        - Delete associated deploy keys
        - Delete outgoing webhooks for the repo
        - Delete the site's build hooks
      operationId: unlinkSiteRepo
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/site"
        "404":
          description: Site not found
      tags:
        - site
  "/submissions/{submission_id}":
    delete:
      operationId: deleteSubmission
      responses:
        "204":
          description: Deleted
        default:
          $ref: "#/responses/error"
      tags:
        - submission
    get:
      operationId: listFormSubmission
      parameters:
        - in: query
          name: query
          type: string
        - $ref: "#/parameters/page"
        - $ref: "#/parameters/perPage"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/submission"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - submission
    parameters:
      - in: path
        name: submission_id
        required: true
        type: string
  /user:
    get:
      operationId: getCurrentUser
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/user"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - user
  "/{account_id}/builds/status":
    get:
      operationId: getAccountBuildStatus
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/buildStatus"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - build
    parameters:
      - in: path
        name: account_id
        required: true
        type: string
  "/{account_slug}/members":
    get:
      operationId: listMembersForAccount
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/member"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - member
    parameters:
      - in: path
        name: account_slug
        required: true
        type: string
    post:
      consumes:
        - application/json
      operationId: addMemberToAccount
      parameters:
        - in: body
          name: accountAddMemberSetup
          required: true
          schema:
            $ref: "#/definitions/accountAddMemberSetup"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/member"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - member
  "/{account_slug}/members/{member_id}":
    delete:
      operationId: removeAccountMember
      responses:
        "204":
          description: Not Content
        default:
          $ref: "#/responses/error"
      tags:
        - member
    get:
      operationId: getAccountMember
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/member"
        default:
          $ref: "#/responses/error"
      tags:
        - member
    parameters:
      - in: path
        name: account_slug
        required: true
        type: string
      - in: path
        name: member_id
        required: true
        type: string
    put:
      consumes:
        - application/json
      operationId: updateAccountMember
      parameters:
        - in: body
          name: accountUpdateMemberSetup
          required: true
          schema:
            $ref: "#/definitions/accountUpdateMemberSetup"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/member"
        default:
          $ref: "#/responses/error"
      tags:
        - member
  "/{account_slug}/sites":
    get:
      description: "**Note:** Environment variable keys and values will soon be moved from `build_settings.env` and `repo.env` to a new endpoint. Please use [getEnvVars](#tag/environmentVariables/operation/getEnvVars) to retrieve site environment variables."
      operationId: listSitesForAccount
      parameters:
        - in: query
          name: name
          type: string
        - in: path
          name: account_slug
          required: true
          type: string
        - $ref: "#/parameters/page"
        - $ref: "#/parameters/perPage"
      responses:
        "200":
          description: OK
          schema:
            items:
              $ref: "#/definitions/site"
            type: array
        default:
          $ref: "#/responses/error"
      tags:
        - site
    post:
      consumes:
        - application/json
      description: "**Note:** Environment variable keys and values will soon be moved from `build_settings.env` and `repo.env` to a new endpoint. Please use [createEnvVars](#tag/environmentVariables/operation/createEnvVars) to create environment variables for a site."
      operationId: createSiteInTeam
      parameters:
        - in: body
          name: site
          schema:
            $ref: "#/definitions/siteSetup"
        - in: query
          name: configure_dns
          type: boolean
        - in: path
          name: account_slug
          required: true
          type: string
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/site"
        default:
          $ref: "#/responses/error"
      tags:
        - site
definitions:
  accessToken:
    properties:
      access_token:
        type: string
      created_at:
        format: dateTime
        type: string
      id:
        type: string
      user_email:
        type: string
      user_id:
        type: string
    type: object
  accountAddMemberSetup:
    properties:
      email:
        type: string
      role:
        enum:
          - Owner
          - Collaborator
          - Controller
        type: string
    type: object
  accountMembership:
    properties:
      billing_details:
        type: string
      billing_email:
        type: string
      billing_name:
        type: string
      billing_period:
        type: string
      capabilities:
        properties:
          collaborators:
            $ref: "#/definitions/accountUsageCapability"
          sites:
            $ref: "#/definitions/accountUsageCapability"
        type: object
      created_at:
        format: dateTime
        type: string
      id:
        type: string
      name:
        type: string
      owner_ids:
        items:
          type: string
        type: array
      payment_method_id:
        type: string
      roles_allowed:
        items:
          type: string
        type: array
      slug:
        type: string
      type:
        type: string
      type_id:
        type: string
      type_name:
        type: string
      updated_at:
        format: dateTime
        type: string
    type: object
  accountSetup:
    properties:
      extra_seats_block:
        type: integer
      name:
        type: string
      payment_method_id:
        type: string
      period:
        enum:
          - monthly
          - yearly
        type: string
      type_id:
        type: string
    required:
      - name
      - type_id
    type: object
  accountType:
    properties:
      capabilities:
        type: object
      description:
        type: string
      id:
        type: string
      monthly_dollar_price:
        type: integer
      monthly_seats_addon_dollar_price:
        type: integer
      name:
        type: string
      yearly_dollar_price:
        type: integer
      yearly_seats_addon_dollar_price:
        type: integer
    type: object
  accountUpdateMemberSetup:
    properties:
      role:
        enum:
          - Owner
          - Collaborator
          - Controller
        type: string
      site_access:
        enum:
          - all
          - none
          - selected
        type: string
      site_ids:
        items:
          type: string
        type: array
    type: object
  accountUpdateSetup:
    properties:
      billing_details:
        type: string
      billing_email:
        type: string
      billing_name:
        type: string
      extra_seats_block:
        type: integer
      name:
        type: string
      slug:
        type: string
      type_id:
        type: string
    type: object
  accountUsageCapability:
    properties:
      included:
        type: integer
      used:
        type: integer
    type: object
  asset:
    properties:
      content_type:
        type: string
      created_at:
        format: dateTime
        type: string
      creator_id:
        type: string
      id:
        type: string
      key:
        type: string
      name:
        type: string
      site_id:
        type: string
      size:
        format: int64
        type: integer
      state:
        type: string
      updated_at:
        format: dateTime
        type: string
      url:
        type: string
      visibility:
        type: string
    type: object
  assetForm:
    properties:
      fields:
        additionalProperties:
          type: string
        type: object
      url:
        type: string
    type: object
  assetPublicSignature:
    properties:
      url:
        type: string
    type: object
  assetSignature:
    properties:
      asset:
        $ref: "#/definitions/asset"
        type: object
      form:
        $ref: "#/definitions/assetForm"
        type: object
    type: object
  auditLog:
    properties:
      account_id:
        type: string
      id:
        type: string
      payload:
        additionalProperties:
          type: object
        properties:
          action:
            type: string
          actor_email:
            type: string
          actor_id:
            type: string
          actor_name:
            type: string
          log_type:
            type: string
          timestamp:
            format: dateTime
            type: string
        type: object
    type: object
  build:
    properties:
      created_at:
        format: dateTime
        type: string
      deploy_id:
        type: string
      done:
        type: boolean
      error:
        type: string
      id:
        type: string
      sha:
        type: string
    type: object
  buildHook:
    properties:
      branch:
        type: string
      created_at:
        format: dateTime
        type: string
      id:
        type: string
      site_id:
        type: string
      title:
        type: string
      url:
        type: string
    type: object
  buildHookSetup:
    properties:
      branch:
        type: string
      title:
        type: string
    type: object
  buildLogMsg:
    properties:
      error:
        type: boolean
      message:
        type: string
      section:
        enum:
          - initializing
          - building
          - deploying
          - cleanup
          - postprocessing
        type: string
    type: object
  buildSetup:
    properties:
      clear_cache:
        type: boolean
      image:
        type: string
    type: object
  buildStatus:
    properties:
      active:
        type: integer
      build_count:
        type: integer
      enqueued:
        type: integer
      minutes:
        properties:
          current:
            type: integer
          current_average_sec:
            type: integer
          included_minutes:
            type: string
          included_minutes_with_packs:
            type: string
          last_updated_at:
            format: dateTime
            type: string
          period_end_date:
            format: dateTime
            type: string
          period_start_date:
            format: dateTime
            type: string
          previous:
            type: integer
        type: object
      pending_concurrency:
        type: integer
    type: object
  deploy:
    properties:
      admin_url:
        type: string
      branch:
        type: string
      build_id:
        type: string
      commit_ref:
        type: string
      commit_url:
        type: string
      context:
        type: string
      created_at:
        format: dateTime
        type: string
      deploy_ssl_url:
        type: string
      deploy_url:
        type: string
      draft:
        type: boolean
      error_message:
        type: string
      framework:
        type: string
      function_schedules:
        items:
          $ref: "#/definitions/functionSchedule"
        type: array
      id:
        type: string
      locked:
        type: boolean
      name:
        type: string
      published_at:
        format: dateTime
        type: string
      required:
        items:
          type: string
        type: array
      required_functions:
        items:
          type: string
        type: array
      review_id:
        type: number
      review_url:
        type: string
      screenshot_url:
        type: string
      site_capabilities:
        properties:
          large_media_enabled:
            type: boolean
        type: object
      site_id:
        type: string
      skipped:
        type: boolean
      ssl_url:
        type: string
      state:
        type: string
      title:
        type: string
      updated_at:
        format: dateTime
        type: string
      url:
        type: string
      user_id:
        type: string
    type: object
  deployFiles:
    properties:
      async:
        type: boolean
      branch:
        type: string
      draft:
        type: boolean
      files:
        type: object
      framework:
        type: string
      function_schedules:
        items:
          $ref: "#/definitions/functionSchedule"
        type: array
      functions:
        type: object
      functions_config:
        additionalProperties:
          $ref: "#/definitions/functionConfig"
          type: object
        type: object
    type: object
  deployKey:
    properties:
      created_at:
        format: dateTime
        type: string
      id:
        type: string
      public_key:
        type: string
    type: object
  deployedBranch:
    properties:
      deploy_id:
        type: string
      id:
        type: string
      name:
        type: string
      slug:
        type: string
      ssl_url:
        type: string
      url:
        type: string
    type: object
  dnsRecord:
    properties:
      dns_zone_id:
        type: string
      flag:
        type: integer
      hostname:
        type: string
      id:
        type: string
      managed:
        type: boolean
      priority:
        format: int64
        type: integer
      site_id:
        type: string
      tag:
        type: string
      ttl:
        format: int64
        type: integer
      type:
        type: string
      value:
        type: string
    type: object
  dnsRecordCreate:
    properties:
      flag:
        format: int64
        type: integer
      hostname:
        type: string
      port:
        format: int64
        type: integer
      priority:
        format: int64
        type: integer
      tag:
        type: string
      ttl:
        format: int64
        type: integer
      type:
        type: string
      value:
        type: string
      weight:
        format: int64
        type: integer
    type: object
  dnsRecords:
    items:
      $ref: "#/definitions/dnsRecord"
    type: array
  dnsZone:
    properties:
      account_id:
        type: string
      account_name:
        type: string
      account_slug:
        type: string
      created_at:
        format: dateTime
        type: string
      dedicated:
        type: boolean
      dns_servers:
        items:
          type: string
        type: array
      domain:
        type: string
      errors:
        items:
          type: string
        type: array
      id:
        type: string
      ipv6_enabled:
        type: boolean
      name:
        type: string
      records:
        items:
          $ref: "#/definitions/dnsRecord"
        type: array
      site_id:
        type: string
      supported_record_types:
        items:
          type: string
        type: array
      updated_at:
        format: dateTime
        type: string
      user_id:
        type: string
    type: object
  dnsZoneSetup:
    properties:
      account_slug:
        type: string
      name:
        type: string
      site_id:
        type: string
    type: object
  dnsZones:
    items:
      $ref: "#/definitions/dnsZone"
    type: array
  envVar:
    description: Environment variable model definition
    properties:
      key:
        description: The environment variable key, like ALGOLIA_ID (case-sensitive)
        type: string
        x-faker: commerce.productName
      scopes:
        description: The scopes that this environment variable is set to
        items:
          enum:
            - builds
            - functions
            - runtime
            - post-processing
          type: string
        type: array
      updated_at:
        description: The timestamp of when the value was last updated
        format: date-time
        type: string
        x-faker: date.past
      updated_by:
        $ref: "#/definitions/envVarUser"
      values:
        description: An array of Value objects containing values and metadata
        items:
          $ref: "#/definitions/envVarValue"
        type: array
        x-faker: internet.password
    type: object
  envVarUser:
    properties:
      avatar_url:
        description: A URL pointing to the user's avatar
        type: string
        x-faker: internet.avatar
      email:
        description: The user's email address
        type: string
        x-faker: internet.email
      full_name:
        description: The user's full name (first and last)
        type: string
        x-faker: name.findName
      id:
        description: The user's unique identifier
        type: string
        x-faker: datatype.number
    type: object
  envVarValue:
    description: Environment variable value model definition
    properties:
      context:
        description: The deploy context in which this value will be used. `dev` refers to local development when running `netlify dev`.
        enum:
          - all
          - dev
          - branch-deploy
          - deploy-preview
          - production
        type: string
      id:
        description: The environment variable value's universally unique ID
        type: string
        x-faker: datatype.uuid
      value:
        description: The environment variable's unencrypted value
        type: string
        x-faker: internet.password
    type: object
  error:
    properties:
      code:
        format: int64
        type: integer
      message:
        type: string
        x-nullable: false
    required:
      - message
    type: object
  file:
    properties:
      id:
        type: string
      mime_type:
        type: string
      path:
        type: string
      sha:
        type: string
      size:
        format: int64
        type: integer
    type: object
  form:
    properties:
      created_at:
        format: dateTime
        type: string
      fields:
        items:
          type: object
        type: array
      id:
        type: string
      name:
        type: string
      paths:
        items:
          type: string
        type: array
      site_id:
        type: string
      submission_count:
        format: int32
        type: integer
    type: object
  function:
    properties:
      id:
        type: string
      name:
        type: string
      sha:
        type: string
    type: object
  functionConfig:
    properties:
      display_name:
        type: string
      generator:
        type: string
    type: object
  functionSchedule:
    properties:
      cron:
        type: string
      name:
        type: string
    type: object
  hook:
    properties:
      created_at:
        format: dateTime
        type: string
      data:
        type: object
      disabled:
        type: boolean
      event:
        type: string
      id:
        type: string
      site_id:
        type: string
      type:
        type: string
      updated_at:
        format: dateTime
        type: string
    type: object
  hookType:
    properties:
      events:
        items:
          type: string
        type: array
      fields:
        items:
          type: object
        type: array
      name:
        type: string
    type: object
  member:
    properties:
      avatar:
        type: string
      email:
        type: string
      full_name:
        type: string
      id:
        type: string
      role:
        type: string
    type: object
  metadata:
    type: object
  minifyOptions:
    properties:
      bundle:
        type: boolean
      minify:
        type: boolean
    type: object
  paymentMethod:
    properties:
      created_at:
        format: dateTime
        type: string
      data:
        properties:
          card_type:
            type: string
          email:
            type: string
          last4:
            type: string
        type: object
      id:
        type: string
      method_name:
        type: string
      state:
        type: string
      type:
        type: string
      updated_at:
        format: dateTime
        type: string
    type: object
  plugin:
    properties:
      package:
        type: string
      pinned_version:
        type: string
    type: object
  pluginParams:
    properties:
      pinned_version:
        type: string
    type: object
  pluginRun:
    allOf:
      - $ref: "#/definitions/pluginRunData"
      - properties:
          deploy_id:
            type: string
        type: object
  pluginRunData:
    properties:
      package:
        type: string
      reporting_event:
        type: string
      state:
        type: string
      summary:
        type: string
      text:
        type: string
      title:
        type: string
      version:
        type: string
    type: object
  repoInfo:
    properties:
      allowed_branches:
        items:
          type: string
        type: array
      cmd:
        type: string
      deploy_key_id:
        type: string
      dir:
        type: string
      env:
        additionalProperties:
          type: string
        type: object
      functions_dir:
        type: string
      id:
        type: integer
      installation_id:
        type: integer
      private_logs:
        type: boolean
      provider:
        type: string
      public_repo:
        type: boolean
      repo_branch:
        type: string
      repo_path:
        type: string
      repo_url:
        type: string
      stop_builds:
        type: boolean
    type: object
  service:
    properties:
      created_at:
        format: dateTime
        type: string
      description:
        type: string
      environments:
        items:
          type: string
        type: array
      events:
        items:
          type: object
        type: array
      icon:
        type: string
      id:
        type: string
      long_description:
        type: string
      manifest_url:
        type: string
      name:
        type: string
      service_path:
        type: string
      slug:
        type: string
      tags:
        items:
          type: string
        type: array
      updated_at:
        format: dateTime
        type: string
    type: object
  serviceInstance:
    properties:
      auth_url:
        type: string
      config:
        type: object
      created_at:
        format: dateTime
        type: string
      env:
        type: object
      external_attributes:
        type: object
      id:
        type: string
      service_name:
        type: string
      service_path:
        type: string
      service_slug:
        type: string
      snippets:
        items:
          type: object
        type: array
      updated_at:
        format: dateTime
        type: string
      url:
        type: string
    type: object
  site:
    properties:
      account_name:
        type: string
      account_slug:
        type: string
      admin_url:
        type: string
      build_image:
        type: string
      build_settings:
        $ref: "#/definitions/repoInfo"
      capabilities:
        additionalProperties:
          type: object
        type: object
      created_at:
        format: dateTime
        type: string
      custom_domain:
        type: string
      default_hooks_data:
        properties:
          access_token:
            type: string
        type: object
      deploy_hook:
        type: string
      deploy_url:
        type: string
      domain_aliases:
        items:
          type: string
        type: array
      force_ssl:
        type: boolean
      git_provider:
        type: string
      id:
        type: string
      id_domain:
        type: string
      managed_dns:
        type: boolean
      name:
        type: string
      notification_email:
        type: string
      password:
        type: string
      plan:
        type: string
      prerender:
        type: string
      processing_settings:
        properties:
          css:
            $ref: "#/definitions/minifyOptions"
          html:
            properties:
              pretty_urls:
                type: boolean
            type: object
          images:
            properties:
              optimize:
                type: boolean
            type: object
          js:
            $ref: "#/definitions/minifyOptions"
          skip:
            type: boolean
        type: object
      published_deploy:
        $ref: "#/definitions/deploy"
      screenshot_url:
        type: string
      session_id:
        type: string
      ssl:
        type: boolean
      ssl_url:
        type: string
      state:
        type: string
      updated_at:
        format: dateTime
        type: string
      url:
        type: string
      user_id:
        type: string
    type: object
  siteSetup:
    allOf:
      - $ref: "#/definitions/site"
      - properties:
          repo:
            $ref: "#/definitions/repoInfo"
  sniCertificate:
    properties:
      created_at:
        format: dateTime
        type: string
      domains:
        items:
          type: string
        type: array
      expires_at:
        format: dateTime
        type: string
      state:
        type: string
      updated_at:
        format: dateTime
        type: string
    type: object
  snippet:
    properties:
      general:
        type: string
      general_position:
        type: string
      goal:
        type: string
      goal_position:
        type: string
      id:
        format: int32
        type: integer
      site_id:
        type: string
      title:
        type: string
    type: object
  splitTest:
    properties:
      active:
        type: boolean
      branches:
        items:
          type: object
        type: array
      created_at:
        format: dateTime
        type: string
      id:
        type: string
      name:
        type: string
      path:
        type: string
      site_id:
        type: string
      unpublished_at:
        format: dateTime
        type: string
      updated_at:
        format: dateTime
        type: string
    type: object
  splitTestSetup:
    properties:
      branch_tests:
        type: object
    type: object
  splitTests:
    items:
      $ref: "#/definitions/splitTest"
    type: array
  submission:
    properties:
      body:
        type: string
      company:
        type: string
      created_at:
        format: dateTime
        type: string
      data:
        type: object
      email:
        type: string
      first_name:
        type: string
      id:
        type: string
      last_name:
        type: string
      name:
        type: string
      number:
        format: int32
        type: integer
      site_url:
        type: string
      summary:
        type: string
    type: object
  ticket:
    properties:
      authorized:
        type: boolean
      client_id:
        type: string
      created_at:
        format: dateTime
        type: string
      id:
        type: string
    type: object
  user:
    properties:
      affiliate_id:
        type: string
      avatar_url:
        type: string
      created_at:
        format: dateTime
        type: string
      email:
        type: string
      full_name:
        type: string
      id:
        type: string
      last_login:
        format: dateTime
        type: string
      login_providers:
        items:
          type: string
        type: array
      onboarding_progress:
        properties:
          slides:
            type: string
        type: object
      site_count:
        format: int64
        type: integer
      uid:
        type: string
    type: object
x-tagGroups:
  - name: OAuth
    tags:
      - ticket
      - accessToken
  - name: User accounts
    tags:
      - user
      - accountMembership
      - member
      - accountType
      - paymentMethod
      - auditLog
  - name: Site
    tags:
      - site
      - environmentVariables
      - file
      - metadata
      - snippet
  - name: Domain names
    tags:
      - dnsZone
      - sniCertificate
  - name: Deploys
    tags:
      - deploy
      - deployedBranch
      - deployKey
  - name: Builds
    tags:
      - build
      - buildLogMsg
  - name: Webhooks and notifications
    tags:
      - hook
      - hookType
      - buildHook
  - name: Services
    tags:
      - service
      - serviceInstance
  - name: Functions
    tags:
      - function
  - name: Forms
    tags:
      - form
      - submission
  - name: Split tests
    tags:
      - splitTest
  - name: Large media
    tags:
      - asset
      - assetPublicSignature
