wp_api package

Subpackages

Submodules

wp_api.auth module

Authentication methods for the WordPress REST API

class wp_api.auth.BasicAuth(username, password)[source]

Bases: object

Basic Authentication for WordPress REST API

Note: This method is not recommended for production use unless over HTTPS

Parameters:
  • username (str)

  • password (str)

__init__(username, password)[source]

Initialize Basic Authentication

Parameters:
  • username (str) – WordPress username

  • password (str) – WordPress password

authenticate(session)[source]

Add authentication to session

Parameters:

session (requests.Session) – The session to authenticate

Return type:

None

class wp_api.auth.ApplicationPasswordAuth(username, app_password)[source]

Bases: object

Application Password Authentication for WordPress REST API

This is the recommended authentication method for WordPress 5.6+

Parameters:
  • username (str)

  • app_password (str)

__init__(username, app_password)[source]

Initialize Application Password Authentication

Parameters:
  • username (str) – WordPress username

  • app_password (str) – Application password generated in WordPress admin

authenticate(session)[source]

Add authentication to session

Parameters:

session (requests.Session) – The session to authenticate

Return type:

None

class wp_api.auth.OAuth1(consumer_key, consumer_secret, token=None, token_secret=None)[source]

Bases: object

OAuth1 Authentication for WordPress REST API

Parameters:
  • consumer_key (str)

  • consumer_secret (str)

  • token (str | None)

  • token_secret (str | None)

__init__(consumer_key, consumer_secret, token=None, token_secret=None)[source]

Initialize OAuth1 Authentication

Parameters:
  • consumer_key (str) – OAuth consumer key

  • consumer_secret (str) – OAuth consumer secret

  • token (str, optional) – OAuth token

  • token_secret (str, optional) – OAuth token secret

authenticate(session)[source]

Add authentication to session

Parameters:

session (requests.Session) – The session to authenticate

Return type:

None

wp_api.client module

WordPress REST API Client Core client implementation for making requests to the WordPress REST API

class wp_api.client.WPClient(base_url, auth=None, timeout=30, user_agent='Python WordPress REST API Client', verify_ssl=True, retry_count=0, retry_backoff_factor=0.1)[source]

Bases: object

WordPress REST API Client

The main client class for interacting with the WordPress REST API.

Parameters:
  • base_url (str)

  • timeout (int)

  • user_agent (str)

  • verify_ssl (bool)

  • retry_count (int)

  • retry_backoff_factor (float)

__init__(base_url, auth=None, timeout=30, user_agent='Python WordPress REST API Client', verify_ssl=True, retry_count=0, retry_backoff_factor=0.1)[source]

Initialize the WordPress REST API client

Parameters:
  • base_url (str) – The base URL of the WordPress site (e.g., https://example.com)

  • auth – Authentication method (BasicAuth, OAuth1, or ApplicationPasswordAuth)

  • timeout (int) – Request timeout in seconds

  • user_agent (str) – User agent string for the requests

  • verify_ssl (bool) – Whether to verify SSL certificates

  • retry_count (int) – Number of retries for failed requests

  • retry_backoff_factor (float) – Backoff factor for retries

get(endpoint, params=None)[source]

Make a GET request to the API

Parameters:
  • endpoint (str) – API endpoint (relative to base URL)

  • params (dict, optional) – URL parameters to include

Return type:

Union[Dict, List]

Returns:

Response data (dict or list)

post(endpoint, data, params=None)[source]

Make a POST request to the API

Parameters:
  • endpoint (str) – API endpoint (relative to base URL)

  • data (dict) – Data to send in the request body

  • params (dict, optional) – URL parameters to include

Return type:

Dict

Returns:

Response data (dict)

put(endpoint, data, params=None)[source]

Make a PUT request to the API

Parameters:
  • endpoint (str) – API endpoint (relative to base URL)

  • data (dict) – Data to send in the request body

  • params (dict, optional) – URL parameters to include

Return type:

Dict

Returns:

Response data (dict)

delete(endpoint, params=None)[source]

Make a DELETE request to the API

Parameters:
  • endpoint (str) – API endpoint (relative to base URL)

  • params (dict, optional) – URL parameters to include

Return type:

Dict

Returns:

Response data (dict)

discover_endpoints()[source]

Discover available endpoints from the WordPress REST API

Return type:

Dict

Returns:

Dictionary of available routes/endpoints

get_custom_taxonomy(taxonomy)[source]

Get a custom taxonomy endpoint handler

Parameters:

taxonomy (str) – Taxonomy slug (e.g., ‘category’, ‘post_tag’, or custom taxonomy)

Returns:

Terms endpoint handler for the specified taxonomy

get_custom_fields(post_type='posts')[source]

Get a custom fields endpoint handler for a specific post type

Parameters:

post_type (str) – Post type (posts, pages, or custom post type)

Returns:

CustomFields endpoint handler for the specified post type

get_custom_post_type(post_type)[source]

Get a custom post type endpoint handler

Parameters:

post_type (str) – Custom post type slug (e.g., ‘product’, ‘portfolio’, etc.)

Returns:

CustomPostType endpoint handler for the specified post type

property posts

Access Posts API endpoints

property pages

Access Pages API endpoints

property users

Access Users API endpoints

property media

Access Media API endpoints

property categories

Access Categories API endpoints

property tags

Access Tags API endpoints

property comments

Access Comments API endpoints

property taxonomies

Access Taxonomies API endpoints

property settings

Access Settings API endpoints

property block_patterns

Access Block Patterns API endpoints (WordPress 5.8+)

wp_api.exceptions module

Exceptions for WordPress REST API client

exception wp_api.exceptions.WPAPIError[source]

Bases: Exception

Base class for WordPress REST API errors

exception wp_api.exceptions.WPAPIAuthError[source]

Bases: WPAPIError

Authentication error with the WordPress REST API

exception wp_api.exceptions.WPAPIRequestError(message, status_code=None, response=None)[source]

Bases: WPAPIError

Error making a request to the WordPress REST API

exception wp_api.exceptions.WPAPIRateLimitError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Rate limiting error from the WordPress REST API

exception wp_api.exceptions.WPAPINotFoundError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Resource not found error from the WordPress REST API

exception wp_api.exceptions.WPAPIPermissionError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Permission denied error from the WordPress REST API

exception wp_api.exceptions.WPAPIValidationError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Validation error from the WordPress REST API

exception wp_api.exceptions.WPAPIBadRequestError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Bad request error from the WordPress REST API

exception wp_api.exceptions.WPAPIServerError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Server error from the WordPress REST API

exception wp_api.exceptions.WPAPITimeoutError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Timeout error when connecting to the WordPress REST API

exception wp_api.exceptions.WPAPIConnectionError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Connection error when connecting to the WordPress REST API

Module contents

WordPress REST API Python Client

A comprehensive Python library for interacting with the WordPress REST API

Created by innerkore, 2025-04-29 09:15:52

class wp_api.WPClient(base_url, auth=None, timeout=30, user_agent='Python WordPress REST API Client', verify_ssl=True, retry_count=0, retry_backoff_factor=0.1)[source]

Bases: object

WordPress REST API Client

The main client class for interacting with the WordPress REST API.

Parameters:
  • base_url (str)

  • timeout (int)

  • user_agent (str)

  • verify_ssl (bool)

  • retry_count (int)

  • retry_backoff_factor (float)

__init__(base_url, auth=None, timeout=30, user_agent='Python WordPress REST API Client', verify_ssl=True, retry_count=0, retry_backoff_factor=0.1)[source]

Initialize the WordPress REST API client

Parameters:
  • base_url (str) – The base URL of the WordPress site (e.g., https://example.com)

  • auth – Authentication method (BasicAuth, OAuth1, or ApplicationPasswordAuth)

  • timeout (int) – Request timeout in seconds

  • user_agent (str) – User agent string for the requests

  • verify_ssl (bool) – Whether to verify SSL certificates

  • retry_count (int) – Number of retries for failed requests

  • retry_backoff_factor (float) – Backoff factor for retries

property block_patterns

Access Block Patterns API endpoints (WordPress 5.8+)

property categories

Access Categories API endpoints

property comments

Access Comments API endpoints

delete(endpoint, params=None)[source]

Make a DELETE request to the API

Parameters:
  • endpoint (str) – API endpoint (relative to base URL)

  • params (dict, optional) – URL parameters to include

Return type:

Dict

Returns:

Response data (dict)

discover_endpoints()[source]

Discover available endpoints from the WordPress REST API

Return type:

Dict

Returns:

Dictionary of available routes/endpoints

get(endpoint, params=None)[source]

Make a GET request to the API

Parameters:
  • endpoint (str) – API endpoint (relative to base URL)

  • params (dict, optional) – URL parameters to include

Return type:

Union[Dict, List]

Returns:

Response data (dict or list)

get_custom_fields(post_type='posts')[source]

Get a custom fields endpoint handler for a specific post type

Parameters:

post_type (str) – Post type (posts, pages, or custom post type)

Returns:

CustomFields endpoint handler for the specified post type

get_custom_post_type(post_type)[source]

Get a custom post type endpoint handler

Parameters:

post_type (str) – Custom post type slug (e.g., ‘product’, ‘portfolio’, etc.)

Returns:

CustomPostType endpoint handler for the specified post type

get_custom_taxonomy(taxonomy)[source]

Get a custom taxonomy endpoint handler

Parameters:

taxonomy (str) – Taxonomy slug (e.g., ‘category’, ‘post_tag’, or custom taxonomy)

Returns:

Terms endpoint handler for the specified taxonomy

property media

Access Media API endpoints

property pages

Access Pages API endpoints

post(endpoint, data, params=None)[source]

Make a POST request to the API

Parameters:
  • endpoint (str) – API endpoint (relative to base URL)

  • data (dict) – Data to send in the request body

  • params (dict, optional) – URL parameters to include

Return type:

Dict

Returns:

Response data (dict)

property posts

Access Posts API endpoints

put(endpoint, data, params=None)[source]

Make a PUT request to the API

Parameters:
  • endpoint (str) – API endpoint (relative to base URL)

  • data (dict) – Data to send in the request body

  • params (dict, optional) – URL parameters to include

Return type:

Dict

Returns:

Response data (dict)

property settings

Access Settings API endpoints

property tags

Access Tags API endpoints

property taxonomies

Access Taxonomies API endpoints

property users

Access Users API endpoints

class wp_api.BasicAuth(username, password)[source]

Bases: object

Basic Authentication for WordPress REST API

Note: This method is not recommended for production use unless over HTTPS

Parameters:
  • username (str)

  • password (str)

__init__(username, password)[source]

Initialize Basic Authentication

Parameters:
  • username (str) – WordPress username

  • password (str) – WordPress password

authenticate(session)[source]

Add authentication to session

Parameters:

session (requests.Session) – The session to authenticate

Return type:

None

class wp_api.OAuth1(consumer_key, consumer_secret, token=None, token_secret=None)[source]

Bases: object

OAuth1 Authentication for WordPress REST API

Parameters:
  • consumer_key (str)

  • consumer_secret (str)

  • token (str | None)

  • token_secret (str | None)

__init__(consumer_key, consumer_secret, token=None, token_secret=None)[source]

Initialize OAuth1 Authentication

Parameters:
  • consumer_key (str) – OAuth consumer key

  • consumer_secret (str) – OAuth consumer secret

  • token (str, optional) – OAuth token

  • token_secret (str, optional) – OAuth token secret

authenticate(session)[source]

Add authentication to session

Parameters:

session (requests.Session) – The session to authenticate

Return type:

None

class wp_api.ApplicationPasswordAuth(username, app_password)[source]

Bases: object

Application Password Authentication for WordPress REST API

This is the recommended authentication method for WordPress 5.6+

Parameters:
  • username (str)

  • app_password (str)

__init__(username, app_password)[source]

Initialize Application Password Authentication

Parameters:
  • username (str) – WordPress username

  • app_password (str) – Application password generated in WordPress admin

authenticate(session)[source]

Add authentication to session

Parameters:

session (requests.Session) – The session to authenticate

Return type:

None

exception wp_api.WPAPIError[source]

Bases: Exception

Base class for WordPress REST API errors

exception wp_api.WPAPIAuthError[source]

Bases: WPAPIError

Authentication error with the WordPress REST API

exception wp_api.WPAPIRequestError(message, status_code=None, response=None)[source]

Bases: WPAPIError

Error making a request to the WordPress REST API

exception wp_api.WPAPIRateLimitError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Rate limiting error from the WordPress REST API

exception wp_api.WPAPINotFoundError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Resource not found error from the WordPress REST API

exception wp_api.WPAPIPermissionError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Permission denied error from the WordPress REST API

exception wp_api.WPAPIValidationError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Validation error from the WordPress REST API

exception wp_api.WPAPIBadRequestError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Bad request error from the WordPress REST API

exception wp_api.WPAPIServerError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Server error from the WordPress REST API

exception wp_api.WPAPITimeoutError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Timeout error when connecting to the WordPress REST API

exception wp_api.WPAPIConnectionError(message, status_code=None, response=None)[source]

Bases: WPAPIRequestError

Connection error when connecting to the WordPress REST API