wp_api package
Subpackages
- wp_api.endpoints package
- Submodules
- wp_api.endpoints.base module
- wp_api.endpoints.block_patterns module
- wp_api.endpoints.categories module
- wp_api.endpoints.comments module
- wp_api.endpoints.custom_fields module
- wp_api.endpoints.custom_post_types module
- wp_api.endpoints.media module
- wp_api.endpoints.pages module
- wp_api.endpoints.posts module
- wp_api.endpoints.settings module
- wp_api.endpoints.tags module
- wp_api.endpoints.taxonomies module
- wp_api.endpoints.users module
- Module contents
Submodules
wp_api.auth module
Authentication methods for the WordPress REST API
- class wp_api.auth.BasicAuth(username, password)[source]
Bases:
objectBasic Authentication for WordPress REST API
Note: This method is not recommended for production use unless over HTTPS
- authenticate(session)[source]
Add authentication to session
- Parameters:
session (requests.Session) – The session to authenticate
- Return type:
- class wp_api.auth.ApplicationPasswordAuth(username, app_password)[source]
Bases:
objectApplication Password Authentication for WordPress REST API
This is the recommended authentication method for WordPress 5.6+
- authenticate(session)[source]
Add authentication to session
- Parameters:
session (requests.Session) – The session to authenticate
- Return type:
- class wp_api.auth.OAuth1(consumer_key, consumer_secret, token=None, token_secret=None)[source]
Bases:
objectOAuth1 Authentication for WordPress REST API
- __init__(consumer_key, consumer_secret, token=None, token_secret=None)[source]
Initialize OAuth1 Authentication
- authenticate(session)[source]
Add authentication to session
- Parameters:
session (requests.Session) – The session to authenticate
- Return type:
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:
objectWordPress REST API Client
The main client class for interacting with the WordPress REST API.
- Parameters:
- __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
- discover_endpoints()[source]
Discover available endpoints from the WordPress REST API
- Return type:
- 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:
ExceptionBase class for WordPress REST API errors
- exception wp_api.exceptions.WPAPIAuthError[source]
Bases:
WPAPIErrorAuthentication error with the WordPress REST API
- exception wp_api.exceptions.WPAPIRequestError(message, status_code=None, response=None)[source]
Bases:
WPAPIErrorError making a request to the WordPress REST API
- exception wp_api.exceptions.WPAPIRateLimitError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorRate limiting error from the WordPress REST API
- exception wp_api.exceptions.WPAPINotFoundError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorResource not found error from the WordPress REST API
- exception wp_api.exceptions.WPAPIPermissionError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorPermission denied error from the WordPress REST API
- exception wp_api.exceptions.WPAPIValidationError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorValidation error from the WordPress REST API
- exception wp_api.exceptions.WPAPIBadRequestError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorBad request error from the WordPress REST API
- exception wp_api.exceptions.WPAPIServerError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorServer error from the WordPress REST API
- exception wp_api.exceptions.WPAPITimeoutError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorTimeout error when connecting to the WordPress REST API
- exception wp_api.exceptions.WPAPIConnectionError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorConnection 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:
objectWordPress REST API Client
The main client class for interacting with the WordPress REST API.
- Parameters:
- __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
- discover_endpoints()[source]
Discover available endpoints from the WordPress REST API
- Return type:
- Returns:
Dictionary of available routes/endpoints
- 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
- property posts
Access Posts API endpoints
- 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:
objectBasic Authentication for WordPress REST API
Note: This method is not recommended for production use unless over HTTPS
- authenticate(session)[source]
Add authentication to session
- Parameters:
session (requests.Session) – The session to authenticate
- Return type:
- class wp_api.OAuth1(consumer_key, consumer_secret, token=None, token_secret=None)[source]
Bases:
objectOAuth1 Authentication for WordPress REST API
- __init__(consumer_key, consumer_secret, token=None, token_secret=None)[source]
Initialize OAuth1 Authentication
- authenticate(session)[source]
Add authentication to session
- Parameters:
session (requests.Session) – The session to authenticate
- Return type:
- class wp_api.ApplicationPasswordAuth(username, app_password)[source]
Bases:
objectApplication Password Authentication for WordPress REST API
This is the recommended authentication method for WordPress 5.6+
- authenticate(session)[source]
Add authentication to session
- Parameters:
session (requests.Session) – The session to authenticate
- Return type:
- exception wp_api.WPAPIAuthError[source]
Bases:
WPAPIErrorAuthentication error with the WordPress REST API
- exception wp_api.WPAPIRequestError(message, status_code=None, response=None)[source]
Bases:
WPAPIErrorError making a request to the WordPress REST API
- exception wp_api.WPAPIRateLimitError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorRate limiting error from the WordPress REST API
- exception wp_api.WPAPINotFoundError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorResource not found error from the WordPress REST API
- exception wp_api.WPAPIPermissionError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorPermission denied error from the WordPress REST API
- exception wp_api.WPAPIValidationError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorValidation error from the WordPress REST API
- exception wp_api.WPAPIBadRequestError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorBad request error from the WordPress REST API
- exception wp_api.WPAPIServerError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorServer error from the WordPress REST API
- exception wp_api.WPAPITimeoutError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorTimeout error when connecting to the WordPress REST API
- exception wp_api.WPAPIConnectionError(message, status_code=None, response=None)[source]
Bases:
WPAPIRequestErrorConnection error when connecting to the WordPress REST API