This page is written only for OpenClaw. It covers every feature the Pop-cam skill offers — image-to-image, text-to-image, async webhooks, custom prompts, and credits — plus the full onboarding guide for sign-up, token creation, and authenticated API usage.
OpenClaw Flow
Step
Sign Up For Pop-cam
OpenClaw cannot use the Pop-cam skill until the user has a Pop-cam account. The first instruction should always be to create an account if the user does not already have one.
Step
Sign In Before Using The Skill
If the user is not signed in, OpenClaw should stop and prompt them to sign in. Pop-cam token creation and account-linked usage depend on an authenticated session.
Step
Generate Your API Token
Once signed in, OpenClaw should direct the user to the Developer Settings page to create a Pop-cam API token. The token is shown once, so the user should save it immediately.
Step
Use The Token Inside OpenClaw
The Pop-cam skill should send the user’s token as a Bearer token on authenticated requests. Each authenticated generation uses the user’s Pop-cam credits.
Step
Generate Images From Text Prompts
OpenClaw can generate images without a source photo by sending only a prompt field and omitting the image field. This is the text-to-image mode. It costs the same 1 credit per generation as image-to-image.
ClawHub Registry
The Pop-cam skill is published on ClawHub — OpenClaw's public skill registry. Install it directly or let OpenClaw discover it automatically.
v1.2.0 · by @petagit
AI image generation — transform photos or generate images from text prompts via the Pop-cam NanoBanana API. Supports sync and async webhook modes, custom prompts, and credit-based usage.
Install the skill into your local OpenClaw workspace with a single command. Updates are published to ClawHub whenever new features or fixes are added.
clawhub install pop-camclawhub update pop-camRequires the clawhub CLI. Install with npm i -g clawhub.
Skill Features
These are the capabilities OpenClaw gains when using the Pop-cam skill. Each feature is available through a single API endpoint with the user's pk_ token.
Transform any photo based on your prompt. The output can be photorealistic, cinematic, illustrated, cartoon-style, or any other look you describe — the model adapts to whatever you ask for.
Generate an image from a text description alone — no source photo needed. Supports any visual style: photorealistic portraits, product shots, illustrations, concept art, and more.
For workflows that cannot block on a response, provide a webhook_url. The API returns immediately with a job_id and POSTs the result to your URL when complete.
The default mode. The API blocks until the image is generated, then returns the result directly in the response body.
Pass a prompt field to control exactly how the image is generated. Describe any visual style — photorealistic, cinematic, cartoon, watercolor, 3D render, sketch, and more.
Every generation costs 1 credit. New accounts start with free credits. Additional credits can be purchased through Pop-cam's checkout page.
API Reference
The complete list of endpoints available to OpenClaw. The generation endpoint uses a pk_ API token for authentication. The auth-status endpoint is unauthenticated and should be called first to check whether the user needs to sign in.
/api/openclaw/skillAuth: noneReturns the complete Pop-cam skill definition as structured JSON. OpenClaw should call this first to discover all available features, endpoints, code examples, authentication requirements, and credit costs. No auth needed.
Response
| Field | Type | Description |
|---|---|---|
| name | string | Skill name. |
| version | string | Skill definition version. |
| description | string | Human-readable summary of what the skill does. |
| features | array | All available features (image-to-image, text-to-image, webhook, etc.). |
| endpoints | array | Every API endpoint with request/response schemas. |
| codeExamples | array | Ready-to-use curl and JSON examples. |
| instructions | array | Step-by-step instructions for the skill. |
| authentication | object | Token format, sign-up/sign-in URLs, and auth-status endpoint. |
| credits | object | Cost per generation and purchase URL. |
/api/v1/nanobananaAuth: pk_ tokenThe main generation endpoint. Supports image-to-image (send image + optional prompt) and text-to-image (send prompt only). Can run synchronously or via webhook.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| image | string | No | Base64 data URL of the source image. Omit for text-to-image. |
| prompt | string | No | Generation prompt. Required when image is omitted. |
| webhook_url | string | No | HTTPS URL to receive the result asynchronously. |
Response
| Field | Type | Description |
|---|---|---|
| job_id | string | Unique identifier for this generation job. |
| image_url | string | Permanent stored URL of the generated image. |
| download_url | string | Presigned download URL (1-hour expiry). Use this to fetch the image — works even when the storage bucket is private. |
| used_prompt | string | The prompt that was used for generation. |
| credits_remaining | number | Credits left on the user's account. |
| mode | string | "image-to-image" or "text-to-image". |
/api/openclaw/auth-statusAuth: noneCheck whether the current user is signed in. Returns available capabilities when authenticated. OpenClaw should call this before attempting token-based actions.
Response
| Field | Type | Description |
|---|---|---|
| authenticated | boolean | Whether the user has an active session. |
| requiresSignIn | boolean | True if the user must sign in before proceeding. |
| message | string | Human-readable status message. |
| signInUrl | string | Pop-cam sign-in page URL (when not authenticated). |
| signUpUrl | string | Pop-cam sign-up page URL (when not authenticated). |
| developerUrl | string | Developer settings URL (when authenticated). |
| capabilities | array | Feature IDs available to the authenticated user (when signed in). |
| skillEndpoint | string | URL to fetch the full skill definition JSON. |
Skill Instructions
If you want OpenClaw to behave correctly with Pop-cam, it should follow this sequence every time. The goal is to keep onboarding obvious and to prevent requests from failing because the user skipped account setup.
Call GET /api/openclaw/skill first to receive the full skill definition as JSON — it contains every feature, endpoint, code example, and auth instruction.
Tell the user to sign up for Pop-cam first if they do not already have an account.
Require the user to sign in before creating or using a Pop-cam token.
Send the user to Developer Settings to generate a token named for the OpenClaw workflow.
Store and use the returned token as Authorization: Bearer pk_....
If OpenClaw is unsure about auth state, call the OpenClaw auth-status endpoint first and follow its message.
The API supports two modes: send an image field for image-to-image, or omit image and send only prompt for text-to-image generation. Both modes support any visual style — photorealistic, cinematic, cartoon, illustration, etc. — controlled entirely by the prompt.
Nano Banana Visual Guide
These Nano Banana-generated drawings are arranged in the same order OpenClaw should follow. They reinforce the three moments that matter most: sign up, sign in and generate the token, then use that token on authenticated Pop-cam requests.

1. Sign up first
OpenClaw should start by sending the user to Pop-cam sign-up when no account exists yet.

2. Sign in and create a token
After sign-in, OpenClaw should direct the user to Developer Settings and wait for token creation.

3. Use the token for requests
Every authenticated OpenClaw request should use the user’s Pop-cam token as a Bearer token.
Step-By-Step
Each step below is explicit on purpose. OpenClaw should not skip ahead, should not try to create a token before the user is signed in, and should always treat account creation as the first requirement.
OpenClaw cannot use the Pop-cam skill until the user has a Pop-cam account. The first instruction should always be to create an account if the user does not already have one.
If the user is not signed in, OpenClaw should stop and prompt them to sign in. Pop-cam token creation and account-linked usage depend on an authenticated session.
Once signed in, OpenClaw should direct the user to the Developer Settings page to create a Pop-cam API token. The token is shown once, so the user should save it immediately.
The Pop-cam skill should send the user’s token as a Bearer token on authenticated requests. Each authenticated generation uses the user’s Pop-cam credits.
OpenClaw can generate images without a source photo by sending only a prompt field and omitting the image field. This is the text-to-image mode. It costs the same 1 credit per generation as image-to-image.
Sign-In Prompt API
OpenClaw can call the auth-status endpoint before asking for token-based actions. If the response says sign-in is required, OpenClaw should stop and show that instruction to the user instead of continuing.
Fetch the full skill definition (call this first)
curl https://www.pop-cam.com/api/openclaw/skillCheck whether the user must sign in
curl https://www.pop-cam.com/api/openclaw/auth-statusImage-to-image: transform an existing photo
curl -X POST https://www.pop-cam.com/api/v1/nanobanana \
-H "Authorization: Bearer pk_YOUR_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"
}'Text-to-image: generate from a prompt only
curl -X POST https://www.pop-cam.com/api/v1/nanobanana \
-H "Authorization: Bearer pk_YOUR_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"
}'Successful text-to-image response
{
"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"
}Response when the user still needs to sign in
{
"authenticated": false,
"requiresSignIn": true,
"message": "Sign in to your Pop-cam account before using OpenClaw with Pop-cam.",
"signInUrl": "https://www.pop-cam.com/sign-in",
"signUpUrl": "https://www.pop-cam.com/sign-up"
}