Skills snapog
Generate social images and OG cards from professional templates via the SnapOG API. One API call = one pixel-perfect PNG.
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/beameasy/snapog" ~/.claude/skills/clawdbot-skills-snapog && rm -rf "$T"
skills/beameasy/snapog/SKILL.mdSnapOG — Social Image Generation
Generate OG images, social cards, and marketing visuals from professionally designed templates. Returns pixel-perfect PNGs in under 100ms.
API Base:
https://api.snapog.dev
Authentication
All generation requests require a Bearer token. The API key is read from the
SNAPOG_API_KEY environment variable.
Authorization: Bearer $SNAPOG_API_KEY
Preview and template listing endpoints work without authentication.
Available Templates
| Template | ID | Best For |
|---|---|---|
| Blog Post | | Blog articles, tutorials, documentation |
| Announcement | | Product launches, updates, releases |
| Stats Card | | Metrics dashboards, quarterly results |
| Quote | | Testimonials, pull quotes, social shares |
| Product Card | | SaaS products, pricing, features |
| GitHub Repo | | Open source projects, repo cards |
| Event | | Conferences, meetups, webinars |
| Changelog | | Release notes, version updates |
| Brand Card | | Company pages, docs, marketing |
| Photo Hero | | Blog headers, news, portfolios |
Core Workflows
1. List templates and discover parameters
curl https://api.snapog.dev/v1/templates
Returns all templates with their
paramSchema (parameter names, types, required fields, defaults). Always call this first if the user hasn't specified a template.
2. Generate an image (POST)
Use this for downloading images or advanced options:
curl -X POST https://api.snapog.dev/v1/generate \ -H "Authorization: Bearer $SNAPOG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "template": "blog-post", "params": { "title": "Building with MCP", "author": "Taylor", "tags": ["AI", "Tools"], "accentColor": "#6366f1" } }' \ --output og-image.png
POST body fields:
(string, required) — template IDtemplate
(object, required) — template parametersparams
(number) — image width in pixels (default: 1200)width
(number) — image height in pixels (default: 630)height
("png" | "svg" | "pdf") — output format (default: png)format
(string) — any Google Font family namefontFamily
(string) — URL to POST when generation completeswebhook_url
Save the response body directly to a
.png file. The response Content-Type is image/png.
3. Generate via URL (GET)
Use this when the user needs a URL to embed in HTML meta tags, markdown, or anywhere an image URL is needed:
https://api.snapog.dev/v1/og/blog-post?title=Building+with+MCP&author=Taylor&tags=AI,Tools
This URL itself serves the image. Parameters are query strings. Requires
Authorization header or a signed URL.
4. Preview a template (no auth needed)
curl https://api.snapog.dev/v1/preview/blog-post --output preview.png
Renders the template with its default parameters. Useful for showing the user what a template looks like before customizing.
5. Create a signed URL (for meta tags)
Signed URLs let you embed images in
<meta> tags without exposing the API key:
curl -X POST https://api.snapog.dev/v1/sign \ -H "Authorization: Bearer $SNAPOG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "template": "blog-post", "params": { "title": "My Post" }, "expiresIn": 86400 }'
Returns
{ "url": "https://api.snapog.dev/v1/og/blog-post?title=...&token=..." }. This URL works without authentication and can be placed directly in HTML:
<meta property="og:image" content="SIGNED_URL_HERE" />
6. Batch generate (multiple sizes)
Generate the same image in multiple sizes at once:
curl -X POST https://api.snapog.dev/v1/batch \ -H "Authorization: Bearer $SNAPOG_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "template": "blog-post", "params": { "title": "My Post" }, "sizes": ["og", "twitter", "farcaster", "instagram-square"] }'
Size presets:
og (1200x630), twitter (1200x628), farcaster (1200x800), instagram-square (1080x1080), instagram-story (1080x1920), linkedin (1200x627), facebook (1200x630), pinterest (1000x1500).
Common Parameters
Most templates accept these shared parameters:
(string, required) — main headingtitle
(color) — theme color, e.g.accentColor#6366f1
(url) — logo image URLlogo
(string) — any Google Font, e.g.fontFamily"Space Grotesk"
Each template has additional specific parameters. Call
/v1/templates to see the full schema for any template.
Tips
- Choosing a template: Match the content type —
for articles,blog-post
for launches,announcement
for OSS projects,github-repo
for metrics,stats
for testimonials.quote - Colors: Pass hex colors like
. Most templates support#6366f1
for theming.accentColor - Arrays: For
andtags
, pass as JSON arrays:changes
.["tag1", "tag2"] - Stats: The
template expects a JSON array:stats
.[{"label": "Users", "value": "10K"}] - Images: For
,logo
,image
— pass a publicly accessible URL.authorImage - Output: Default is 1200x630 PNG (standard OG image size). Use
/width
to customize.height - Formats: Use
for vector output,"svg"
for print-ready documents."pdf"
Full API Docs
For the complete API reference as markdown (useful for deeper integration):
curl https://api.snapog.dev/v1/docs