ZippyKid sites API

The sites API from ZippyKid — 88 operation(s) for sites.

OpenAPI Specification

zippykid-sites-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Pressable API Documentation (v1) account sites API
  version: 1.0.0
  description: The Pressable API is a tool for our customers to create personalized experiences and automate routine tasks. It accepts form-encoded requests and responds with information in a format called JSON. Although this OpenAPI documentation is a part of our resources, it's specially crafted for customers to use machine learning programs to generate documentation, tools or applications. If you're looking for more user friendly instructions and information, we recommend checking out our [main API documentation page](https://my.pressable.com/documentation/api/v1).
  termsOfService: https://pressable.com/legal/
  contact:
    email: help@pressable.com
servers:
- url: https://my.pressable.com/v1
tags:
- name: sites
paths:
  /sites/{site_id}/domains/entri_link:
    post:
      tags:
      - sites
      summary: DNS Wizard Share-Link Handoff
      description: Issues a DNS Wizard share link that an end user follows to point an existing domain at this site. This is the asynchronous companion to the synchronous POST /v1/sites/{site_id}/domains flow — useful when the API caller does not own the domain and needs the actual owner to walk through DNS setup themselves.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: object
                    example:
                      sharable_link: https://app.goentri.com/share/abc123
                      job_id: job_01HXYZ...
                      status: link_created
                      created_at: '2026-05-01T16:30:00Z'
  /sites/{id}/edge-cache:
    get:
      tags:
      - sites
      summary: Edge Cache Status
      description: Get the current status of the edge cache for your site.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: object
                    example:
                      active: true
                      defensive_mode:
                        active: true
                        active_until: 1724951720
    put:
      tags:
      - sites
      summary: Toggle Edge Cache
      description: The ability to toggle edge cache allows you to enable or disable caching of your site's content at edge locations.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
    delete:
      tags:
      - sites
      summary: Purge Edge Cache
      description: Purging edge cache allows you to remove stored content at edge locations, ensuring the delivery of updated or corrected content to users. This is critical when changes are made to your site that need to be reflected immediately.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
  /sites/{id}/edge-cache/defensive-mode:
    put:
      tags:
      - sites
      summary: Edge Cache Defensive Mode
      description: This mode adds an extra layer of protection against spam bots and DDoS attacks. When enabled, it requires visitors' browsers to complete a small task before accessing the site, which helps block malicious traffic. Legitimate users might see a brief challenge page before they can proceed. Edge Cache must be enabled on the site to use this feature.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                duration:
                  type: string
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: object
                    example:
                      id: 500
                      created: '2022-01-31T20:05:33.000Z'
                      accountId: 2
                      clonedFromId: null
                      collaboratorsCount: 1
                      displayName: five hundred site
                      domainsCount: 0
                      ecommerce: false
                      edgeCache: enabled
                      edgeCacheDefensiveMode: true
                      edgeCacheDefensiveModeUntil: 1720625109
                      favorite: false
                      ipAddress: 79.127.25.163
                      ipAddressOne: 79.127.25.163
                      ipAddressTwo: 235.255.236.118
                      name: busy-nose-1d7f431a88
                      state: live
                      url: busy-nose-1d7f431a88.mystagingwebsite.com
                      staging: false
                      sandbox: false
                      sftpDomain: sftp.pressable.com
                      phpVersion: '8.0'
                      wordpressVersion: Current Stable Release (6.2)
                      tags:
                      - id: 354
                        name: Clannad
                      wpEnvironmentType: development
                      lightWeight404: false
  /sites/{site_id}/git:
    get:
      tags:
      - sites
      summary: Get Git Configuration
      description: Return the current git configuration for a site — repository URL, branch, repositorySubdirectory (the directory within the repository to deploy from), destinationPath (the path within the site's document root to deploy into), and whether a token is stored.
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: object
                    example:
                      repository: https://github.com/example/site.git
                      branch: main
                      destinationPath: wp-content
                      repositorySubdirectory: wp-content
                      connected: true
                      hasToken: true
    post:
      tags:
      - sites
      summary: Connect Repository
      description: Attach a GitHub repository to the site and trigger an initial deploy. The site's account must already have a bearer token stored — call POST /sites/{site_id}/git/token first if it does not.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                repository:
                  type: string
                branch:
                  type: string
                destination_path:
                  type: string
                repository_subdirectory:
                  type: string
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Created
                  data:
                    type: object
                    example:
                      repository: https://github.com/example/site.git
                      branch: main
                      destinationPath: wp-content
                      repositorySubdirectory: wp-content
                      connected: true
                      hasToken: true
    put:
      tags:
      - sites
      summary: Update Configuration
      description: Update the connected branch, destination path, or repository subdirectory on a site that is already connected to git. Omitted fields are left unchanged; pass an explicit empty string to destination_path or repository_subdirectory to clear that field.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                branch:
                  type: string
                destination_path:
                  type: string
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: object
                    example:
                      repository: https://github.com/example/site.git
                      branch: develop
                      destinationPath: public
                      repositorySubdirectory: wp-content
                      connected: true
                      hasToken: true
    delete:
      tags:
      - sites
      summary: Disconnect Repository
      description: Disconnect the repository from the site. The stored bearer token is also cleared for this site (use POST /sites/{site_id}/git/token to restore it before reconnecting).
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: object
                    example:
                      disconnected: true
  /sites/{site_id}/git/token:
    post:
      tags:
      - sites
      summary: Store Access Token
      description: Persist a GitHub access token for the site. The token must already be issued by GitHub — Pressable does not exchange OAuth codes on your behalf, and only api.github.com is supported (GitHub Enterprise and other git providers are not). Accepted inputs are a classic Personal Access Token, a fine-grained PAT, or a GitHub OAuth access token (e.g. from a GitHub App installation).
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                token:
                  type: string
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Unprocessable Entity
                  errors:
                    type: array
                    items:
                      type: string
                    example:
                    - This site is not opted in to the new GitHub integration. Enable it in your account settings before using the git API.
    delete:
      tags:
      - sites
      summary: Revoke Access Token
      description: Clear the stored bearer token for the current site only. Sibling sites on the same Pressable account keep their token. Account-wide revocation is not exposed by the API; use the Control Panel UI for that.
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: object
                    example:
                      revoked: true
  /sites/{site_id}/git/branches:
    get:
      tags:
      - sites
      summary: List Branches
      description: Return the branches available on the connected repository. Useful when building a branch picker against a Pressable site.
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: array
                    items:
                      type: string
                    example:
                    - main
                    - develop
                    - feature/new-theme
  /sites/{site_id}/git/deploy:
    post:
      tags:
      - sites
      summary: Trigger Deploy
      description: Queue a deploy of the currently configured branch on the connected repository. The endpoint returns 202 Accepted with the deploy identifier; deploy progress is then asynchronous. Poll GET /sites/{site_id}/git/history (or subscribe to the git_deploy_completed and git_deploy_failed webhooks) for the final state.
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: object
                    example:
                      deploy_id: 4821
                      state: processing
  /sites/{site_id}/git/history:
    get:
      tags:
      - sites
      summary: Deploy History
      description: Return paginated deploy history for the site, newest first. Use this to follow up on a POST /sites/{site_id}/git/deploy call or to inspect deploy outcomes triggered from the UI.
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      - in: query
        name: page
        schema:
          type: integer
      - in: query
        name: per_page
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: array
                    items:
                      type: object
                    example:
                    - id: 4821
                      created: '2026-05-27T12:08:00.000Z'
                      after: 13407c6d
                      before: 9dd0f047
                      branch: main
                      email: user@example.com
                      message: Update theme
                      name: john
                      repository: https://github.com/example/site.git
                      state: deployed
                  page:
                    type: object
                    example:
                      currentPage: 1
                      nextPage: null
                      lastPage: 1
                      perPage: 25
                      totalItems: 1
  /sites/{id}/ondemand-backups:
    get:
      tags:
      - sites
      summary: On-Demand Backup List
      description: Get a list of on-demand backups for the specified site.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: array
                    items:
                      type: object
                    example:
                    - id: '50564'
                      siteId: 50
                      completed: 1682954943
                      status: completed
                      type: db
                      bytes: '9278'
                      requested: 1682954869
                      backupTimestamp: '2023-05-01 15:29:03'
                      createdBy: John Doe (user@example.com)
                      removedIn: 29 days and 21 hours from now
                      deleteAt: 1685546944
                    - id: '505641'
                      siteId: 50
                      completed: 1682954884
                      status: completed
                      type: db
                      bytes: '92786'
                      requested: 1682954863
                      backupTimestamp: '2023-05-01 15:28:04'
                      createdBy: John Doe (user@example.com)
                      removedIn: 6 days and 21 hours from now
                      deleteAt: 1683559744
                    - id: '5053'
                      siteId: 50
                      completed: 1682954644
                      status: completed
                      type: fs
                      bytes: '846297'
                      requested: 1682954625
                      backupTimestamp: '2023-05-01 15:24:04'
                      createdBy: John Doe (user@example.com)
                      removedIn: 6 days and 22 hours from now
                      deleteAt: 1683562925
    post:
      tags:
      - sites
      summary: Create On-Demand Backup
      description: Create an on-demand backup for the specified site.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                backup_type:
                  type: string
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: object
                    example:
                      id: null
                      requestId: 50564
                      siteId: 1223013
                      completed: null
                      status: creating
                      type: fs
                      bytes: null
                      requested: 1682966700
                      backupTimestamp: null
                      createdBy: John Doe (user@example.com)
                      removedIn: 30 days and 0 hours from now
                      deleteAt: 1685558700
  /sites/{site_id}/ondemand-backups/{id}:
    get:
      tags:
      - sites
      summary: Get On-Demand Backup
      description: Get the details for a specific on-demand backup attached to the specified site.
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: object
                    example:
                      id: '50564'
                      siteId: 50
                      completed: 1682954943
                      status: completed
                      type: db
                      bytes: '9278'
                      requested: 1682954869
                      backupTimestamp: '2023-05-01 15:29:03'
                      createdBy: John Doe (user@example.com)
                      removedIn: 29 days and 21 hours from now
                      deleteAt: 1685546944
    delete:
      tags:
      - sites
      summary: Delete On-Demand Backup
      description: Delete a specific on-demand backup attached to the specified site. The status of the site is set to `deleting` and the backup is removed from the site.
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: object
                    example:
                      id: '50564'
                      siteId: 50
                      completed: 1682954943
                      status: deleting
                      type: db
                      bytes: '9278'
                      requested: 1682954869
                      backupTimestamp: '2023-05-01 15:29:03'
                      createdBy: John Doe (user@example.com)
                      removedIn: 29 days and 21 hours from now
                      deleteAt: 1685546944
  /sites/{site_id}/ondemand-backups/{id}/download:
    get:
      tags:
      - sites
      summary: Download On-Demand Backup
      description: Download the specified on-demand backup attached to the specified site.
      parameters:
      - in: path
        name: site_id
        required: true
        schema:
          type: integer
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: string
                  errors:
                    type: array
                    items:
                      type: string
                    example:
                    - string
  /sites/{id}/plugins:
    get:
      tags:
      - sites
      summary: Plugin List
      description: Get a list of plugins for the specified site.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
                  data:
                    type: array
                    items:
                      type: object
                    example:
                    - name: akismet
                      title: Akismet Anti-Spam
                      description: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from spam.
                      status: active
                      update: none
                      version: '5.1'
                      update_version: null
                    - name: jetpack
                      title: Jetpack
                      description: Security, performance, and marketing tools made by WordPress experts.
                      status: active
                      update: version higher than expected
                      version: 12.2-a.9
                      update_version: null
                    - name: jetpack-protect
                      title: Jetpack Protect
                      description: Security tools that keep your site safe and sound, from posts to plugins.
                      status: active
                      update: none
                      version: 1.4.0
                      update_version: null
                    - name: pressable-onepress-login
                      title: Pressable OnePress Login
                      description: Pressable OnePress Login for the MyPressable Control Panel.
                      status: active
                      update: none
                      version: 1.3.1
                      update_version: null
                    - name: quiz-maker
                      title: Quiz Maker
                      description: This plugin allows you make unlimited number of quizes.
                      status: active
                      update: available
                      version: 6.4.2.7
                      update_version: 6.4.3.1
                    - name: advanced-cache.php
                      title: ''
                      description: Advanced caching plugin.
                      status: dropin
                      update: none
                      version: ''
                      update_version: null
                    - name: object-cache.php
                      title: Memcached
                      description: External object cache.
                      status: dropin
                      update: none
                      version: ''
                      update_version: null
    post:
      tags:
      - sites
      summary: Install and Activate Plugins
      description: To enhance your WordPress site, install and activate plugins to add new features, functionality, and customization options effortlessly.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                plugins:
                  type: array
                  items:
                    type: object
                    properties:
                      path:
                        type: string
                      version:
                        type: string
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
    put:
      tags:
      - sites
      summary: Update Plugins
      description: Regularly updating plugins is crucial for WordPress sites to ensure optimal performance, security, and compatibility with the latest features and enhancements.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                plugins:
                  type: array
                  items:
                    type: object
                    properties:
                      path:
                        type: string
                      version:
                        type: string
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
    delete:
      tags:
      - sites
      summary: Delete Plugins
      description: Deleting unnecessary plugins from WordPress sites enhances performance, reduces security risks, and minimizes conflicts, resulting in a streamlined and efficient website environment.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                plugins:
                  type: array
                  items:
                    type: object
                    properties:
                      path:
                        type: string
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
  /sites/{id}/plugins/deactivate:
    put:
      tags:
      - sites
      summary: Deactivate Plugins
      description: Deactivating plugins on WordPress sites allows for troubleshooting, prevents conflicts, and temporarily disables specific functionalities without removing the plugin entirely.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                plugins:
                  type: array
                  items:
                    type: object
                    properties:
                      path:
                        type: string
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Success
  /sites/{id}/plugins/activate:
    put:
      tags:
      - sites
      summary: Activate Plugins
      description: Activating previously deactivated plugins restores desired functionalities, expands features, and re-enables customizations.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                plugins:
                  type: array
                  items:
                    type: object
                    properties:
                      path:
                        type: string
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
           

# --- truncated at 32 KB (195 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/zippykid/refs/heads/main/openapi/zippykid-sites-api-openapi.yml