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

  1. Download the plugin from GitHub:

  2. Upload via WordPress Admin:

    • Go to Plugins → Add New → Upload Plugin

    • Choose the wordpress-openbotauth.zip file

    • Click Install Now

    • Click Activate

Option 2: Copy to Plugins Directory

Then activate via WordPress Admin → Plugins.

Configuration

Basic Setup

  1. Go to Settings → OpenBotAuth

  2. Configure the Verifier Service URL:

    Environment
    URL

    Production (hosted)

    https://verifier.openbotauth.org/verify

    Self-hosted

    https://verifier.yourdomain.com/verify

    Local development

    http://localhost:8081/verify

  3. Set Default Policy:

    • Allow - All bots can access content

    • Teaser - Show preview to unverified bots (recommended)

    • Deny - Block unverified bots

  4. Set Teaser Word Count (default: 100)

  5. Click Save Settings

Per-Post Policies

Override the default policy for individual posts:

  1. Edit a post or page

  2. Find the OpenBotAuth Policy meta box in the sidebar

  3. Check Override default policy

  4. Configure:

    • Effect: Allow, Teaser, or Deny

    • Teaser Words: Number of words for preview

    • Price (cents): Require payment (e.g., 500 for $5.00)

  5. Save the post

Advanced Policy Configuration

For advanced policies, edit the Policy JSON directly in settings:

Policy Options

Field
Type
Description

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:

Value
Meaning

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

Modify policy before applying:

Action: openbotauth_verified

Triggered when a bot is verified:

Action: openbotauth_payment_required

Triggered when 402 is returned:

Troubleshooting

Verifier Connection Failed

Error: "Verifier service error: Connection refused"

  1. Check verifier service is running

  2. Verify URL in Settings → OpenBotAuth

  3. Check firewall rules

Teaser Not Showing

  1. Verify policy effect is set to teaser

  2. Ensure teaser_words > 0

  3. Log out of WordPress (logged-in users see full content)

  4. Check X-OBA-Decision header in response

No X-OBA-Decision Header

  1. Ensure you're testing on a singular post/page (not homepage)

  2. Log out of WordPress

  3. Check PHP error logs for verifier connection issues

Source Code

GitHub: OpenBotAuth/openbotautharrow-up-right

License

GPLv2 or later

Last updated