Dynamic Open Graph Images from Any URL.
DOGimg generates polished Open Graph images from webpage metadata (title, description, favicon, theme color) using a single API call.
- Demo: https://dogimg.vercel.app
- API:
https://dogimg.vercel.app/api/og?url={YOUR_URL}
The images below were generated by real /api/og calls from this project.
| URL | Output |
|---|---|
https://dogimg.vercel.app |
![]() |
https://github.com |
![]() |
https://nextjs.org |
![]() |
https://vercel.com |
![]() |
<meta property="og:image" content="https://dogimg.vercel.app/api/og?url=https://your-site.com/post" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />export async function generateMetadata() {
const fullUrl = "https://your-site.com/your-page";
return {
openGraph: {
images: [`https://dogimg.vercel.app/api/og?url=${fullUrl}`],
},
};
}If your page URL contains query params, use encodeURIComponent(fullUrl).
GET /api/og?url={TARGET_URL}
https://dogimg.vercel.app/api/og?url={YOUR_URL}
url(string): Target webpage URL.- If
urlis omitted, DOGimg uses a default sample URL.
200:image/png(1200x630)500: Failed to generate image
curl "https://dogimg.vercel.app/api/og?url=https://github.com" --output og.pngnpm install
npm run devThen open:
http://localhost:3000http://localhost:3000/api/og?url=https://github.com
- Fetch HTML from the target URL.
- Parse metadata (
og:*,twitter:*,title,theme-color, favicon). - Render a 1200x630 image with
@vercel/og.
MIT. See LICENSE.



