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
- Create your organization. Sign up at the portal — no approval needed.
- Create an event. You get a shareable #CODE that contributors post to via Telegram/email/web/the Update app.
- Create a public API key. Under API keys → copy the upd_… value (shown once). It is read-only.
- 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>
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.
- Download the plugin (.zip)
- In your WordPress admin: Plugins → Add New → Upload Plugin, choose the file, Install Now, then Activate.
- Create a Page, and under Page Attributes → Template choose Update Reader (Full Page). Paste your public key once in the template's settings.
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 type | Where it goes |
|---|---|
| Plain static HTML | The <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 plugin | Not 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. |
Public endpoints
Base URL: https://api.updateapp.co. Responses are JSON: { ok, data } on success, { ok:false, error } on failure.
| Method | Path | Returns |
|---|---|---|
| GET | /public/events | Your events |
| GET | /public/events/{code} | Event meta + branding |
| GET | /public/events/{code}/updates | Approved updates feed |
| GET | /public/events/{code}/stream | Live stream (SSE) |
| GET | /public/events/{code}/voices | Top contributors |
| GET | /public/events/{code}/top | Top moments |
| POST | /public/updates/{id}/like | Like an update |
| POST | /public/events/{code}/follow | Follow an event |
| GET | /public/updates/{id}/replies | Replies on an update |
| POST | /public/updates/{id}/reply | Post a reply (reader sign-in) |
| POST | /public/events/{code}/post | Reader posts an update (reader sign-in) |
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" }
]
}
}