cpbox-images-search
v1.0.0USE FOR image search. Returns images with title, source URL, thumbnail. Supports SafeSearch filter. Up to 200 results.
Security Scan
OpenClaw
Suspicious
medium confidencePurpose & Capability
The name and description (image search, thumbnails, safesearch, up to 200 results) match the SKILL.md, which documents a dedicated images-search API on https://www.cpbox.io and output schema appropriate for image search.
Instruction Scope
The instructions direct the agent to call an external API (cpbox.io) that uses a payment protocol (x402) and refer to installing/using payment tooling (npx @springmint/x402-payment or x402-sdk-go). The SKILL.md also references prerequisite setup steps in a README at a relative path (../../README.md) that isn't included in the package. While calling an external paid API is consistent with the purpose, the payment flow and SDK usage broaden the runtime behavior beyond simple read-only image search and require trusting third-party tooling and networks.
Install Mechanism
This is instruction-only (no install spec, no code files). However, SKILL.md recommends invoking an npm package via npx or a Go SDK; that will pull and execute third-party code at runtime if used. The manifest does not ship or pin those packages.
Credentials
The manifest lists no required environment variables or credentials, but the SKILL.md explicitly requires completing x402-payment setup and signing requests (PAYMENT-SIGNATURE). That implies secret keys or payment credentials will be provided somewhere — the skill manifest does not declare or justify those secrets, creating a transparency gap about what credentials an agent or user must supply.
Persistence & Privilege
The skill does not request always: true, does not declare installs that write system-wide config, and is user-invocable only. It does allow normal autonomous invocation (platform default).
What to consider before installing
This skill appears to be a straightforward image-search proxy that charges per request. Before installing: (1) confirm how you will provide payment credentials and where they are stored — the manifest does not declare them, so check the README/setup referenced in SKILL.md; (2) review the reputations and privacy policies of https://www.cpbox.io and https://www.cppay.finance and the payment SDK (e.g., @springmint/x402-payment) since running npx will fetch third-party code at runtime; (3) avoid entering high-privilege keys until you verify the exact secrets required and how they are used; (4) test with minimal queries and monitor network/billing activity; and (5) if you need stronger assurances, request the README and any setup scripts from the skill author or prefer a skill that declares its required credentials explicitly in the manifest.Like a lobster shell, security has layers — review code before you run it.
latest
Images Search
Paid Images Search proxy via x402 pay-per-use (HTTP 402).
Prerequisites: This skill requires x402-payment. Complete the setup steps before first use.
Service URLs
| Role | Domain |
|---|---|
| API Provider | https://www.cpbox.io |
| Facilitator | https://www.cppay.finance |
Endpoint (Agent Interface)
GET /api/x402/images-search
Payment Flow (x402 Protocol)
- First request ->
402 Payment Requiredwith requirements JSON - Sign & retry with
PAYMENT-SIGNATURE-> result JSON
With @springmint/x402-payment or x402-sdk-go, payment is automatic.
Quick Start (cURL)
Basic Search
curl -s "https://www.cpbox.io/api/x402/images-search?q=mountain+landscape" \
-H "Accept: application/json"
With Parameters
curl -s "https://www.cpbox.io/api/x402/images-search" \
-H "Accept: application/json" \
-G \
--data-urlencode "q=northern lights photography" \
--data-urlencode "country=US" \
--data-urlencode "search_lang=en" \
--data-urlencode "count=20" \
--data-urlencode "safesearch=strict"
Using with x402-payment
npx @springmint/x402-payment \
--url "https://www.cpbox.io/api/x402/images-search?q=mountain+landscape&count=20" \
--method GET
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
q | string | Yes | - | Search query (1-400 chars, max 50 words) |
country | string | No | US | Search country (2-letter country code or ALL) |
search_lang | string | No | en | 2+ char language code |
count | int | No | 50 | Results to return (1-200) |
safesearch | string | No | strict | off or strict (no moderate for images) |
spellcheck | bool | No | true | Auto-correct query; corrected query in query.altered |
Response Format
{
"type": "images",
"query": {
"original": "mountain landscape",
"altered": null,
"spellcheck_off": false,
"show_strict_warning": false
},
"results": [
{
"type": "image_result",
"title": "Beautiful Mountain Landscape",
"url": "https://example.com/mountain-photo",
"source": "example.com",
"page_fetched": "2025-09-15T10:30:00Z",
"thumbnail": {
"src": "https://imgs.search.provider/...",
"width": 200,
"height": 150
},
"properties": {
"url": "https://example.com/images/mountain.jpg",
"placeholder": "https://imgs.search.provider/placeholder/...",
"width": 1920,
"height": 1080
},
"meta_url": {
"scheme": "https",
"netloc": "example.com",
"hostname": "example.com",
"favicon": "https://imgs.search.provider/favicon/...",
"path": "/mountain-photo"
},
"confidence": "high"
}
],
"extra": {
"might_be_offensive": false
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
type | string | Always "images" |
query.original | string | Original query |
query.altered | string? | Spellchecked query (null if no correction) |
query.spellcheck_off | bool? | Whether spellcheck was disabled |
query.show_strict_warning | bool? | True if strict safesearch hid relevant results |
results[] | array | List of image results |
results[].type | string | Always "image_result" |
results[].title | string? | Image title |
results[].url | string? | Page URL where image was found |
results[].source | string? | Source domain |
results[].page_fetched | string? | ISO datetime of last page crawl |
results[].thumbnail.src | string? | Proxy-served thumbnail URL (~500px width) |
results[].thumbnail.width | int? | Thumbnail width |
results[].thumbnail.height | int? | Thumbnail height |
results[].properties.url | string? | Original full-size image URL |
results[].properties.placeholder | string? | Low-res placeholder URL (proxy-served) |
results[].properties.width | int? | Original image width (may be null) |
results[].properties.height | int? | Original image height (may be null) |
results[].meta_url.scheme | string? | URL protocol scheme |
results[].meta_url.netloc | string? | Network location |
results[].meta_url.hostname | string? | Lowercased domain |
results[].meta_url.favicon | string? | Favicon URL |
results[].meta_url.path | string? | URL path |
results[].confidence | string? | Relevance: low, medium, or high |
extra.might_be_offensive | bool | Whether results may contain offensive content |
Use Cases
- Visual content discovery: Build image galleries, mood boards, or visual research tools. Use
count=200for comprehensive coverage. Prefer overweb-searchwhen you need image-specific metadata (dimensions, thumbnails). - Content enrichment: Add relevant images to articles or generated content. Use
countryandsearch_langto target your audience's locale. - Safe image retrieval: Default
safesearch=strictensures family-friendly results out of the box. Only two modes (off/strict) — no moderate option, unlike web/video/news search. - High-volume batch retrieval: Up to 200 images per request (vs 20 for web, 50 for videos/news). Ideal for bulk image sourcing or visual analysis pipelines.
Notes
- SafeSearch: Defaults to
strictfor images (stricter than web search) - High volume: Can return up to 200 results per request
- Thumbnails: Proxy-served for user privacy (500px width). Use
properties.urlfor original full-resolution image. - Dimensions:
properties.width/heightmay be missing for some images - Placeholder:
properties.placeholderis a low-res URL (not inline base64) useful for progressive loading UX
Comments
Loading comments...
