Brevo REST Subscribe
WordPress plugin exposing Brevo (Sendinblue) newsletter forms over a versioned REST API — subscribe contacts from headless front-ends, mobile apps and server-to-server integrations, reusing the site's existing Brevo forms, lists, double opt-in and CAPTCHA settings.
★ 0stars
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/aminurislamarnob/brevo-rest-subscribe/archive/refs/heads/main.zipNo built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.
For dev. environment
Run the following command for development environment.
composer update
For production environment
Run the following command for production environment to ignore the dev dependencies.
composer update --no-dev
Coding standards
composer phpcs
composer phpcbf
Project shape
- Bootstrap:
brevo-rest-subscribe.phpguards withABSPATH, definesBREVO_REST_SUBSCRIBE_FILE, loads Composer autoload, exposeswelabs_brevo_rest_subscribe()returningBrevoRestSubscribe::init(). - Namespace:
WeLabs\BrevoRestSubscribe\(PSR-4:includes/percomposer.json). - Core class:
BrevoRestSubscribe—final, singleton viainit(), lightweight container accessed with magic__get. - Classes register their own hooks in their constructor; they are instantiated in
init_classes()oninitpriority 4.
| Class | Responsibility |
|---|---|
Dependencies |
Verifies the Brevo plugin is active and new enough; renders the admin notice. |
SubscribeController |
WP_REST_Controller subclass: routes, schema, permissions. |
SubscriptionService |
Talks to Brevo, mirrors SIB_Manager::signup_process() in a REST-safe way. |
FormRepository |
Read access to Brevo form rows; strips CAPTCHA secrets. |
CaptchaVerifier |
reCAPTCHA / Cloudflare Turnstile verification. |
RateLimiter |
Fixed-window per-client throttle backed by transients. |
Endpoints
POST /wp-json/brevo-rest/v1/subscribe
GET /wp-json/brevo-rest/v1/forms/<id>
OPTIONS /wp-json/brevo-rest/v1/subscribe # generated JSON Schema
API documentation
Frontend integrators (human or agent) should start here:
docs/rest-api.md— the full integration contract: auth, CORS, every field, every error code, attribute and list semantics, CAPTCHA and double opt-in flows, rate limiting, and copy-paste JS/React/cURL examples.docs/openapi.yaml— OpenAPI 3.1 description of the same API, for client generation.
OPTIONS /wp-json/brevo-rest/v1/subscribe returns the live JSON Schema and is
the authoritative source if the two ever disagree.