Provided by DataForSEO
Find Google Images results for a keyword with DataForSEO
Read the Google Images result page for one keyword in one location and language. The rows are pictures. One request per call, priced by the vendor's own rate card; an empty result set is reported as no result.
How to run it
Step 1Set up
Once: paste this into your agent's chat. The Skill installs the CLI and logs in by itself. For an agent that cannot use a shell, connect it over MCP instead.
set up https://glasser.ai/SKILL.md
Show me how to use the DataForSEO endpoint /v3/serp/google/images/live/advanced on Glasser.glasser run -p dataforseo -e '/v3/serp/google/images/live/advanced' -i '{"keyword":"albert einstein","language_code":"en","location_code":2840}' --endpoint-version 6Uses endpoint version 6. Inspect the current price before running. Install and log in first on Get Started.
Once per Run:
IDEMPOTENCY_KEY=$(uuidgen)Run it, and copy this same block to send it again:
curl -X POST https://api.glasser.ai/v1/runs \
-H "Authorization: Bearer gl_..." \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-H "Content-Type: application/json" \
-d '{"provider":"dataforseo","endpoint":"/v3/serp/google/images/live/advanced","input":{"keyword":"albert einstein","language_code":"en","location_code":2840},"endpoint_version":6}'Reuse the same Idempotency-Key to send it again: the second send is a read of the first Run. A new key is a new Run and a new Charge. Uses endpoint version 6; inspect the current price before running.
Step 2Try a specific example task
When you need to plan new content, you might organize keyword ideas into related topics to build a workable content plan.
Copy this prompt into your agent to group keyword ideas for your content plan.
Use dataforseo:/v3/serp/google/images/live/advanced on Glasser.
Group the returned keywords into topics I can use to plan content.Endpoint structure
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"keyword"
],
"properties": {
"os": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"tag": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"url": {
"type": "string",
"description": "Direct search URL, parsed into the request by DataForSEO. Paging inside it is billed per page."
},
"depth": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Results to collect (1-200, default 100). DataForSEO bills each page of up to 100 results."
},
"keyword": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"se_domain": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"search_param": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"language_code": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"language_name": {
"type": "string"
},
"location_code": {
"type": "integer"
},
"location_name": {
"type": "string"
},
"max_crawl_pages": {
"type": "integer",
"description": "Search result pages to crawl (max 100). DataForSEO bills each page crawled."
},
"location_coordinate": {
"type": "string",
"maxLength": 2048,
"minLength": 1
}
},
"additionalProperties": false
}{
"keyword": "albert einstein",
"language_code": "en",
"location_code": 2840
}This Endpoint publishes no output schema. You get the Provider's own response body, unchanged — we do not warrant a shape we cannot guarantee.
How pricing works
| Default-size input | Larger inputs and paid options vary with Provider usage. The same price with or without matching data. | $0.002 |
|---|---|---|
| Maximum per Run | The total charge will not exceed this amount. | $1.00 |
| Provider error | The Provider failed to answer. | $0.00 |
| Timed out | The Run exceeded its time limit. | $0.00 |
| Internal failure | An internal error prevented completion. | $0.00 |