Thanks…
The error was:
Request body was not parsable. Attempted Content-Type: "application/json"
Got standard chat messages to work by sending it stringified:
body: JSON.stringify({ text: message })
As far as /chat/pinned not being a valid end-point; has that functionality been removed, or changed since the article I mentioned in the original post?