θ

θfeed API

Send a push notification to a channel, #hashtag, @user or +group. One HTTP call. No app store.

Base URL: https://0feed.pages.dev  ·  Auth header: x-api-token: <token> (or ?api_token=).

Targets

Everything you send to is a target. The prefix picks the type:

fmf — channel (brand, gated send) #news — hashtag (open) @dejan — user (P2P) +ekipa — group (closed)

Send

POST /api/sendto = the target, plus title/body (and optional url, image, priority).

# channel (auth = channel send-token)
curl -X POST https://0feed.pages.dev/api/send \
  -H "x-api-token: CHANNEL_SEND_TOKEN" \
  -H "content-type: application/json" \
  -d '{"to":"fmf","title":"Line-up","body":"Charly added!","url":"https://fmf.rs"}'
# hashtag (auth = any user token) · #tag is open to follow
curl -X POST https://0feed.pages.dev/api/send \
  -H "x-api-token: USER_API_TOKEN" \
  -H "content-type: application/json" \
  -d '{"to":"#news","body":"something happened"}'
# person-to-person (auth = your user token; delivered to @dejan devices)
curl -X POST https://0feed.pages.dev/api/send \
  -H "x-api-token: USER_API_TOKEN" \
  -H "content-type: application/json" \
  -d '{"to":"@dejan","body":"yo"}'
# check subscriber count
curl "https://0feed.pages.dev/api/send?to=fmf" -H "x-api-token: TOKEN"

Optional fields (work on every device): event — a tag; notifications with the same event replace each other and you can filter/mute by it. ttl — seconds the message lives (offline hold + auto-expire from the feed; min 60). idem — idempotency key; the same key won’t be delivered twice within 24h (safe retries). All three also work on /hook/<token> as JSON or query params.

curl -X POST https://0feed.pages.dev/api/send \
  -H "x-api-token: TOKEN" -H "content-type: application/json" \
  -d '{"to":"fmf","body":"gates open","event":"gates","ttl":3600,"idem":"gates-2026-09-19"}'

Incoming webhook

A no-auth URL bound to one target. Point GitHub / CI / cron / monitoring / Zapier / IFTTT at it. Empty body → default text; JSON {title,body,url}; or query params.

# fire from anything
curl "https://0feed.pages.dev/hook/HOOK_TOKEN?title=Deploy&body=build+42+is+live"

curl -X POST https://0feed.pages.dev/hook/HOOK_TOKEN \
  -H "content-type: application/json" \
  -d '{"title":"CI","body":"tests passed","url":"https://ci.example/42"}'

Accounts & P2P

# create an account -> returns your api_token
curl -X POST https://0feed.pages.dev/api/register \
  -H "content-type: application/json" \
  -d '{"username":"dejan","device":"DEVICE_TOKEN"}'

# who am I + what I follow
curl https://0feed.pages.dev/api/me -H "x-api-token: USER_API_TOKEN"

# yo everyone who follows you
curl -X POST https://0feed.pages.dev/api/yoall -H "x-api-token: USER_API_TOKEN" \
  -H "content-type: application/json" -d '{"body":"yo"}'

Follow / unfollow

# a device follows a channel / #hashtag / @user (groups use /join)
curl -X POST https://0feed.pages.dev/api/follows \
  -H "content-type: application/json" \
  -d '{"token":"DEVICE_TOKEN","to":"#news"}'

# DELETE to unfollow · GET ?token= to list
curl "https://0feed.pages.dev/api/follows?token=DEVICE_TOKEN"

Groups

# create (auth = user) -> returns joinToken + joinUrl
curl -X POST https://0feed.pages.dev/api/groups \
  -H "x-api-token: USER_API_TOKEN" \
  -H "content-type: application/json" \
  -d '{"id":"ekipa","name":"Ekipa"}'

# join with the invite token; owner can add/remove members
curl -X POST https://0feed.pages.dev/api/groups/ekipa/join \
  -H "x-api-token: USER_API_TOKEN" \
  -H "content-type: application/json" -d '{"joinToken":"JOIN_TOKEN"}'

# send to the group (auth = member)
curl -X POST https://0feed.pages.dev/api/send \
  -H "x-api-token: USER_API_TOKEN" \
  -H "content-type: application/json" -d '{"to":"+ekipa","body":"we meet at 8"}'

Outgoing webhooks

Register a callback and θfeed POSTs it on events (message, follow, unfollow) — so other systems can "hear" θfeed.

curl -X POST https://0feed.pages.dev/api/webhooks \
  -H "x-api-token: TOKEN" \
  -H "content-type: application/json" \
  -d '{"to":"fmf","url":"https://you.example/hook","events":["message"]}'

# payload θfeed sends you:
# {"event":"message","target":"fmf","type":"ch","id":"fmf","title":"...","body":"...","from":"","ts":...}
EndpointMethodAuth
/api/sendPOST · GETchannel token · user token · member
/hook/<token>GET · POSTnone (token is the secret)
/api/registerPOSTopen
/api/meGETuser
/api/yoallPOSTuser
/api/followsGET · POST · DELETEdevice token
/api/groupsPOSTuser
/api/groups/<id>GETmember
/api/groups/<id>/joinPOSTuser + invite
/api/groups/<id>/membersPOST · DELETEowner
/api/webhooksGET · POST · DELETEowner of target

θfeed — notifications without an app store · home