Publish, schedule, unschedule or archive a news item
Partner key only. action is required (an empty body never publishes): publish (draft or scheduled → published; the recipients are locked, and owners are emailed when sendEmail is true), schedule (draft → scheduled at scheduledAt, in the future with a time zone), unschedule (scheduled → draft) or archive (published → archived). The news reaches real restaurants and their owners. Publishing and scheduling need someone to send to now and count in the send bucket (10 per day per partner, shared with LettBestilt Partner). Through LettBestilt MCP with a LIVE key, publish and schedule give 403 HUMAN_REQUIRED: a person publishes news to real restaurants. Bound to the key’s environment: a TEST key only reaches news whose recipients are all sandboxes (never audienceAll); a LIVE key reaches all news that is not bound to TEST (including audienceAll news, which on publishing is locked to the sandboxes as well). Needs a key created by an owner or administrator. Changes count in the partner’s bucket of 60 per 10 minutes (shared with LettBestilt Partner). Every change is logged with ids and field names, never the text.
Authentication
The partner key (lbp_test_… or lbp_live_…), sent as Authorization: Bearer lbp_… and created in LettBestilt Partner under Partner key. It belongs to the whole partner, not to a restaurant, and only works against /api/v1/partner. Server to server only: a request with an Origin header is rejected with 403 FORBIDDEN, and the key must never be in a browser. A TEST key sees and creates only sandboxes; LIVE keys work once LettBestilt Partner is open. A suspended or archived partner, a revoked key and a restaurant key (lbs_…) here give 401 UNAUTHORIZED; an expired key gives 401 KEY_EXPIRED.
Path parameters
The news item’s id from GET /news or POST /news.
Request
Required: an empty body never publishes.
Required for schedule; in the future, with a time zone.

