Every vote, reaction and achievement is a share card for link previews and a story for Instagram, from a single API.
Every template produces OG link previews and Instagram-ready story cards, wherever fans share.
No image generation infrastructure. No CDN to configure. No crawler handling to figure out.
Write HTML with
{{variableName}}
placeholders. Inline your styles. We render at 1200×630 (OG) or
1080×1920 (Story) using Satori, a high-performance engine that
supports gradients, custom fonts, and layered layouts. Set
format: "story"
for Instagram-ready 9:16 cards.
One API call with your fan's data. We fill the template, render it asynchronously, and hand you back a short link. Poll once – it's usually ready in under a second.
Post the link on Twitter, WhatsApp, LinkedIn, anywhere. Social crawlers automatically fetch the OG image and render a rich preview card. No extra setup.
When a fan taps the link, they're redirected straight back to your platform. Attribution parameters are automatically appended so you know exactly which share drove each visit.
Pick a template, fill in the variables, get a live share link.
templateId used
for all subsequent operations. Templates are versioned, you
never edit HTML in place, you add a new version.
1200×630 (OG) or
1080×1920 (Story). Use
{{variable}}
tokens. Inline all CSS for fast renders (50–150ms with Satori).
organisationId: "_system"). System templates are always visible to every org.
status: "pending"
immediately. Poll
GET /v1/shares/:id until
status === "ready". The
format field selects which
template format to render:
og (1200×630) or
story (1080×1920). Defaults
to og.
status === "ready".
Inline-CSS templates: 3–5s. Google Fonts: up to ~30s. Once
ready, shareUrl and
renderArtifactId are
populated.
shareUrl returns
404 immediately after deletion.
og:image
or display directly.
Select a fixture above
Open ↗
Built with real Handlebars syntax, rendered by Satori in under 150ms. OG (1200×630) and Story (1080×1920) formats from a single template.
HypeCard exposes a full MCP (Model Context Protocol) endpoint. Point
any Claude or OpenAI-compatible agent at
/mcp
and it can browse templates, generate custom HTML, create shares, and
return preview URLs – no human in the loop.
Everything developers and AI agents need to know about HypeCard.
HypeCard is a REST API and MCP server for generating Open Graph
share-card images on demand. You define an HTML template
(Handlebars, 1200x630 px), create a "share" by passing data into
it, and get back a stable public image URL suitable for
og:image, social previews, and deep-link redirects.
It removes the need to run your own headless browser or image
pipeline for every piece of user-generated social content.
Three steps: (1) create a template with
POST /v1/templates; (2) add an HTML version with
POST /v1/templates/:id/versions; (3) create a share
with POST /v1/shares, passing the template ID, a data
payload, and a destinationUrl. Poll
GET /v1/shares/:id until status is
ready, then read imageUrl for the
rendered card.
Yes. Download the machine-readable spec at
/openapi.yaml
(OpenAPI 3.1). Browse it interactively at
/api-reference
(Redoc). Import into Postman, Insomnia, or any OpenAPI-compatible
tool to get typed request builders and example responses
immediately.
Yes. HypeCard exposes a full MCP server at /mcp
using the Streamable HTTP transport. Claude, Cursor, and any
MCP-compatible agent can call tools like
create_template, create_share, and
get_share_status directly, without you writing any
glue code. Add https://api-dev.hypecard.io/mcp as an
MCP server in your agent's config and call
get_docs for the full reference.
Point your agent at the MCP endpoint. Claude can discover all
available tools by calling get_docs, then chain calls
to design a template, render a share card for a given player or
event, and return the image URL - all in a single conversation
turn. The stateless MCP transport means no session management is
needed on the server side. For sports use cases the DDC skill
renders data-driven lineup cards automatically from a fixture ID.
All mutating endpoints (POST, PATCH,
DELETE) require a Bearer token in the
Authorization header. Public read endpoints (share
page, media URLs, DDC card images) require no auth - the URL
itself is the capability grant. MCP tool calls follow the same
rule: create_share needs a token,
get_share_status does not. Tokens are scoped per
organisation.
The default Satori renderer produces a JPEG in roughly 50-150 ms
warm. Cards are cached with
Cache-Control: public, max-age=300 at the CloudFront
edge, so repeat requests are served in single-digit milliseconds.
The same stable URL always returns the latest rendered card - you
can embed it in an og:image tag and let CDN caching
handle scale. For video cards, the Remotion renderer is available
but runs asynchronously (~35 s).
Templates are authored at 1200x630 px - the standard Open Graph
image size. Renders are returned as JPEG by default. The
/m/:shareId/story endpoint serves a 1080x1920
portrait crop for Stories/Reels. A 300x157 thumbnail is available
at /m/:shareId/thumbnail. Video cards are MP4 at
1200x630 (H.264) via the Remotion worker.
DDC is a server-side render pipeline for sports data cards. Given
an org slug and a fixture ID,
GET /ddc/{orgSlug}/lineup/{fixtureId}.jpg fetches
live lineup data from Opta or SportMonks, renders a full 1080x1920
lineup card via Satori, and returns a cacheable JPEG - no template
authoring needed. A Monterosa Studio External Data Source endpoint
(POST /ddc/lineup/source) lets Studio editors browse
and select lineup cards without knowing fixture IDs upfront. DDC
cards refresh automatically when the confirmed lineup is
announced.
Yes. The interactive test harness at
/test.html lets you create
templates, render shares, and call DDC endpoints against the live
dev environment directly in the browser - no account required. A
demo API key with rate-limited credits is available
via GET /config/demo for quick exploration. The
OpenAPI spec at /api-reference also includes
try-it-out support for read endpoints.