/api/push/serverchan/send
Total calls: 0
Send Message
Send a message; it is delivered to WeChat (or any other channel configured in your ServerChan console) through ServerChan.
Required: message title, up to 32 characters, no line breaks
Optional: message content, Markdown supported (paid members' cards can show the full text)
Optional: the message channel for this push; if not selected, the default channel set on the "Channel Config" page of ServerChan is used. To push to two channels at once, pass a combined value separated by | (e.g. 9|66). Channel values: Fangtang WeChat service account=9, WeCom app message=66, WeCom group bot=1, DingTalk group bot=2, Feishu group bot=3, Bark iOS=8, PushDeer=18, official Android client=98, test account=0, custom=88.
Optional: short-link title for the card message
Optional: message tags, separated by |
Optional: WeCom member openids to copy the message to, separated by |
Optional: whether to hide the source IP of this call; when hidden, ServerChan does not record the caller IP.
Optional: when set, desp is end-to-end encrypted before pushing, so the message stays ciphertext on ServerChan / WeChat; the recipient must enter the same password on the message detail page to read it. Share the password out-of-band — this platform does not store it.
- title is at most 32 characters with no line breaks; desp supports Markdown.
- The SendKey is hosted server-side (console Account Management → pick the "ServerChan" platform and put the SendKey in the credential field); callers do not pass it.
- Free ServerChan accounts are limited to 5 messages per day and 50 per minute; when exceeded, the upstream returns an error code (this API reports it as an external service error).
- When the upstream returns a non-zero code, this API returns 40001 with the upstream reason in msg.
- Sending is asynchronous: a successful response only means it was queued. Use the status query endpoint and check wxstatus for actual delivery.
- Passing encrypt_password enables end-to-end encryption: the push log stores the ciphertext, not the plaintext content.
| Field | Type | Description |
|---|---|---|
| pushid | string | Identifier of this push; use it with the status query endpoint |
| readkey | string | Read key used for the status query endpoint and the reading page URL |
| encrypted | bool | Whether this push is end-to-end encrypted (true when encrypt_password was passed) |
{"pushid": "11223344", "readkey": "abcdef123456", "encrypted": false}