Update Endpoints Open portal →

Integrate Update

Pull your moderated live updates into any website or app with a read-only API key. No SDK, no build step — one script tag or a few HTTP calls.

Get started in 4 steps

  1. Create your organization. Sign up at the portal — no approval needed.
  2. Create an event. You get a shareable #CODE that contributors post to via Telegram/email/web/the Update app.
  3. Create a public API key. Under API keys → copy the upd_… value (shown once). It is read-only.
  4. Embed. Drop the widget below into a page, or generate a full themed reader page under Reader theme.

Authentication

Every request needs your public key, sent either as a header or a query parameter. Public keys are read-only — safe to ship in a browser (and the generated update.php reader keeps it fully server-side if you prefer).

X-API-Key: upd_your_public_key
— or —
?key=upd_your_public_key

Quick embed (widget)

Renders a live, auto-updating feed inside an existing page. Replace YOUR_EVENT_CODE and YOUR_PUBLIC_KEY:

<script src="https://api.updateapp.co/public/events/YOUR_EVENT_CODE/widget.js?key=YOUR_PUBLIC_KEY"></script>
Want a whole page instead of a widget? In the portal → Reader theme → Generate → update.php gives you a branded, ready-to-host reader that hides your key on the server.

On WordPress

Skip copy/pasting code entirely with the official Update Feed plugin — a Page Template gives you the full reader experience (sign-in, posting, follow, notifications) with your key entered once, plus an [update_feed] shortcode for the lighter teaser embed above.

  1. Download the plugin (.zip)
  2. In your WordPress admin: Plugins → Add New → Upload Plugin, choose the file, Install Now, then Activate.
  3. Create a Page, and under Page Attributes → Template choose Update Reader (Full Page). Paste your public key once in the template's settings.
Not yet in the WordPress.org plugin directory — for now, install via the zip above rather than searching for it from your WP admin's Plugins → Add New screen.

Add a "Live Update" link to your nav

Point an existing nav menu item at your hosted update.php/update.html reader page, with the same pulsing red "live" dot used throughout Update's own UI.

<a href="/update.php" class="live-update-link">
  <span class="live-dot"></span> Live Update
</a>
.live-update-link{
  display:inline-flex;align-items:center;gap:7px;
  font-weight:700;text-decoration:none;color:inherit;
}
.live-dot{
  width:8px;height:8px;border-radius:50%;background:#e5484d;
  position:relative;flex:none;
}
.live-dot::after{
  content:"";position:absolute;inset:-5px;border-radius:50%;
  border:2px solid #e5484d;opacity:.6;
  animation:livePulse 1.6s infinite;
}
@keyframes livePulse{
  0%{transform:scale(.6);opacity:.7}
  100%{transform:scale(1.8);opacity:0}
}

Swap /update.php for wherever you actually hosted the file, and drop the CSS into your site's stylesheet (or a <style> tag).

Site typeWhere it goes
Plain static HTMLThe <a> as a new <li> next to your other nav links; the CSS in your main stylesheet or <head>.
WordPress (no plugin)Appearance → Menus → add a Custom Link (URL # as a placeholder is fine), then use Appearance → Customize → Additional CSS for the styles. Injecting the live-dot span into the menu label itself usually needs a small snippet plugin, since the core menu editor only accepts plain text for a link's label.
Update Feed WordPress pluginNot needed here — this nav link is separate from the plugin's page template/shortcode (see "On WordPress" above), just a plain link to the page you already built with it.
A JS framework (React/Vue/etc.)The template/JSX equivalent of the markup above, wherever your other nav items are rendered; CSS in your global stylesheet or that component's style block.
This is just a link + a CSS dot — no API key or script tag needed, since update.php already carries your key server-side (see "Quick embed" above).

Public endpoints

Base URL: https://api.updateapp.co. Responses are JSON: { ok, data } on success, { ok:false, error } on failure.

MethodPathReturns
GET/public/eventsYour events
GET/public/events/{code}Event meta + branding
GET/public/events/{code}/updatesApproved updates feed
GET/public/events/{code}/streamLive stream (SSE)
GET/public/events/{code}/voicesTop contributors
GET/public/events/{code}/topTop moments
POST/public/updates/{id}/likeLike an update
POST/public/events/{code}/followFollow an event
GET/public/updates/{id}/repliesReplies on an update
POST/public/updates/{id}/replyPost a reply (reader sign-in)
POST/public/events/{code}/postReader posts an update (reader sign-in)
Reader sign-in. Posting and replying need a contributor token — readers sign in on your site with an email code or Google/Facebook (/auth/reader/*, /auth/oauth/*). OAuth only returns readers to approved origins: propose yours in the portal under API keys → Reader OAuth return origins, and a platform admin approves it before it works.

Example

curl "https://api.updateapp.co/public/events/NGR2027/updates?limit=10" \
  -H "X-API-Key: upd_your_public_key"
{
  "ok": true,
  "data": {
    "updates": [
      { "id": 42, "author": "Ada Obi", "text": "Doors are open…",
        "media_type": "image", "media_url": "https://…", "likes": 24,
        "submitted_at": "2027-05-01T09:12:00Z" }
    ]
  }
}