WordPress
The OpenBotAuth WordPress plugin enables content owners to control how AI agents and bots access their content using RFC 9421 HTTP Message Signatures.
Features
Signature Verification - Verify bot identity using Ed25519 cryptographic signatures
Content Teasers - Show first N words to unverified bots
Payment Flow - Return 402 Payment Required for premium content
Rate Limiting - Per-agent rate limits to prevent abuse
Access Control - Whitelist/blacklist specific bots
Per-Post Policies - Override default policy on individual posts
Requirements
WordPress 6.0 or higher
PHP 7.4 or higher
Access to OpenBotAuth Verifier Service
Installation
Note: The plugin is currently under review at WordPress.org. For now, use manual installation.
Manual Installation
Option 1: Download and Upload
Download the plugin from GitHub:
Upload via WordPress Admin:
Go to Plugins → Add New → Upload Plugin
Choose the
wordpress-openbotauth.zipfileClick Install Now
Click Activate
Option 2: Copy to Plugins Directory
Then activate via WordPress Admin → Plugins.
Configuration
Basic Setup
Go to Settings → OpenBotAuth
Configure the Verifier Service URL:
EnvironmentURLProduction (hosted)
https://verifier.openbotauth.org/verifySelf-hosted
https://verifier.yourdomain.com/verifyLocal development
http://localhost:8081/verifySet Default Policy:
Allow - All bots can access content
Teaser - Show preview to unverified bots (recommended)
Deny - Block unverified bots
Set Teaser Word Count (default: 100)
Click Save Settings
Per-Post Policies
Override the default policy for individual posts:
Edit a post or page
Find the OpenBotAuth Policy meta box in the sidebar
Check Override default policy
Configure:
Effect: Allow, Teaser, or Deny
Teaser Words: Number of words for preview
Price (cents): Require payment (e.g.,
500for $5.00)
Save the post
Advanced Policy Configuration
For advanced policies, edit the Policy JSON directly in settings:
Policy Options
effect
string
Default action: allow, deny, or teaser
teaser_words
number
Words to show in preview (0 = no teaser)
price_cents
number
Price in cents (0 = free, >0 = 402 response)
currency
string
Currency code (default: USD)
whitelist
array
Bot patterns to always allow
blacklist
array
Bot patterns to always deny
rate_limit.max_requests
number
Max requests per window
rate_limit.window_seconds
number
Time window in seconds
Response Headers
The plugin adds an X-OBA-Decision header to responses:
allow
Bot is verified and allowed full access
teaser
Unverified bot receives preview content
pay
Payment required (402 response)
deny
Bot is denied access (403 response)
rate_limit
Rate limit exceeded (429 response)
Hooks and Filters
Filter: openbotauth_policy
openbotauth_policyModify policy before applying:
Action: openbotauth_verified
openbotauth_verifiedTriggered when a bot is verified:
Action: openbotauth_payment_required
openbotauth_payment_requiredTriggered when 402 is returned:
Troubleshooting
Verifier Connection Failed
Error: "Verifier service error: Connection refused"
Check verifier service is running
Verify URL in Settings → OpenBotAuth
Check firewall rules
Teaser Not Showing
Verify policy effect is set to
teaserEnsure
teaser_words> 0Log out of WordPress (logged-in users see full content)
Check
X-OBA-Decisionheader in response
No X-OBA-Decision Header
Ensure you're testing on a singular post/page (not homepage)
Log out of WordPress
Check PHP error logs for verifier connection issues
Source Code
GitHub: OpenBotAuth/openbotauth
License
GPLv2 or later
Last updated