Search Plugins
With the Search Plugins endpoint you can use the Ploogins search engine to perform a filtered plugin search. The response contains a list of plugin results, with each plugin's information in a similar format compared with the WordPress standard plugin search API.
https://api.ploogins.com/v1/search
Body Params
The parameters passed to the search
endpoint need to be encoded in a JSON format
Name | Type | Description | Example |
---|---|---|---|
query * | string | The user's query | Should I take an umbrella tomorrow? |
featured_authors | string[] | A list of featured plugin authors name. Featured authors will appear first on the results list | ["Sirvelia", "acirujano"] |
featured_plugins | string[] | A list of featured plugin slugs. Featured plugins will appear first on the results list | ["creame-whatsapp-me", "classic-editor"] |
exclude_plugins | string[] | A list of excluded plugin slugs. Excluded plugins will never appear as a search result | ["classic-widgets"] |
exclude_premium | boolean | If true, premium plugins will be excluded from the plugin searches. Default is true | true |
min_last_updated | string | If set, only results updated at or after the given date will be shown. The date must be in Y-m-d format | "2024-06-24" |
min_active_installs | int | If set, only results with equal or more installs than the given number will be shown | 200 |
min_rating | float | If set, only results with an equal or bigger rating than the given number will be shown. The rating values range from 0 to 5 | 4.5 |
max_rating | float | If set, only results with an equal or less rating than the given number will be shown. The rating values range from 0 to 5 | 4.5 |
min_tested_version | string | If set, only results updated at or after the given WordPress version will be shown | 6.4 |
max_results | number | The number of maximum results to show per query. Defaults to 20 results | 10 |
user_id | number | Optional ID to refer to a user of your platform or service. Defaults to 0 | 3263 |
Request Example
In order to perform a plugin search with the Ploogins API, it is necessary to call the search endpoint using the POST method with, at least, the 'query' parameter
- CURL
- Javascript
- Python
curl --location 'api.ploogins.com/v1/search' \
--header 'Authorization: Bearer YOUR-API-TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"query": "Should I take an umbrella tomorrow?",
"featured_authors": ["David Matthew"],
"featured_plugins": ["weather-in-any-city-widget"],
"exclude_plugins": ["wp-forecast"],
"exclude_premium": false,
"min_last_updated": "2023-01-01",
"min_active_installs": 80,
"min_rating": 0,
"min_tested_version": "6.1",
"max_results": 15,
"user_id": 10
}'
const headers = new Headers();
headers.append("Authorization", "Bearer YOUR-API-TOKEN");
headers.append("Content-Type", "application/json");
const data = JSON.stringify({
"query": "Should I take an umbrella tomorrow?",
"featured_authors": [
"David Matthew"
],
"featured_plugins": [
"weather-in-any-city-widget"
],
"exclude_plugins": [
"wp-forecast"
],
"exclude_premium": false,
"min_last_updated": "2023-01-01",
"min_active_installs": 80,
"min_rating": 0,
"min_tested_version": "6.1",
"max_results": 15,
"user_id": 10
});
const requestOptions = {
method: 'POST',
headers: headers,
body: data,
redirect: 'follow'
};
fetch("api.ploogins.com/v1/search", requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error));
import requests
import json
url = "api.ploogins.com/v1/search"
payload = json.dumps({
"query": "Should I take an umbrella tomorrow?",
"featured_authors": [
"David Matthew"
],
"featured_plugins": [
"weather-in-any-city-widget"
],
"exclude_plugins": [
"wp-forecast"
],
"exclude_premium": False,
"min_last_updated": "2023-01-01",
"min_active_installs": 80,
"min_rating": 0,
"min_tested_version": "6.1",
"max_results": 15,
"user_id": 10
})
headers = {
'Authorization': 'Bearer YOUR-API-TOKEN',
'Content-Type': 'application/json',
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Response Example
{
"total_results": 12,
"search_intent_id": "540e8d3d-9bf7-46fa-beb2-5d4906939413",
"plugins": [
{
"id": 9232,
"slug": "weather-map-widget",
"chunk": 0,
"name": "Ventus – Weather Map Widget & Shortcode",
"description": "<p>Ventus allows you to easily embed the <a href=\"https://www.windy.com\" rel=\"nofollow ugc\">windy.com</a> widget on your website, in the form of a native WordPress widget (accessible from Appearance > Widgets) or as a simple shortcode.</p>\n<p>It is a lightweight plugin built using an object-oriented approach, ...",
"short_description": "Easily customise and embed the windy.com widget as a native WordPress widget or shortcode.",
"active_installs": 3000,
"added": "2019-08-10",
"author": "David Matthew",
"downloads": 20175,
"icon_src": "https://ps.w.org/weather-map-widget/assets/icon.svg?rev=2137405",
"last_updated": "2024-03-20",
"num_ratings": 11,
"rating": 4.9,
"required_php_version": "7.0",
"requires_version": "5.0",
"support_threads": 2,
"support_threads_resolved": 2,
"tags": [
"map",
"weather",
"weather forecast",
"weather map",
"windy"
],
"tested_version": "6.5.5",
"contributors": "David Matthew,Marco Simonetti",
"requires_plugins": [],
"ratings": {
"1": 0,
"2": 0,
"3": 0,
"4": 1,
"5": 10
},
"homepage": "",
"business_model": null,
"repository_url": "",
"blueprints": null,
"wp_directory_status": "published",
"version": "1.5.0",
"author_profile": "https://profiles.wordpress.org/davidmatthew/",
"contributor_profiles": {
"davidmatthew": {
"avatar": "https://secure.gravatar.com/avatar/64a9a7c454931970667f97c9db07940f?s=96&d=monsterid&r=g",
"profile": "https://profiles.wordpress.org/davidmatthew/",
"display_name": "David Matthew"
},
"marcosimonetti": {
"avatar": "https://secure.gravatar.com/avatar/49258ebd3c4b7fa0216426fe710c6eb0?s=96&d=monsterid&r=g",
"profile": "https://profiles.wordpress.org/marcosimonetti/",
"display_name": "Marco Simonetti"
}
},
"support_url": "https://wordpress.org/support/plugin/weather-map-widget/",
"sections": {
"faq": "\n<dt id='why%20is%20the%20map%20showing%20the%20wrong%20location%3F'>\nWhy is the map showing the wrong location?\n</h4>\n<p>\n<p>This can happen sometimes with the shortcode if you wrap the longitude or latitude attributes in the wrong kind of quote marks.</p>\n<p>Mark sure you are using <code>\" \"</code> rather than <code>” ”</code>, e.g.</p>\n<p>Correct: <code>...",
"reviews": "<div class=\"review\">\n\t<div class=\"review-head\">\n\t\t<div class=\"reviewer-info\">\n\t\t\t<div class=\"review-title-section\">\n\t\t\t\t<h4 class=\"review-title\">Nice weather plugin</h4>\n\t\t\t\t<div class=\"star-rating\">...",
"changelog": "<h4>1.5.0</h4>\n<ul>\n<li>Added feature to select different altitude levels (from the surface up to 13.5km).</li>\n<li>Added feature to choose between different forecast models (ecmwf, gfs, iconEu, icon, nems).</li>\n<li>New layer/overlay types: currents and wind gusts.</li>...",
"description": "<p>Ventus allows you to easily embed the <a href=\"https://www.windy.com\" rel=\"nofollow ugc\">windy.com</a> widget on your website, in the form of a native WordPress widget (accessible from Appearance > Widgets) or as a simple shortcode.</p>\n<p>It is a lightweight plugin built using an object-oriented approach, and follows <a href=\"https://github.com/WordPress/WordPress-Coding-Standards\" rel=\"nofollow ugc\">WordPress Coding Standards</a>....",
"screenshots": "<ol><li><a href=\"https://ps.w.org/weather-map-widget/assets/screenshot-1.png?rev=2248450\"><img src=\"https://ps.w.org/weather-map-widget/assets/screenshot-1.png?rev=2248450\" alt=\"The wind layer, zoomed in over the west of Ireland. We talk a lot about the weather here. :)\">..."
},
"download_link": "https://downloads.wordpress.org/plugin/weather-map-widget.zip",
"screenshots": {
"1": {
"src": "https://ps.w.org/weather-map-widget/assets/screenshot-1.png?rev=2248450",
"caption": "The wind layer, zoomed in over the west of Ireland. We talk a lot about the weather here. :)"
},
"2": {
"src": "https://ps.w.org/weather-map-widget/assets/screenshot-2.png?rev=2248450",
"caption": "The temperature layer, zoomed in over São Paulo, Brazil."
},
"3": {
"src": "https://ps.w.org/weather-map-widget/assets/screenshot-3.png?rev=2248450",
"caption": "The CO (carbon monoxide) concentration layer, zoomed in over China."
},
"4": {
"src": "https://ps.w.org/weather-map-widget/assets/screenshot-4.png?rev=2248450",
"caption": "The waves layer, zoomed in over the Atlantic Ocean."
},
"5": {
"src": "https://ps.w.org/weather-map-widget/assets/screenshot-5.png?rev=2248450",
"caption": "The widget view from the admin area (Appearance > Widgets)."
}
},
"stable_tag": "trunk",
"versions": {
"1.1.0": "https://downloads.wordpress.org/plugin/weather-map-widget.1.1.0.zip",
"1.2.0": "https://downloads.wordpress.org/plugin/weather-map-widget.1.2.0.zip",
"1.3.0": "https://downloads.wordpress.org/plugin/weather-map-widget.1.3.0.zip",
"1.4.0": "https://downloads.wordpress.org/plugin/weather-map-widget.1.4.0.zip"
},
"commercial_support_url": "",
"donate_link": "",
"banners": {
"low": "https://ps.w.org/weather-map-widget/assets/banner-772x250.png?rev=2158075",
"high": "https://ps.w.org/weather-map-widget/assets/banner-1544x500.png?rev=2283481"
},
"blocks": [],
"block_assets": [],
"author_block_count": 0,
"author_block_rating": 4.9,
"preview_link": "",
"language_packs": [],
"upgrade_notice": {}
},
...
]
}