Skip to main content

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.

See Also