Recognyze.AI

Description

Recognyze.AI is a WordPress plugin for publishers who want to protect content, monetize AI usage, and control how agents access their site. Use the dashboard to sign posts in bulk, connect securely to the Recognyze Publisher API, and monitor signed and unsigned access-including Bot Wall blocks and optional Markdown for AI agents.

Key Features

  • Content Protection: Cryptographic signatures that verify authenticity and register content with Recognyze
  • Post Management Dashboard: Overview of recognized, pending, and bulk sign/sync actions
  • AutoRecognyze: Optionally recognize new Posts and Pages automatically on publish (Essentials settings)
  • API Integration: Connect with your Recognyze account; API keys are encrypted at rest (AES-256-GCM when OpenSSL is available)
  • API Key Rotation: Automatic rotation before expiry (14-day buffer), manual “Rotate now”, and visible key ID/expiration in Essentials
  • Bot Wall (Agents & Bot Access): Rules-driven blocking for AI crawlers with per-bot and per-category controls (HTML/Markdown), powered by portal Bot Rules
  • AI Bot Detection: Track signed and unsigned visits, including blocked Bot Wall requests and bot attribution metadata
  • Access Logs: Logging for signed content access with event-based export and retention cleanup
  • Unsigned Access Logs: Track unsigned content access and bot-like traffic separately
  • Bulk Operations: Sign or synchronize many posts at once
  • Encrypted Storage: API keys stored encrypted; Basic Auth credentials used only once to obtain a key and are never saved
  • Export Functionality: Export access logs to Recognyze when batch size or time-based conditions are met
  • Markdown for Agents: Serve content as Markdown via .md URLs or Accept: text/markdown, with Recognyze frontmatter, verify URLs, usage fees in points, and token estimates

Use Cases

  • Content creators who want to protect their intellectual property
  • Publishers who want to monetize AI usage of their content
  • Bloggers who want to track which AI systems access their content
  • News organizations managing content licensing for AI training
  • Any WordPress site owner concerned about AI crawler access

Technical Features

  • Supports multiple post types (posts, pages, and configurable types)
  • RESTful Publisher API integration with optional dev-mode custom endpoint URL
  • API key lifecycle (includes/api-key-rotation.php): metadata sync via GET /account/publisher/api-keys/current/, scheduled and manual PUT rotate
  • Bot Rules cache with daily refresh from the Recognyze portal
  • Optional softmax IP + User-Agent attribution for Bot Wall when portal ipVerification data is available
  • Comprehensive access logging with event-based export and cleanup
  • Scheduled tasks for log cleanup, export, API key metadata sync, and Bot Rules refresh
  • Developer-friendly with hooks and filters (e.g. wprc_api_key_rotation_buffer_days)
  • WordPress Coding Standards compliant
  • Markdown for Agents (includes/markdown-for-agents.php): Content negotiation for text/markdown, YAML frontmatter with Recognyze id, verify_url, usage_fee (points), content_length, markdown_tokens; optional signed-only mode; Link header for alternate type
  • Token estimator (includes/token-estimator.php): In-plugin token count for Markdown body (word/char heuristic), exposed as X-Markdown-Tokens header and in frontmatter

Privacy & Data

This plugin collects access logs that may include IP addresses, user agents, and timestamps.
These logs are stored in your WordPress database and automatically exported and cleaned up based on export conditions (batch size or time interval).
See the Privacy Policy section in Settings for more details.

Support & Documentation

For detailed documentation, API information, and support, visit Recognyze.AI

Privacy Policy

Recognyze.AI collects and stores the following data:

Access Logs: When visitors access your signed content, the plugin may log:
* IP address
* User agent
* Timestamp
* Referrer URL
* Post ID accessed

Unsigned / Bot Wall logs: When enabled, the plugin may also log unsigned visits and Bot Wall blocks (including bot identity metadata where configured).

API key metadata: Key ID, name, status, and expiration date (not the secret) are stored locally to support rotation scheduling.

Storage: All data is stored in your WordPress database on your server.

Retention: Logs are automatically exported and cleaned up from the database based on export conditions (batch size reached or 120-minute fallback interval).
Exported logs are removed immediately after successful export.

Export: If configured, access logs may be exported to external systems via API.

User Rights: Site administrators can manually delete logs at any time from the Access Logs pages.

Third Party Services: When you sign content, metadata is sent to the Recognyze.AI API.
See the Recognyze.AI Privacy Policy for details on how this data is handled.

Support

For support, documentation, and feature requests:

Blocks

This plugin provides 1 block.

  • Wprc Http Post Request

Installation

Automatic Installation

  1. Log in to your WordPress admin panel
  2. Navigate to Plugins > Add New
  3. Search for “Recognyze.AI”
  4. Click “Install Now” and then “Activate”

Manual Installation

  1. Upload the recognyze-client folder to the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. Navigate to Recognyze > Settings to configure the plugin

Initial Setup

  1. Register: Create a publisher account at Recognyze.AI
  2. Connect: Go to Recognyze > Settings > Essentials, click Connect, and sign in with your Recognyze email and password (credentials are not stored; only the API key is saved encrypted)
  3. Optional – Bot Wall: Open Agents & Bot Access to enable Bot Wall and configure bot/category rules
  4. Optional – Export: Configure batch size and fallback interval for automatic access log export
  5. Protect content: Use the Dashboard to sign posts (or enable AutoRecognyze in Essentials)

Requirements

  • WordPress 5.0 or higher
  • PHP 7.0 or higher (7.4+ recommended)
  • OpenSSL PHP extension (required for encryption features)
  • MySQL 5.6 or higher / MariaDB 10.0 or higher

FAQ

What is Recognyze.AI?

Recognyze.AI is a service that helps content creators protect their work and earn from AI usage.
The WordPress plugin integrates your site with the Recognyze platform to track AI access and manage content signatures.

Do I need an API key?

Yes. Register at Recognyze.AI, then connect from Recognyze > Settings > Essentials. The plugin obtains an API key using your account credentials once; only the encrypted API key is stored in WordPress.

Does the plugin rotate API keys automatically?

Yes. After you connect, the plugin syncs key metadata (ID and expiration) and schedules rotation 14 days before expiry. You can also click Rotate now in Essentials at any time. If rotation fails, you will see an admin notice; the plugin does not remove your key unless the API reports it is invalid.

What data does the plugin collect?

The plugin stores access logs in your WordPress database, including IP addresses, user agents, timestamps, and referrer information for content visits. Signed access logs cover successful GET requests to protected content. Unsigned access logs and Bot Wall can record blocked or unsigned visits (including bot attribution metadata when Bot Wall is enabled). Logs may be exported to Recognyze based on your export settings.

What is Bot Wall?

Bot Wall (Agents & Bot Access) lets you block or allow AI crawlers using rules from your Recognyze portal, with per-bot and per-category settings for HTML and Markdown. Blocked visits can be logged in Unsigned Access Logs. Bot Wall is off by default until you enable it in settings.

How do I sign my existing posts?

Go to Recognyze > Dashboard, select the posts you want to sign, and use the bulk sign action.
You can also sign individual posts from the post edit screen or from the dashboard.

What happens if I deactivate the plugin?

If you deactivate the plugin, your content signatures remain in the post metadata but the tracking and protection features will be disabled.
If you uninstall the plugin, all data including signatures, logs, and settings will be removed.

Is my API key stored securely?

Yes. API keys are encrypted with OpenSSL (AES-256-GCM) when the extension is available, then stored in the WordPress options table. Your Recognyze account password is never saved-only used temporarily during Connect to issue the API key.

Can I export my access logs?

Yes, the plugin includes export functionality to send access logs to external systems, provided by recognyze.ai

How often are logs cleaned up?

Logs are automatically exported and cleaned up when export conditions are met: either when the configured batch size is reached OR when the fallback interval (120 minutes) has elapsed since the last export.
Logs are removed from the database immediately after successful export.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Recognyze.AI” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Recognyze.AI” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.3.52

  • New: Proactive Publisher API key rotation – syncs key metadata (ID, expiration), rotates automatically 14 days before expiry, and adds a manual “Rotate now” control in Essentials.
  • Enhancement: Essentials connection panel shows key name, masked key ID, and expiration date.
  • Reliability: Scheduled rotation uses stored key ID with fallback; daily metadata sync for sites with limited WP-Cron.

1.3.51

  • New: Added optional softmax-based IP + User-Agent bot attribution for Bot Wall with per-site weights (alpha, beta) and argmax selection.
  • Enhancement: Agents & Bot Access now shows IP softmax mode status and fallback state when ipVerification data is unavailable.
  • Enhancement: Bot Wall blocked-visit logs now include softmax decision metadata (selected bot, probability, UA/IP match indicators, and decision source).
  • Reliability: When IP softmax is enabled but ipVerification is missing/invalid, Bot Wall automatically falls back to current UA/category policy behavior.
  • Security: With IP softmax enabled and published ipRanges for a bot, UA-only matches no longer grant that bot identity unless the visitor IP is in those ranges (reduces User-Agent spoofing).

1.3.50

  • New: AutoRecognyze in Essentials to automatically recognize published Posts/Pages.
  • Enhancement: Access Logs now support configurable optional file logging.
  • New: Cleanup option added for Unsigned Access Logs.
  • Bot Wall update: improved AI bot classification, Agents & Bot Access tab, and per-bot/category controls (HTML/Markdown).
  • Export/security: blocked visits export as 403 with bot metadata, plus safer JSON override parsing and i18n label cleanup.

1.3.49

  • New: Markdown for Agents — serve content as Markdown for AI agents via .md URLs or Accept: text/markdown on post URLs.
  • New: includes/markdown-for-agents.php — frontmatter (id, registry_date, usage_fee in points, verify_url to Recognyze portal, content_length, markdown_tokens), content negotiation, Link header for alternate type, optional signed-only and log-requests settings.
  • New: includes/token-estimator.php — in-plugin token estimate for Markdown (word/char heuristic), no external deps; exposed as X-Markdown-Tokens header and in frontmatter.
  • Enhancement: Tooltip price display now shows “Price: N points” (e.g. “1000 points”).

1.3.48

  • Fix: recognyze.txt no longer HTML-escapes the content name. The name value was incorrectly passed through esc_html() when serving the recognyze.txt file, causing double quotes to appear as " in the output. Serving now outputs plain text only; download and URL-served recognyze.txt both show correct name=”…” values.

1.3.47

  • Security: WordPress.org compliance — callback return values must be escaped. the_title filter callback wprc_add_icon_to_title now escapes date_i18n() output with esc_html(), sanitizes tooltip fragment with wp_kses_post(), and returns icon/tooltip HTML through wp_kses_post() for safe output.
  • Security: Data must be sanitized before use. Debug log calls no longer pass raw $_POST, $_GET, or $_REQUEST. Added wprc_sanitize_for_debug_log() in utilities; admin.php now logs sanitized copies (and sanitized array_keys for $_REQUEST).
  • Security: Variables must be escaped when echoed. Access logs table pagination now escapes $output at echo time with wp_kses_post() (escape late) in class-wprc-access-logs-table.php.

1.3.46

  • Enhancement: Moved wprc_ensure_admin_footer() to use current_screen hook instead of admin_init for proper screen object availability.

1.3.45

  • Compliance: Added admin opt-in control for “Powered by Recognyze” attribution on protection page.
  • Enhancement: Attribution is now hidden by default and only displays when admin explicitly opts in via settings checkbox.
  • Enhancement: Added “Show attribution” setting in Functionality section of settings page.
  • Fix: Fixed PHP 8.1+ deprecation warning in wprc_sanitize_api_key() function (null parameter handling).
  • Compliance: Now fully compliant with WordPress.org Guideline 12 (attribution requires explicit opt-in).

1.3.44

  • Security: Fixed callback escaping issues for WordPress.org compliance.
  • Security: Added esc_html() to wprc_add_icon_to_title filter callback to escape title parameter.
  • Security: Added sanitize_text_field() and sanitize_html_class() to wprc_http_post_shortcode.
  • Security: Added sanitization to wprc_render_http_post_block attribute extraction.

1.3.43

  • Compliance: Fixed CSS enqueue issue in protection page for WordPress.org compliance.
  • Enhancement: Converted external CSS link to use wp_enqueue_style() in wprc_render_protection_page().
  • Enhancement: Added wprc_enqueue_protection_page_styles() function for proper asset loading.
  • Enhancement: Added wp_head() and wp_footer() hooks to protection page template.

1.3.42

  • Security: Comprehensive output escaping improvements for WordPress.org compliance.
  • Security: Applied esc_html() to pagination display sprintf() results.
  • Security: Replaced () with esc_attr() for all HTML title attributes
  • Security: Replaced () with esc_html() for all text content in HTML tags.

1.3.41

  • Compliance: Improved admin notice behavior to comply with WordPress.org Guideline 11.
  • Enhancement: Limited admin notices to plugin pages and dashboard only (no more notice spam on unrelated pages).
  • Enhancement: Made OpenSSL extension notice dismissible with persistent user preference.
  • Enhancement: Added wprc_should_show_admin_notice() helper function for consistent notice scope checking.
  • UX: Improved admin experience by reducing intrusive notices while maintaining critical error visibility.

1.3.40

  • Fix: Resolved ‘Offloaded Content’ issue by bundling remote assets (logo image).
  • Refactor: Renamed text domain from wp-recognyze-client to recognyze-client.
  • Fix: Added missing text domain to internationalization functions in post-meta.php for WordPress.org compliance.

1.3.39.0

  • Refactor: Renamed admin menu slug wp-manage-objects to wp-recognyze-client.
  • Refactor: Renamed settings page slug wp-manage-objects-settings to recognyze-client-settings.

1.3.38.0

  • Code: Applied WordPress code conventions and style updates across the plugin.
  • Code: Removed unneeded code and aligned with WordPress coding standards.
  • Code: WordPress plug and code conventions update.

1.3.37.0

  • Auth UX: Automatically disconnect and prompt to reconnect when the API key fails (401/403) during sync or connection tests.
  • Auth UX: Added a clear \”Recognyze: Connection lost\” admin notice with a direct \”Reconnect Recognyze\” button.
  • Auth UX: Improved \”Test Connection\” to update connection status when the key is invalid, not just show a warning.
  • Compatibility: When activating this plugin, automatically deactivate any other active \”Recognyze.AI\” plugin instance (old folder) to avoid conflicts.

1.3.36.0

  • Migration: Run migration automatically on plugin update (version check on admin load), not only on activation
  • Migration: Show migration status after update (admin notice with link to Migration Diagnostic)

1.3.35.0

  • Migration: Added admin-only migration diagnostic page for monitoring migration status
  • Migration: Added on-demand migration functionality accessible from diagnostic page
  • Migration: Fixed migration function to correctly handle already-migrated post meta (prevents false error reports)
  • Migration: Improved migration error handling and verification logic
  • Admin: Added migration actions section with force re-run option for administrators

1.3.34.0

  • Code Maintenance: Removed 4 unused/dead functions to improve code quality
  • Code Maintenance: Removed wprc_show_recognyze_url_info (never called)
  • Code Maintenance: Removed wprc_register_unsigned_access_logs_menu (backward compatibility stub)
  • Code Maintenance: Removed wprc_bot_wall_testing_notice (moved to settings, not cleaned up)
  • Code Maintenance: Removed wprc_test_next_export_functions (debug function not in use)

1.3.33.0

  • Security: Fixed all unescaped output issues to meet WordPress.org security standards
  • Security: Added proper escaping to pagination display (absint for integers)
  • Security: Added proper escaping to URLs in sortable column headers (esc_url)
  • Security: Added proper escaping to dashboard metrics (esc_html, absint, esc_attr)
  • Security: Added proper escaping to access log file information display

1.3.31.0

  • Initial public release
  • Content signature management
  • AI bot detection and tracking
  • Access logging with event-based export and cleanup
  • Encrypted credential storage
  • Bulk signing operations
  • Export functionality for logs
  • Comprehensive settings panel
  • WordPress Coding Standards compliance