Skip to content

Plugins ​

The plugins endpoint is used to manage plugins on a WunderUpdates account.

/plugins ​

GET ​

Displays a list of all plugins on the account

Request ​

bash
curl -X GET https://api.wunderupdates.com/v1/plugins \
  -H "x-api-token: YOUR_API_TOKEN"

Response ​

bash
{
  "status": 200,
  "plugins": [
    {
      "license": {
        "type": "static-keys"
      },
      "versions": [],
      "slug": "my-new-plugin"
    }
  ]
}

POST ​

Adds a new plugin to the account.

Request ​

bash
curl -X POST https://api.wunderupdates.com/v1/plugins \
  -H "x-api-token: YOUR_API_TOKEN" \
  -d '{"slug": "my-new-plugin", "license": {"type": "static-keys"}}'

Response ​

bash
{
  "status": 200
  "data": [
    {
      "versions": [],
      "slug": "my-new-plugin",
      "license": {
        "type": "static-keys"
      }
    }
  ]
}

/plugins/$slug ​

The plugins/$slug endpoint is used to manage an individual plugin on a WunderUpdates account.

GET ​

Displays info about a specific plugin, identified by the $slug request parameter.

Request ​

bash
curl -X GET https://api.wunderupdates.com/v1/plugins/my-new-plugin \
  -H "x-api-token: YOUR_API_TOKEN"

Response ​

bash
{
  "status": 200,
  "plugin": {
    "license": {
      "type": "static-keys"
    },
    "versions": [],
    "slug": "my-new-plugin"
  }
}

POST /plugins/$slug/license ​

Replaces the end-user license configuration. The body is the license object.

Request ​

bash
curl -X POST https://api.wunderupdates.com/v1/plugins/my-new-plugin/license \
  -H "x-api-token: YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type": "lemonsqueezy", "products": [12345]}'
Parameters ​

The JSON body is the license configuration:

  • type: The license provider to use. Possible values are static-keys, lemonsqueezy, no-license.
  • products: If the license provider is lemonsqueezy, this is an array of Lemon Squeezy product IDs that can provide license keys for the plugin.

Response ​

bash
{
  "status": 200,
  "plugin": {
    "license": {
      "type": "lemonsqueezy"
      "products": [12345]
    },
    "versions": [],
    "slug": "no-license"
  }
}

DELETE ​

Deletes the plugin identified by the $slug request parameter.

Request ​

bash
curl -X DELETE https://api.wunderupdates.com/v1/plugins/my-new-plugin \
  -H "x-api-token: YOUR_API_TOKEN"

Response ​

bash
{
  "status": 200,
  "message": "Plugin my-new-plugin was deleted"
}

/plugins/$slug/versions ​

The plugins/$slug/versions endpoint is used to manage an versions for a plugin.

GET ​

Displays a list of all versions for a plugin identified by the $slug request parameter.

Request ​

bash
curl -X GET https://api.wunderupdates.com/v1/plugins/my-new-plugin/versions \
  -H "x-api-token: YOUR_API_TOKEN"

Response ​

bash
{
  "status": 200,
  "versions": [
    {
      "file": "my-new-plugin-1.0.0.zip",
      "version": "1.0.0"
    },
    {
      "file": "my-new-plugin-2.0.0-beta.1.zip",
      "version": "2.0.0-beta.1"
    }
  ]
}

POST ​

Adds a new version to the plugin by uploading a zip file containing the plugin. The main PHP entry point file and the readme.txt file are parsed to determine the plugin version and other meta information. If the version can't be determined from these files, the request will fail. The file is saved with the name $slug-$version.zip file name.

If the meta data from the uploaded plugin zip has the same version as an existing version, the newly uploaded file will replace the existing version.

Request ​

bash
curl -X POST https://api.wunderupdates.com/v1/plugins/my-new-plugin/versions \
  -H "x-api-token: YOUR_API_TOKEN" \
  --data-binary @builds/my-new-plugin-2.0.0-beta.2.zip

Response ​

bash
{
  "status": 200,
  "message": "Zip archive uploaded successfully."
}

/plugins/$slug/versions/$version ​

Used to see or delete a specific version of a plugin.

GET ​

See details about a specific version identified by the request parameter $version.

Request ​

bash
curl -X GET https://api.wunderupdates.com/v1/plugins/my-new-plugin/versions/2.0.0-beta.2 \
  -H "x-api-token: YOUR_API_TOKEN"

Response ​

bash
{
  "status": 200,
  "version": {
    "file": "my-new-plugin-1.0.0.zip",
    "version": "1.0.0"
  }
}

DELETE ​

Delete a specific version identified by the request parameter $version.

Request ​

bash
curl -X DELETE https://api.wunderupdates.com/v1/plugins/my-new-plugin/versions/2.0.0-beta.2 \
  -H "x-api-token: YOUR_API_TOKEN"

Response ​

bash
{
  "status": 200,
  "message": "Version 2.0.0-beta.2 of my-new-plugin was deleted."
}