gemini-api

Delegate tasks to Google Gemini 3 series models via REST API. Use when tasks benefit from Gemini's multimodal capabilities - image generation (Nano Banana Pro), image editing (Nano Banana Pro), image understanding/vision (Gemini 3.1 Pro), or text tasks (Gemini 3.1 Pro). Always prioritize Pro models.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "gemini-api" with this command: npx skills add ya-luotao/skills/ya-luotao-skills-gemini-api

Gemini API (REST)

Delegate tasks to Gemini 3 series models. Requires GEMINI_API_KEY environment variable.

Models

ModelModel IDBest For
Gemini 3.1 Progemini-3.1-pro-previewText generation, vision/image understanding, OCR, agentic workflows (DEFAULT for text output)
Gemini 3 Flashgemini-3-flash-previewFast text/vision tasks (only when speed needed)
Nano Banana Progemini-3-pro-image-previewImage generation, image editing (DEFAULT for image output)
Nano Bananagemini-2.5-flash-imageFast image generation (only when speed needed)

Defaults:

  • Text output tasks (text generation, vision, OCR): Use gemini-3.1-pro-preview
  • Image output tasks (image generation, editing): Use gemini-3-pro-image-preview

Variant: gemini-3.1-pro-preview-customtools — use if the standard model ignores your custom tools in favor of bash commands.

API Endpoint

POST https://generativelanguage.googleapis.com/v1beta/models/{MODEL_ID}:generateContent?key={API_KEY}

Request Structure

For text models (with thinking):

{
  "contents": [{"parts": [{"text": "..."}]}],
  "generationConfig": {
    "thinkingConfig": {"thinkingLevel": "high"}
  }
}

Temperature: For all Gemini 3 models, keep temperature at its default of 1.0. Lowering it may cause looping or degraded reasoning.

For image models (no thinking support):

{
  "contents": [{"parts": [{"text": "..."}]}],
  "generationConfig": {
    "responseModalities": ["TEXT", "IMAGE"]
  }
}

Thinking Levels (Text models only)

Level3.1 Pro3 Pro3 FlashUse Case
lowSimple tasks, minimal latency
mediumBalanced reasoning
high✅ (Default)✅ (Default)✅ (Default)Complex reasoning

Notes:

  • Image models (gemini-3-pro-image-preview, gemini-2.5-flash-image) do NOT support thinking levels.
  • Levels are relative allowances, not strict token guarantees.
  • Do NOT combine thinkingLevel with the legacy thinking_budget — it triggers a 400 error.

Thought Signatures (Multi-turn / Function Calling)

Gemini 3 returns encrypted thoughtSignature fields on model response parts. These MUST be echoed back in subsequent requests to maintain reasoning context.

Use CaseValidationIf Missing
Function CallingStrict400 error
Image Editing (multi-turn)Strict400 error
Text/ChatSoftDegraded quality

Rules:

  • Single function call → return the signature on the functionCall part
  • Parallel function calls → only the first call carries a signature; return all parts in order
  • Sequential multi-step → accumulate ALL signatures across turns

Official SDKs (Python, Node, Java) handle signatures automatically. For REST API, you must manage them manually in conversation history.


Examples

1. Text Generation (Gemini 3.1 Pro)

curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-pro-preview:generateContent?key=${GEMINI_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "Explain quantum entanglement simply"}]}],
    "generationConfig": {"thinkingConfig": {"thinkingLevel": "high"}}
  }' | jq -r '.candidates[0].content.parts[0].text'

2. Image Understanding / Vision (Gemini 3.1 Pro)

Analyze an image - use Gemini 3.1 Pro for vision tasks (text output):

IMAGE_B64=$(base64 -i photo.jpg)

curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.1-pro-preview:generateContent?key=${GEMINI_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"inlineData": {"mimeType": "image/jpeg", "data": "'"${IMAGE_B64}"'"}},
        {"text": "Describe this image in detail. What objects, people, or text do you see?"}
      ]
    }],
    "generationConfig": {"thinkingConfig": {"thinkingLevel": "high"}}
  }' | jq -r '.candidates[0].content.parts[0].text'

3. Image Generation (Nano Banana Pro)

Generate images using Nano Banana Pro:

curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent?key=${GEMINI_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "A cozy coffee shop interior, warm lighting, watercolor style"}]}],
    "generationConfig": {"responseModalities": ["TEXT", "IMAGE"]}
  }' | jq -r '.candidates[0].content.parts[] | select(.inlineData) | .inlineData.data' | base64 -d > coffee_shop.png

4. Image Editing (Nano Banana Pro)

Edit images using Nano Banana Pro:

IMAGE_B64=$(base64 -i input.jpg)

curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent?key=${GEMINI_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [
        {"inlineData": {"mimeType": "image/jpeg", "data": "'"${IMAGE_B64}"'"}},
        {"text": "Remove the background and make it transparent"}
      ]
    }],
    "generationConfig": {"responseModalities": ["TEXT", "IMAGE"]}
  }' | jq -r '.candidates[0].content.parts[] | select(.inlineData) | .inlineData.data' | base64 -d > edited.png

5. Text in Images (Nano Banana Pro)

Nano Banana Pro excels at rendering text:

curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent?key=${GEMINI_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "Create a professional business card for \"Jane Smith, CEO\" at \"TechCorp Inc\" with modern minimalist design"}]}],
    "generationConfig": {"responseModalities": ["TEXT", "IMAGE"]}
  }' | jq -r '.candidates[0].content.parts[] | select(.inlineData) | .inlineData.data' | base64 -d > business_card.png

6. Fast Tasks (Flash models - only when speed needed)

# Fast text/vision (gemini-3-flash-preview)
curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent?key=${GEMINI_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{"contents": [{"parts": [{"text": "Quick summary"}]}]}' | jq -r '.candidates[0].content.parts[0].text'

# Fast image generation (gemini-2.5-flash-image)
curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash-image:generateContent?key=${GEMINI_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "A simple icon"}]}],
    "generationConfig": {"responseModalities": ["TEXT", "IMAGE"]}
  }' | jq -r '.candidates[0].content.parts[] | select(.inlineData) | .inlineData.data' | base64 -d > icon.png

When to Delegate to Gemini

TaskModel
Text generationgemini-3.1-pro-preview (default)
Image understanding/visiongemini-3.1-pro-preview (default)
OCR / text extractiongemini-3.1-pro-preview (default)
Agentic workflows / tool usegemini-3.1-pro-preview (default)
Image generationgemini-3-pro-image-preview (default)
Image editinggemini-3-pro-image-preview (default)
Graphics with text/logosgemini-3-pro-image-preview (default)
Fast text/vision (user requested)gemini-3-flash-preview
Fast image tasks (user requested)gemini-2.5-flash-image

Response Structure

Text response:

{"candidates": [{"content": {"parts": [{"text": "..."}]}}]}

Image response:

{"candidates": [{"content": {"parts": [
  {"text": "Here is your image..."},
  {"inlineData": {"mimeType": "image/png", "data": "<base64>"}}
]}}]}

Python Script

Use scripts/gemini_api.py (prioritizes Pro models):

# Text generation (defaults to gemini-3.1-pro-preview)
python scripts/gemini_api.py text "Explain REST APIs"

# With medium thinking (3.1 Pro only)
python scripts/gemini_api.py text "Summarize this" --thinking medium

# Image understanding (defaults to gemini-3.1-pro-preview)
python scripts/gemini_api.py vision photo.jpg "What's in this image?"

# Image generation (defaults to Nano Banana Pro)
python scripts/gemini_api.py generate "A sunset over mountains" -o sunset.png

# Image editing (defaults to Nano Banana Pro)
python scripts/gemini_api.py edit input.jpg "Add a rainbow" -o output.png

# Fast mode (only when user requests speed)
python scripts/gemini_api.py text "Quick question" --model flash
python scripts/gemini_api.py vision photo.jpg "Quick check" --model flash
python scripts/gemini_api.py generate "Simple icon" -o icon.png --model flash

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

claude-code-guide

No summary provided by upstream source.

Repository SourceNeeds Review
General

Find Skills for ClawHub

Search for and discover OpenClaw skills from ClawHub (the official skill registry). Activate when user asks about finding skills, installing skills, or wants...

Registry SourceRecently Updated
2771Profile unavailable
General

Skill Listing Polisher

Improve a skill's public listing before publish. Use when tightening title, description, tags, changelog, and scan-friendly packaging so the listing looks cl...

Registry SourceRecently Updated
1130Profile unavailable
General

Skill Priority Setup

Scans installed skills, suggests L0-L3 priority tiers, and auto-configures skill injection policy. Use when: setting up skill priorities, optimizing token bu...

Registry SourceRecently Updated
2500Profile unavailable