npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

wporg-api-client

v1.0.1

Published

Node.js client for wordpress.org APIs

Downloads

299

Readme

WpOrg: Node.js Client

WordPress.org Client Library for Node.js

Installation

npm i wporg-api-client

Note: add --save if you are using npm < 5.0.0

This library exposes methods for all the APIs listed here: https://codex.wordpress.org/WordPress.org_API

Examples

Fetch All Plugins List


const { getPluginsList } = require("wporg-api-client");

const fetchPluginsList = async () => {
	let pluginsList = {};

	try {
		pluginsList = await getPluginsList();
		console.log(pluginsList, "pluginsList");
	} catch (error) {
		console.log(error.message, "error");
	}
};

fetchPluginsList();

Get Plugin Downloads Count


const { getPluginDownloads } = require("wporg-api-client")

const fetchPluginDownloads = async (plugin_slug) => {
	let downloadsCount = 0;

	try {
		const apiResponse = await getPluginDownloads(plugin_slug);

		downloadsCount = apiResponse.data

		console.log(downloadsCount, "downloadsCount");
	} catch (error) {
		console.log(error.message, "error");
	}
}

fetchPluginDownloads("contact-form-7")

Table of contents:

  • Core
  • Plugins
  • Themes
  • Others

Note: Params marked with asterisk(*) are required.

Core

  • Get Core Translation

    Available API versions: 1.0

    getCoreTranslations(wp_version, api_version)

    Note: wp_version starts from 4.0

    Usage

    getCoreTranslations('4.9.5')
  • Get Core Version Info

    Available API versions: 1.7

    getCoreVersionInfo(wp_version, locale, api_version)

    Usage

    getCoreVersionInfo('4.0.1', 'eu')
  • Get Core Credit Details

    Available API versions: 1.1

    getCoreCreditDetails(wp_version, locale, api_version)

    Usage

    getCoreCreditDetails('4.0.1', 'eu')
  • Get Core Checksums

    Available API versions: 1.0

    getCoreChecksums(wp_version*, locale, api_version)

    Usage

    getCoreChecksums('5.5.1', 'eu')
  • Get Browser Info

    Available API versions: 1.1

    getBrowserInfo(useragent*)

    Usage

    getBrowserInfo('Chrome/86.0')
  • Get Core Version Stability Info

    Available API versions: 1.0

    getCoreVersionStabilityInfo(wp_version, api_version)

    Usage

    getCoreVersionStabilityInfo() //returns all versions info
    
    
    getCoreVersionStabilityInfo('4.6.20')	//returns specific version info
  • Get Core Statistics

    Available API versions: 1.0

    getCoreStats(api_version)

    Usage

    getCoreStats()

Plugins

  • Filters list

    • search(string): Textual search, using a free-form string

    • tag('string' | 'array'): Return themes with a specified tag or set of tags(array of strings)

    • author(string): WordPress.org username of the author, pass this filter to return plugins authored by them

    • page(number): page number default: 1

    • per_page(number): Plugins to show per page default: 24

    • browse(string): Predefined themes ordering. Possible values are

      • popular: Plugins ordered by popularity
      • featured: Set of featured plugins
      • updated: Recently updated plugins
      • new: Latest plugins
  • Get plugins list

    Available API versions: 1.1, 1.2

    getPluginsList(filters, api_version)

    Usage

    getPluginsList()
    
    getPluginsList({
    	tag: ['photography', 'blue'],
    	browse: 'popular',
    	page: 1,
    	per_page: 10,
    	//... other filters
    })
  • Filter Plugins By

    Available API versions: 1.1, 1.2

    filterPluginsBy(filter_key*, filter_value*, page, per_page, api_version)

    Usage

    filterPluginsBy('search', 'buddypress', 1, 5)
    filterPluginsBy('tag', ['popup', 'slideshow'])
    filterPluginsBy('author', 'wordpressdotorg', 2, 3)
    filterPluginsBy('browse', 'popular')
  • Get Plugins Info

    Available API versions: 1.1, 1.2

    getPluginInfo(plugin_slug, api_version)

    Usage

    getPluginInfo('wordpress-seo');
  • Get Plugin Hot Tags List

    Available API versions: 1.1, 1.2

    getPluginHotTagsList(api_version)

    Note: tags_count is not implemented in the original api yet

    Usage

    getPluginHotTagsList()
  • Get Plugin Translations

    Available API versions: 1.0

    getPluginTranslations(slug, plugin_version, api_version)

    Usage

    getPluginTranslations('classic-editor', '1.5');
  • Get Plugin Downloads

    Available API versions: 1.0

    getPluginDownloads(plugin_slug*, limit, api_version)

    limit: Downloads in last {limit} days

    Usage

    getPluginDownloads('classic-editor', 7)
  • Get Plugin Statistics

    getPluginStats(plugin_slug*, api_version)

    Usage

    getPluginStats('classic-editor')

Themes

  • Filters list

    • search(string): Textual search, using a free-form string

    • tag('string' | 'array'): Return themes with a specified tag or set of tags(array of strings)

    • theme(string): Slug of a specific theme to return

    • author(string): WordPress.org username of the author, pass this filter to return themes authored by them

    • page(number): page number default: 1

    • per_page(number): Themes to show per page default: 24

    • browse(string): Predefined themes ordering. Possible values are

      • popular: Themes ordered by popularity
      • featured: Set of featured themes
      • updated: Recently updated themes
      • new: Latest themes
  • Get Themes List

    Available API versions: 1.1, 1.2

    getThemesList(filters, api_version)

    Usage

    getThemesList()
    
    getThemesList({
    	tag: ['photography', 'blue'],
    	browse: 'popular',
    	page: 1,
    	per_page: 10,
    	//... other filters
    })
  • Filter Themes By

    Available API versions: 1.1, 1.2

    filterThemesBy(filter_key*, filter_value*, page, per_page, api_version)

    Usage

    filterThemesBy('search', 'grid', 1, 15)
    
    filterThemesBy('tag', ['photography', 'blue'])
    
    filterThemesBy('theme', 'gridmag')
    
    filterThemesBy('author', 'wordpressdotorg', 2, 3)
    
    filterThemesBy('browse', 'popular')
  • Get Theme Info

    Available API versions: 1.1, 1.2

    getThemeInfo(theme_slug, api_version)

    Usage

    getThemeInfo('simple-grid')
  • Get Popular Theme Tags

    Available API versions: 1.1, 1.2

    getPopularThemeTags(tags_count, api_version)

    Usage

    getPopularThemeTags()
    
    getPopularThemeTags(5)
  • Get Theme Translations

    Available API versions: 1.0

    getThemeTranslations(theme_slug*, theme_version, api_version)

    Usage:

    getThemeTranslations('grocery-store', '1.0.2')

Events

  • Get Upcoming WordCamps and meetups details, filterable by location.

    • Filters list

      Main Filters

      • location(string):

      • latitude(number | string) and longitude(number | string)

      • ip(string)

      • country(string): Country name

      Filters To Be Used In Conjunction With Others

      • timezone(string)

      • number(number): No of events to show

      • locale(string)

      getEventDetails(params, api_version)

      Usage

      getEventDetails({ country: 'IT' });
      
      getEventDetails({ ip: '136.0.16.1' })
      
      getEventDetails({
      	latitude: '41.900001525879'
      	longitude: '12.479999542236'
      })
      
      getEventDetails({ location: 'Australia' })
      
      getEventDetails({ number:5, location:'Australia' })

Others

  • Get Statistics of Php, MySql and Wordpress

    Available API versions: 1.0

    getStats(type, api_version)

    Usage

    getStats('php')
    
    getStats('mysql')
    
    getStats('wordpress')
  • Generate Secret Key

    Available API versions: 1.1

    generateSecretKey(api_version)

    Usage

    generateSecretKey()
  • List of popular import plugins in the WordPress Plugin Directory used by Tools → Import Screen.

    Available API version: 1.1

    getPopularImportPlugins(api_version)

    Usage

    getPopularImportPlugins()