Tours REST API
Product tours are the guided walkthroughs shown in the Benecaster admin. The REST surface is a single endpoint for marking one completed.
Completion is tracked per admin user, not per site — dismissing a tour on your own account has no effect on anyone else’s.
POST /tours/{id}/complete
Marks a product tour as completed for the current user.
Auth: Cookie + nonce. Any logged-in user with the read capability — this is not restricted to administrators, because tours are shown to whoever is using the admin.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
id |
path | string | Tour identifier, e.g. overview |
Body: none required.
Response — 200
{
"tour_id": "overview",
"completed_at": "2026-06-21T14:23:00Z"
}
completed_at is UTC, ISO 8601.
Errors
| Code | HTTP | When |
|---|---|---|
benecaster_tour_not_found |
404 | {id} does not match a registered tour |
Idempotency
Re-submitting for a tour already completed returns 200, not an error — and the original completed_at is preserved rather than overwritten.
This matters if you’re driving the endpoint from a front-end that might fire twice: a double submission is harmless, and the first completion time remains the true one. Don’t treat a repeat call as a failure, and don’t rely on completed_at changing to detect that a call succeeded.
Notes for Add-on Developers
There is no endpoint to un-complete a tour or to read completion state. Completion is write-once per user per tour.
If you need to re-show a tour during development, clear the stored completion state directly rather than looking for an API to reset it.