Simple Points and Rewards

How can we help?

Search the documentation or ask the AI agent anything about the plugin.

REST API endpoints reference

Simple Points and RewardsUpdated October 27, 2026

All REST API endpoints are under https://example.com/wp-json/spar/v1. The API must be switched on first at Points & Rewards › API, Webhooks & AI › REST API. Each endpoint can also be switched off on that tab. To test the API without writing code, import the /openapi description into Postman, Insomnia or a custom GPT.

Who can call each endpoint

  • Store managers are users with the manage_woocommerce capability, such as administrators and shop managers.
  • Customers can call some endpoints, but only for their own account. Asking for another customer returns “Customer not found.”
  • Scope is the scope an API key needs. Application passwords skip scope checks and use the WordPress user’s permissions.

Customer endpoints

MethodEndpointWhat it doesWhoScope
GET/meThe signed-in user, how they signed in, and their points accountAny signed-in userread
GET/customersLists customers. Filter with search, has_points or min_balance. Sort by balance, lifetime, name or registered. 20 per page, up to 100.Store managersread
GET/customers/{id}Balance, lifetime points, status, level, next level and referral linkStore managers, the customerread
GET/customers/{id}/historyPoints history, newest firstStore managers, the customerread
POST/customers/{id}/pointsAdds or removes points. Send points, action (add or remove) and an optional note.Store managerswrite
POST/customers/{id}/balanceSets an exact balance. Lifetime points do not change.Store managerswrite
POST/customers/{id}/statusSets the status to active or bannedStore managerswrite

Rewards, levels and referrals

MethodEndpointWhat it doesWhoScope
GET/levelsLevels, and whether they are based on lifetime points or balanceAny signed-in userread
GET/rewardsRewards with their points cost, and whether the customer can afford each oneAny signed-in userread
POST/rewards/{id}/claimClaims a reward and spends the points. Voucher, custom and store credit rewards only.The customer, or store managers for any customerwrite
GET/vouchersReward vouchers, and whether each is unused, used, expired or inactiveAny signed-in user (own vouchers)read
GET/referrals/statsClicks, conversions, conversion rate and points earned. Store managers also get store-wide figures.Any signed-in userread

Rewards that add a product to the cart cannot be claimed through the API. The customer has to claim them on your site.

Reports and events

MethodEndpointWhat it doesWhoScope
GET/eventsA feed of points changes. Pass after with the last event ID you received to get only newer changes.Store managersread
GET/reports/summaryProgram totals, points liability, outstanding vouchers, top customers and levels. Cached for up to 5 minutes.Store managersread

API management

MethodEndpointWhat it doesWhoScope
GET, POST/keysLists or creates API keys. A new key is only returned once.Store managersmanage
DELETE/keys/{id}Revokes a keyStore managersmanage
GET/openapiThe OpenAPI 3.1 description of every endpointAnyonenone

Pro endpoints

MethodEndpointWhat it doesWhoScope
GET/guestsGuest points by email, pending or migratedStore managersread
GET/pending-pointsPoints waiting out the points delayStore managers, the customerread
GET, POST/webhooksLists or adds webhooksStore managersmanage
PATCH, DELETE/webhooks/{id}Switches a webhook on or off, changes its events, or deletes itStore managersmanage
POST/webhooks/{id}/testSends a test deliveryStore managersmanage
GET/webhooks/eventsLists the events a webhook can sendStore managersread

Example: give a customer points

curl -X POST https://example.com/wp-json/spar/v1/customers/42/points 
  -H "Authorization: Bearer spar_your_api_key" 
  -H "Content-Type: application/json" 
  -d '{"points": 100, "action": "add", "note": "In-store purchase"}'

The response status is applied, or delayed when the points delay (Pro) holds the points back. When you remove points, the amount is capped at the customer’s balance.

Related

Was this article helpful?