Provided by DataForSEO
Collect Google reviews for a business with DataForSEO
Google reviews via a DataForSEO Business Data task: one native task per Run, submitted once, completed by the vendor's pingback and read from task_get through a durable Provider Job. Billed by DataForSEO's own metered cost, up to 4490 results; 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/business_data/google/reviews/task_post on Glasser.glasser run -p dataforseo -e '/v3/business_data/google/reviews/task_post' -i '{"keyword":"hedonism wines","language_name":"English","location_code":2840}' --endpoint-version 4Uses endpoint version 4. 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/business_data/google/reviews/task_post","input":{"keyword":"hedonism wines","language_name":"English","location_code":2840},"endpoint_version":4}'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 4; inspect the current price before running.
Step 2Try a specific example task
When you need to prepare a research brief, you might find published posts about your topic and use them as source material.
Copy this prompt into your agent to find relevant posts for your research brief.
Use dataforseo:/v3/business_data/google/reviews/task_post on Glasser.
Find published content about my topic in the returned posts for a research brief.Endpoint structure
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"keyword"
],
"properties": {
"cid": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"tag": {
"type": "string"
},
"depth": {
"type": "integer",
"maximum": 4490,
"minimum": 1,
"description": "Results to collect (1-4490, default 10). DataForSEO bills each page of up to 10 results."
},
"keyword": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"sort_by": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"place_id": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"priority": {
"type": "integer",
"description": "Task priority: 1 normal (default) or 2 high. DataForSEO charges extra for high priority."
},
"language_code": {
"type": "string"
},
"language_name": {
"type": "string",
"maxLength": 2048,
"minLength": 1
},
"location_code": {
"type": "integer"
},
"location_name": {
"type": "string"
},
"location_coordinate": {
"type": "string",
"maxLength": 2048,
"minLength": 1
}
},
"additionalProperties": false
}{
"keyword": "hedonism wines",
"language_name": "English",
"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. | $0.00375 |
|---|---|---|
| Maximum per Run | The total charge will not exceed this amount. | $16.8375 |
| No matching data | The Provider answered: nothing matched. | $0.002 |
| 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 |