VidGuy Docs
Build videos faster with VidGuy
Guides and best practices for turning prompts into platform-ready videos.
Token Snacks
Send one DexScreener link and get a pack of short-form posts for that token back. No brand setup. It's built for launchpads, trading apps and community tools that have more tokens than anyone could register by hand.
Available on the Scale plan, through the API (POST /api/v1/snacks/on-demand). Other plans get a 403 with code: "on_demand_requires_enterprise".
How it works
- We look the token up on DexScreener. Name, symbol, chain, socials and logo. This happens before we reserve any credits, so a token DexScreener doesn't know costs you nothing.
- The agent studies the logo first. One look at the artwork (the mascot, the art style, the joke, the meme it comes from) before it writes a word. Every post in the pack builds on it.
- The posts stay on culture, memes and community hype. No prices, no charts, no financial claims, no numbers that go stale by tomorrow.
- Every call is fresh. We remember what we made for each token address, so the next pack for the same token gets new hooks and new clips.
What you get
A default pack is 4 posts: slides, text-wall, ai-ugc and greenscreen-meme. meme-edit, single-image and sticker-pack only run when you name them in types.
slides
A swipeable carousel for TikTok or Instagram.
text-wall
A short video with the hook stacked in big text over it.
ai-ugc
A 9:16 AI creator video, talking to camera about the token.
greenscreen-meme
A known meme clip keyed onto a new backdrop, with a POV hook on top.
meme-edit
A known reaction clip with a new caption about the token. Opt-in.
single-image
One 9:16 image, like a comic strip or a mascot scene, drawn from the token's logo. Opt-in.
sticker-pack
Six Telegram-ready stickers of the token's mascot (512 px, transparent WEBP), like gm or wagmi. Opt-in.
Make a request
curl -X POST https://www.vidguy.ai/api/v1/snacks/on-demand \
-H "Authorization: Bearer vf_live_..." \
-H "Content-Type: application/json" \
-d '{
"dexScreenerUrl": "https://dexscreener.com/solana/8sLbNZoA1cfnvMJLPfp98ZLAnFSYCFApfJKMbiXNLwxj",
"prompt": "The community is hyped about the new sticker pack.",
"render": true
}'
The response has a jobId. Poll GET /api/v1/jobs/{id} (see Polling). A pack takes about 2 minutes, or 5 to 6 minutes with render: true. With render: true, the finished PNG, MP4 and WEBP files are listed in result.renderedAssets[].
| Field | What it does |
|---|---|
dexScreenerUrl | A https://dexscreener.com/<chain>/<address> link. A pair address works best. With a token address, we use the pair with the most liquidity on that chain. |
types | Which posts to make: slides, text-wall, ai-ugc, greenscreen-meme, meme-edit, single-image, sticker-pack. |
count | Number of posts (1 to 5); repeats the requested types. |
exclude | Types to leave out of the default pack. |
prompt | A creative steer for the whole pack: a launch, a meme, an inside joke, the vibe. |
language | ISO 639-1 code, e.g. es, de, tr. Default en. |
websiteUrl | The project's own site, if DexScreener lists the wrong one or none. |
name | A name for the job. |
render | Also render the files server-side (+3 credits). |
If you send dexScreenerUrl together with shopUrl or websiteUrl, the token wins.
The response
{
"jobId": "...",
"offeringId": "snack_generation",
"status": "queued",
"pollUrl": "/api/v1/jobs/...",
"creditsReserved": 28,
"render": true,
"source": "token",
"token": {
"address": "So11...",
"chainId": "solana",
"pairAddress": "8sLb...",
"name": "Example Coin",
"symbol": "EXMPL",
"imageUrl": "https://dd.dexscreener.com/ds-data/tokens/solana/...png",
"url": "https://dexscreener.com/solana/8sLb..."
}
}
token is what we found on DexScreener. Check it to make sure you got the coin you meant. When the job completes, result.decisions.token_image_analysis shows what the agent saw in the logo and how it steered the pack.
Errors
| Status | When | Charge |
|---|---|---|
400 | DexScreener doesn't know the pair or token, or the link isn't a DexScreener URL. | None |
402 | Not enough credits. The response has your balance. | None |
403 | Your plan isn't Scale (on_demand_requires_enterprise). | None |
502 | DexScreener is down. Retry in a minute. | None |
If a job fails after it starts, its credits are refunded automatically.
Pricing
| Credits | |
|---|---|
| Snack pack | 25 |
Pack without ai-ugc | 18 |
render: true | +3 |
The price is per call, not per post. A default pack with rendering is 28 credits.
Need ads for a store or an app instead of a token? Use Ads on Demand. It's the same endpoint with shopUrl.