One request.Straight to your phone.
CE Notify turns a LINE chat into an endpoint you can POST to. A deploy that finished, a backup that did not, a sensor over temperature at three in the morning — if it can make an HTTP request, it can reach you where you actually read messages.
curl -X POST https://v2.chateverywhere.app/api/line/notify \
-H "Authorization: Bearer $CE_NOTIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"message": "Deploy finished"}'Add CE Notify on LINE
Tap the button, or search LINE for the ID below. It is a separate account from the @cebot assistant — this one only delivers your notifications.
Send it your email address
It replies with a verification link. Clicking it connects the chat to your Chat Everywhere account.
Ask it for your token
It answers with your endpoint, your token, and this month’s usage. That is the whole setup.
@973femacThe token arrives in the chat
CE Notify API
Push messages to your LINE from anywhere
There is no dashboard and no key management screen. Ask the CE Notify chat for your token and it sends back a card with everything you need to paste into your code.
One token per account
Asking again shows you the same token rather than piling up credentials you then have to keep track of.
Treat it like a password
Anyone holding it can send messages to your LINE. Keep it in an environment variable, not in the repository.
Messages land in the CE Notify chat
Not in your assistant thread — so alerts from a noisy cron job never bury a conversation.
One POST, and that is the integration
curl -X POST https://v2.chateverywhere.app/api/line/notify \
-H "Authorization: Bearer $CE_NOTIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"message": "Deploy finished"}'{
"success": true,
"quota": {
"used": 13,
"limit": 100,
"remaining": 87,
"daysUntilReset": 19
}
}curl "https://v2.chateverywhere.app/api/line/notify\
?token=$CE_NOTIFY_TOKEN&message=Deploy+finished"Send the token as a bearer header and the text as JSON. There is no SDK to install, no webhook to register, and nothing to run on your side.
POST with a bearer token
Authorization: Bearer <token>, Content-Type: application/json, and a body with a message field.
Or GET, if that is all you have
Pass token and message as query parameters. Useful for hardware and webhook boxes that only speak GET — but the token ends up in URLs and logs, so prefer POST where you can.
Up to 5,000 characters
Longer than that comes back as a 400 rather than being silently cut.
The reply tells you your quota
A successful send returns how many you have used, your limit, what is left, and the days until it resets.
Send markdown and it arrives formatted
{
"message": "# Alert\n**Temperature** 42°C\n- Living Room",
"markdown": true
}Plain text is the default. Add "markdown": true and the message is rendered into a formatted LINE card instead — headings, bold, code and lists come out looking like something worth reading at three in the morning.
Headings, bold, italics, code
The usual markdown, turned into a laid-out card rather than a wall of asterisks.
Lists for the details
Which host, which job, which threshold — a bulleted list survives being read on a lock screen.
Leave it off for the simple ones
Without the flag it is a plain text message, which is right for a one-liner.
What comes back when it does not work
Every response is JSON and every failure has a status worth branching on. The one to plan for is 429: there is a monthly cap, and a job that retries in a loop will find it.
100 messages a month
Counted per account and reset on the first of the month, Taipei time. The days remaining come back with every successful send.
401Token missing or invalid
No Authorization header, a malformed one, or a token that is not valid.
400Something wrong with the message
Empty, missing, over 5,000 characters, invalid JSON — or the LINE account is not linked yet.
429Out of messages for this month
The monthly cap. Nothing is sent, and the attempt does not count against you.
500LINE would not take it
Delivery failed on LINE’s side. The reserved message is released, so it costs you nothing.
Or paste this and let your coding agent do all of it
Help me add LINE notifications to this project using CE Notify.
Walk me through it one step at a time and wait for me at each step.
Step 1 — Add the LINE account
Tell me to open https://line.me/R/ti/p/@973femac and add it,
or to search LINE for @973femac. Wait until I say it is done.
Step 2 — Link my accountSkip the rest of this page. Hand this block to Claude Code, Cursor, Copilot or ChatGPT inside the project you want notified, and it walks you through the whole thing — adding the LINE account, verifying your email, getting the token, and writing the code.
It walks you through getting the token
Add the account, send your email, click the verification link, ask for the token. The agent prompts you one step at a time and waits for you at each one.
It tells you where to put the token
Into your environment as CE_NOTIFY_TOKEN, not into the chat — and it checks your .env files are gitignored before moving on.
It asks where the notification belongs
It is already sitting in your project, so it can look around and suggest where the call should go if you are not sure.
Then it writes it
The whole API is in the block, so it does not have to go and look anything up. One HTTP call in the language you already use — no SDK, no dependency, no service to run.
What people point at it
Things worth interrupting yourself for
- A deploy finished, or failed
- A backup did not run last night
- A sensor went over temperature
- A payment came in
- A scraper found the thing you were waiting for
- A long job finally ended
It is one request away.
Add the account, verify your email, ask for the token. The first message takes about a minute.
https://v2.chateverywhere.app/api/line/notify
Get in touch.
Tell us about your school or team and we will get back to you.
