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-key: YOUR_API_KEY"

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-key: YOUR_API_KEY" \
  -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-key: YOUR_API_KEY"

Response ​

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

PUT ​

Updates the plugin identified by the $slug request parameter. Right now, the only thing you can update is the license type.

Request ​

bash
curl -X PUT https://api.wunderupdates.com/v1/plugins/my-new-plugin \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{"license": {"type": "lemonsqueezy", "products": [12345]}}'
Parameters ​

The POSTed JSON object must contain a license object with the following properties:

  • 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-key: YOUR_API_KEY"

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-key: YOUR_API_KEY"

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-key: YOUR_API_KEY" \
  --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-key: YOUR_API_KEY"

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-key: YOUR_API_KEY"

Response ​

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