Generate images with the Pop-cam NanoBanana API. The model supports any visual style — photorealistic, cinematic, cartoon, illustration, watercolor, 3D render, and anything else you can describe in a prompt.
This skill supports two modes:
prompt field (no image) to generate an image from scratch.Both modes cost 1 credit per generation and use the same endpoint.
All generation requests require a Pop-cam API token ( pk_ prefix) in the Authorization header.
If the user does not have a token yet, walk them through these steps in order:
Store the token and send it on every request:
text
Authorization: Bearer pk_YOUR_TOKEN
If unsure whether the user is signed in, call the auth-status endpoint first:
bash
curl https://www.pop-cam.com/api/openclaw/auth-status
The response tells you whether sign-in is needed and provides the relevant URLs.
For a machine-readable version of this entire skill (features, endpoints, schemas, examples), call:
bash
curl https://www.pop-cam.com/api/openclaw/skill
text
POST https://www.pop-cam.com/api/v1/nanobanana
HeaderValueAuthorizationBearer pk_YOUR_TOKENContent-Typeapplication/json
FieldTypeRequiredDescriptionimagestringNoBase64 data URL of the source image ( data:image/png;base64,...). Omit entirely for text-to-image.promptstringNoGeneration prompt. Required when image is omitted. Optional for image-to-image (a default prompt is used if omitted).webhook_urlstringNoHTTPS URL to receive the result asynchronously. Omit for synchronous mode.
Transform an existing photo:
bash
curl -X POST https://www.pop-cam.com/api/v1/nanobanana \
-H "Authorization: Bearer $POPCAM_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"image": "data:image/png;base64,iVBOR...",
"prompt": "Enhance this photo with cinematic lighting and shallow depth of field"
}'
Generate an image from a text prompt only — no source photo needed:
bash
curl -X POST https://www.pop-cam.com/api/v1/nanobanana \
-H "Authorization: Bearer $POPCAM_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A photorealistic portrait of a man in a leather jacket standing on a city rooftop at golden hour, natural lighting, shallow depth of field"
}'
json
{
"job_id": "a1b2c3d4-...",
"image_url": "https://cdn.pop-cam.com/generated/user_id/a1b2c3d4.png",
"download_url": "https://...r2.cloudflarestorage.com/...?X-Amz-Signature=...",
"used_prompt": "A photorealistic portrait of a man in a leather jacket standing on a city rooftop at golden hour, natural lighting, shallow depth of field",
"credits_remaining": 22,
"mode": "text-to-image"
}
Important: Use download_url to fetch the generated image. It is a presigned URL valid for 1 hour that works regardless of storage bucket privacy settings. The image_url is the permanent stored reference but may not be directly accessible if the bucket is private.
The mode field is "text-to-image" or "image-to-image" depending on which path was used.
Include webhook_url to get an immediate HTTP 202 response with a job_id. Pop-cam POSTs the result to your URL when generation completes (retries up to 3 times with exponential backoff).
Initial response (202):
json
{
"job_id": "a1b2c3d4-...",
"status": "processing",
"message": "Your image is being generated. Results will be POSTed to your webhook_url."
}
Webhook delivery payload includes download_url (presigned, 1-hour expiry) for fetching the image.
StatusMeaningAction401Invalid or missing tokenAsk the user to create or refresh their token at https://www.pop-cam.com/developer402Insufficient creditsDirect the user to buy credits at https://www.pop-cam.com/checkout403Account not syncedAsk the user to sign in via the web app first400Bad request (e.g. missing prompt for text-to-image, invalid image format)Check the request body and fix the issue
credits_remaining.The model is not limited to any single style. The output depends entirely on your prompt. Here are example styles you can request:
StyleExample prompt snippetPhotorealistic"photorealistic photo, natural lighting, 85mm lens"Cinematic"cinematic still frame, anamorphic lens flare, moody color grading"Cartoon"colorful cartoon style, bold outlines, flat shading"Illustration"editorial illustration, clean vector style"Oil painting"oil painting on canvas, visible brushstrokes, impressionist style"Watercolor"delicate watercolor painting, soft washes, paper texture"3D render"3D rendered scene, volumetric lighting, octane render"Pencil sketch"detailed pencil sketch on white paper, crosshatching"Anime"anime style, Studio Ghibli-inspired, vibrant colors"
For the most realistic output, include details like lighting conditions, camera lens, depth of field, and environment in your prompt.
TaskHowTransform a photoSend image + optional promptGenerate from textSend prompt only, no image fieldDownload the resultUse download_url from the response (presigned, 1-hour expiry)Async processingAdd webhook_url to the request bodyCheck auth stateGET /api/openclaw/auth-statusFull skill JSONGET /api/openclaw/skillBuy creditshttps://www.pop-cam.com/checkoutCreate tokenhttps://www.pop-cam.com/developer