For the complete documentation index, see llms.txt. This page is also available as Markdown.

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/openbotauth

License

GPLv2 or later

Last updated