Quick Start
This guide walks you through authenticating and making your first request to WP Engine’s Hosting Platform API.
Prerequisites
Section titled “Prerequisites”Before you begin, you’ll need:
- An understanding of what the Hosting Platform API is
- A WP Engine account with API access enabled.
- API credentials (API User ID and API Password) generated in the WP Engine User Portal on the API Access page.
- A tool to make HTTP requests, such as cURL, Postman, or your preferred programming language.
Authentication
Section titled “Authentication”WP Engine’s Hosting Platform API uses Basic Auth. Credentials are sent as a base64-encoded WPE_API_USER_ID:WPE_API_PASSWORD string in the Authorization header.
Example cURL request:
curl -X GET "https://api.wpengineapi.com/v1/installs?limit=5" \ -u "$WPE_API_USER_ID:$WPE_API_PASSWORD"If successful, the response will look something like this:
{ "count": 1, "results": [ { "id": 12345, "name": "my-wp-site", "account_id": 67890, "created_at": "2024-01-01T12:00:00Z" } ]}Environment Variables (Recommended)
Section titled “Environment Variables (Recommended)”Your API credentials are sensitive. For security, store your credentials in environment variables:
export WPE_API_USER_ID="YOUR_API_USER_ID"export WPE_API_PASSWORD="YOUR_API_PASSWORD"Now you can reference them in code without hardcoding secrets.
Example Requests
Section titled “Example Requests”Here are simple examples in different languages to fetch your installs.
package main
import ( "fmt" "io" "net/http" "os")
func main() { user := os.Getenv("WPE_API_USER_ID") pass := os.Getenv("WPE_API_PASSWORD") url := "https://api.wpengineapi.com/v1/installs?limit=5" req, _ := http.NewRequest("GET", url, nil) req.SetBasicAuth(user, pass) resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body))}const user = process.env.WPE_API_USER_ID;const pass = process.env.WPE_API_PASSWORD;const auth = "Basic " + Buffer.from(`${user}:${pass}`).toString("base64");
const res = await fetch("https://api.wpengineapi.com/v1/installs?limit=5", { headers: { Authorization: auth },});console.log(await res.json());<?php$user = getenv('WPE_API_USER_ID');$pass = getenv('WPE_API_PASSWORD');
$ch = curl_init("https://api.wpengineapi.com/v1/installs?limit=5");curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Basic " . base64_encode("$user:$pass")]);$response = curl_exec($ch);curl_close($ch);echo $response;import os, requestsurl = "https://api.wpengineapi.com/v1/installs?limit=5"resp = requests.get(url, auth=( os.environ['WPE_API_USER_ID'], os.environ['WPE_API_PASSWORD']))print(resp.json())Next Steps
Section titled “Next Steps”You’ve successfully made your first request! From here, you can:
- Explore the API Reference for available endpoints.
- Follow the Tutorial for a deeper walkthrough, including pagination, error handling, and automation.