Refresh search volume data
seo_rankings.volume.fetch
Fetches from DataForSEO (paid; one call per 700 keywords) the monthly search volume, CPC, competition and 12-month trend of the project's ACTIVE keywords (or of the keyword_ids given, active ones only) and stores them on each keyword, using the location and language of the project's first engine. Returns how many keywords were requested and updated, how many failed on the provider side, and the calls made. Use it after adding keywords without search volume or to refresh stale data; it does not measure positions. Not available in demo organizations: 403 demo_read_only, already on the dry run. Outside the app it needs a dry run and its confirm_token (it pays DataForSEO).
Needs confirmation: first dry_run: true (preview and confirm_token, valid 10 minutes and for one run), then the same body with confirm_token. In a few operations only with certain data: the description says when. Why and how: Dry run and confirm_token.
- Scope
seo_rankings:write- Permission
- Edit in the module
- MCP tool
seo_rankings_volume_fetchOn the full surface; on the compact one,mb_execute_operationwithid: "seo_rankings.volume.fetch".
Declared cost: up to 502 reads and 500 writes per call (they count against the daily quota). Touches an external platform (dataforseo): it counts against the external operations quota.
Parameters
project_idstringpathRank project id (from seo_rankings.projects.list).
keyword_idsarray<string>bodyoptionalOnly these keywords. Default: every ACTIVE keyword of the project.
Response
updatednumberrequestednumberfailednumbercallsnumberskipped_inactivenumbernot_foundarray<string>Errors
Example
curl -X POST "https://api.mb-suite.com/v1/seo/rankings/projects/{project_id}/volume" \
-H "Authorization: Bearer $MB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"dry_run": true
}'Try it with your test API key
With a test API key the request always goes to your practice organization: example data you can reset. In the practice organization this operation is not simulated (it reaches another platform): it answers 409 sandbox_external_unavailable.