Search API Connector Documentation
Import WordPress Data to Google Sheets
In this guide, we’ll walk through some examples of how to pull data from the WordPress API directly into Google Sheets, using the API Connector add-on for Sheets. In this article we'll pull in public WordPress data (if you'd like to pull in private data, you'll need the help of an authentication plugin).
Note that this guide refers to WordPress.org, the self-hosted version of WordPress, not WordPress.com.
Contents
- Before You Begin
- Part 1: Pull WordPress API data into Sheets
- Part 2: More Example API URLs
- Part 3: Handle Pagination
- Part 4: API Documentation
Before You Begin
Click here to install the API Connector add-on from the Google Marketplace.
Part 1: Pull WordPress Data into Google Sheets
For this example, we'll get a list of posts from a WordPress site. We'll use Techcrunch for this example, but you can substitute in your own site of interest.
- Open up Google Sheets and click Extensions > API Connector > Open > Create request.
- In the request form enter the following:
- Application:
Custom
- Method:
GET
- Request URL:
https://techcrunch.com/wp-json/wp/v2/posts?per_page=100&context=embed
- Report style:
concatenate
(under Output options)
- Application:
- Create a new tab and click Set current to use that tab as your data destination.
- Name your request and click Run. A moment later you’ll see the latest posts in your sheet.
Note
We've made two adjustments to make the report more compact:
- We've selected the "concatenate" report style
- We've added the
context=embed
parameter. Without it, the API will return the full text of each article, which can produce too much data for Sheets to handle.
Part 2: More Example API URLs
You can experiment with endpoints and query strings as described in the documentation to see other types of WordPress data, but here are some examples to try out.
- categories
https://your-site.com/wp-json/wp/v2/categories
- comments
https://your-site.com/wp-json/wp/v2/comments
- pages
https://your-site.com/wp-json/wp/v2/pages
Part 3: Handle Pagination
The WordPress API limits the number of records returned in each request. By default, only 10 records will be returned unless you paginate through records as described in their documentation. This is why we set the per_page=100
parameter in our first example query above. To get more than 100 records, you need to paginate through records as shown in their documentation.
With API Connector you can do this automatically with pagination handling (paid feature), like this:
- API URL: enter your request URL, including the per_page=100 parameter
- Pagination type:
next page URL
- Field name:
link
- Run until: choose when to stop fetching data
Part 4: API Documentation
Official API documentation: https://developer.wordpress.org/rest-api/reference/
thanks amazing article! is there also a way to import wordpress drafts in gsheets somehow?
thanks
There is a way to get drafts, but since drafts aren’t public, you can only get them with an authenticated request (like using a password).
To authenticate yourself, you can use a plugin like this one: https://wordpress.org/plugins/wp-rest-api-authentication/. It will give you an API key that you can add to your request.
Then you should be able to get drafts with a URL like this:
https://your-site.com/wp-json/wp/v2/posts?status=draft
Hope that helps point you in the right direction, just let me know if I can clarify anything else.