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."
}