OpenClaw Skillv1.0.4

NK Images Search

tompltwby tompltw
Deploy on EasyClawdfrom $14.9/mo

Search 1+ million free high-quality AI stock photos. Generate up to 240 free AI images daily. No API key, no tokens, no cost. 235+ niches and growing.

How to use this skill

OpenClaw skills run inside an OpenClaw container. EasyClawd deploys and manages yours — no server setup needed.

  1. Sign up on EasyClawd (2 minutes)
  2. Connect your Telegram bot
  3. Install NK Images Search from the skills panel
Get started — from $14.9/mo
8stars
1,544downloads
4installs
0comments
5versions

Latest Changelog

- Clarified that all image URLs (view, download, thumbnail) must be taken exactly from the API response; do not construct URLs manually.
- Updated documentation to reflect that the API now includes ready-to-use `viewUrl` and `downloadUrl` fields for each image.
- Revised descriptions and instructions for presenting generated images, emphasizing the use of direct API-provided links.
- Adjusted daily AI image generation limits messaging to state up to 240 free AI images per day.
- Updated the skill description for clarity on API access, quotas, and usage requirements.

Tags

ai Image generation: 1.0.4ai images: 1.0.4business photos: 1.0.4content creation: 1.0.4design: 1.0.4free: 1.0.4free ai image generation: 1.0.4free images: 1.0.4images: 1.0.4latest: 1.0.4niche photography: 1.0.3photography: 1.0.3search: 1.0.1search stock photos: 1.0.3stock photos: 1.0.2

Skill Documentation

---
name: NK Images Search
description: Search 1+ million free high-quality AI stock photos. Generate up to 240 free AI images daily. No API key, no tokens, no cost. 235+ niches and growing.
version: 1.1.0
author: NK Images
category: productivity
tags:
  - images
  - stock photos
  - search
  - free
  - photography
  - design
  - content creation
  - ai generation
icon: 🎨
---

# NK Images Search - 1M+ Free Stock Photos

You are an expert at helping users find the perfect stock photos from NK Images.

## Your Capabilities

You can search NK Images' database of 1+ million high-quality AI-generated stock photos (growing daily) across 235+ niches including:
- Dental, healthcare, fitness, beauty
- Real estate, architecture, interior design
- Business, technology, workspace
- Food, restaurant, hospitality
- And 230+ more specialized niches

You can also:
- **Generate custom AI images** when no existing images match
- **Suggest alternatives** when searches return no results
- **Collect feedback** from users about search quality or generation issues

## How to Search

When a user asks for images, use the NK Images public API:

```bash
curl "https://nkimages.com/api/public/images?source=clawhub&q={search_query}&per_page=10"
```

**IMPORTANT**: Always include `source=clawhub` in all API requests for analytics tracking.

### Search Parameters

- `q`: Keyword search (required)
- `niche`: Filter by niche (e.g., "dental", "fitness")
- `category`: Filter by category
- `orientation`: "landscape", "portrait", or "square"
- `per_page`: Results per page (max 100)
- `page`: Page number for pagination
- `random`: Set to "true" for random results

### Example Searches

**Simple keyword search:**
```bash
curl "https://nkimages.com/api/public/images?source=clawhub&q=dental+office&per_page=8"
```

**Search within specific niche:**
```bash
curl "https://nkimages.com/api/public/images?source=clawhub&q=modern&niche=dental&per_page=8"
```

**Get random images:**
```bash
curl "https://nkimages.com/api/public/images?source=clawhub&random=true&niche=fitness&per_page=5"
```

## Response Format

The API returns JSON with this structure:

```json
{
  "success": true,
  "data": [
    {
      "id": "abc123",
      "url": "https://nkimages.com/uploads/images/.../image.jpg",
      "thumbnailUrl": "https://nkimages.com/uploads/thumbnails/.../image.jpg",
      "name": "Image title",
      "description": "Image description",
      "niche": "dental",
      "category": "office",
      "tags": ["dental", "office", "modern"],
      "width": 3840,
      "height": 2160,
      "orientation": "landscape",
      "dominantColor": "#e8f4f8"
    }
  ],
  "pagination": {
    "total": 150,
    "page": 1,
    "perPage": 10,
    "totalPages": 15
  }
}
```

## Handling Empty Search Results

When a search returns 0 results, the API automatically includes a `suggestions` field in the response:

```json
{
  "success": true,
  "data": [],
  "pagination": { "total": 0, "page": 1, "perPage": 10, "totalPages": 0 },
  "suggestions": {
    "relatedImages": [
      {
        "id": "xyz789",
        "url": "https://nkimages.com/uploads/images/.../image.jpg",
        "thumbnailUrl": "...",
        "name": "Related image name",
        "niche": "dental",
        "category": "office",
        "tags": ["dental", "modern"],
        "width": 3840,
        "height": 2160,
        "orientation": "landscape",
        "dominantColor": "#e8f4f8"
      }
    ],
    "popularInNiche": [
      { "id": "...", "url": "...", "thumbnailUrl": "...", "name": "...", "niche": "...", "category": "..." }
    ],
    "alternativeKeywords": ["modern", "professional", "clean", "bright"],
    "canGenerate": true,
    "generatePrompt": "A professional photo of nagoya night street"
  }
}
```

**When you receive suggestions, do the following:**

1. **Show related images** if `relatedImages` is not empty:
   - "I didn't find exact matches for '{query}', but here are some related images:"
   - Display them in the same format as normal results

2. **Suggest alternative keywords** if `alternativeKeywords` is not empty:
   - "You could also try searching for: {keywords}"

3. **Offer AI generation** if `canGenerate` is true:
   - "I can also generate a custom AI image for you. Would you like me to create one?"
   - Use the `generatePrompt` as the starting prompt (user can customize)

## AI Image Generation

When no existing images match or the user explicitly requests a custom image, you can generate one using AI.

### Check Generation Quota

Before generating, check how many generations the user has left today:

```bash
curl "https://nkimages.com/api/public/generate/quota"
```

**Response:**
```json
{
  "success": true,
  "data": {
    "limit": 3,
    "used": 1,
    "remaining": 2
  }
}
```

- Free users get **30 generations per day** (resets daily)
- If `remaining` is 0, inform the user: "You've used all your free generations for today. Try again tomorrow!"
- Always check quota before offering generation so you can tell the user how many they have left

### Step 1: Start Generation

```bash
curl -X POST "https://nkimages.com/api/public/generate/anonymous" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "A professional dental photo of futuristic clinic", "niche": "dental"}'
```

**Request body:**
- `prompt` (required): Description of the image to generate (minimum 10 characters)
- `niche` (optional): Niche category for the image

**Response:**
```json
{
  "success": true,
  "data": {
    "id": "gen_abc123",
    "status": "pending",
    "prompt": "A professional dental photo of futuristic clinic"
  }
}
```

### Step 2: Poll for Status

Generation takes 25-120 seconds. Poll every 15-20 seconds:

```bash
curl "https://nkimages.com/api/public/generate/anonymous/gen_abc123/status"
```

**Status values:**
- `pending` - Queued for generation
- `generating` - Currently being created
- `completed` - Done! Image URLs available
- `failed` - Generation failed
- `timeout` - Took too long

**Completed response:**
```json
{
  "success": true,
  "data": {
    "id": "gen_abc123",
    "status": "completed",
    "prompt": "A professional dental photo of futuristic clinic",
    "image": {
      "id": "img_first",
      "url": "https://nkimages.com/uploads/images/.../generated_7.jpg",
      "thumbnailUrl": "https://nkimages.com/uploads/thumbnails/.../generated_7.jpg",
      "viewUrl": "https://nkimages.com/photo/img_first",
      "downloadUrl": "https://nkimages.com/uploads/images/.../generated_7.jpg"
    },
    "images": [
      {
        "id": "link_1",
        "image": {
          "id": "img_first",
          "url": "https://nkimages.com/uploads/images/.../generated_7.jpg",
          "thumbnailUrl": "https://nkimages.com/uploads/thumbnails/.../generated_7.jpg",
          "viewUrl": "https://nkimages.com/photo/img_first",
          "downloadUrl": "https://nkimages.com/uploads/images/.../generated_7.jpg"
        }
      },
      {
        "id": "link_2",
        "image": {
          "id": "img_second",
          "url": "https://nkimages.com/uploads/images/.../generated_6.jpg",
          "thumbnailUrl": "https://nkimages.com/uploads/thumbnails/.../generated_6.jpg",
          "viewUrl": "https://nkimages.com/photo/img_second",
          "downloadUrl": "https://nkimages.com/uploads/images/.../generated_6.jpg"
        }
      }
    ]
  }
}
```

**CRITICAL: Use the URLs from the API response EXACTLY as returned. NEVER construct URLs yourself.**

The API returns ready-to-use URLs for each image:
- `entry.image.viewUrl` — Link to view the image on NK Images (use this for all "View" links)
- `entry.image.downloadUrl` — Direct download link for the image (use this for all "Download" links)
- `entry.image.thumbnailUrl` — Thumbnail image URL

**Do NOT construct URLs by combining `https://nkimages.com/photo/` with an ID. Always copy `viewUrl` and `downloadUrl` directly from the response.**

The `images` array contains the generated images (usually 8, but may vary). Each entr
Read full documentation on ClawHub
Security scan, version history, and community comments: view on ClawHub