Skip to main content
Manage keyword research programmatically — list, add, delete, star, bulk-update status, trigger AI-powered research, and organize keywords into groups. Every endpoint below has a live playground in the sidebar.

What you can do

Manage keywords

List with filters, add in bulk (with optional enrichment), delete, star, and bulk-update status.

Run AI research

Expand seed terms into ranked keyword ideas with DataForSEO enrichment.

Organize into groups

List keyword groups and assign keywords to them (groups are auto-created on add).

Enrich on demand

Pass enrich: true when adding keywords to auto-fill volume, difficulty, CPC, and intent.

The research job flow

POST /keywords/research is a long-running operation. It returns a job_id immediately with 202 Accepted — poll GET /keywords/research/{jobId} until status is completed or failed.
1

Start the job

POST /keywords/research with your seed_keywords. You get back { "job_id", "status": "pending", "poll_url" }.
2

Poll for completion

GET /keywords/research/{jobId} returns status — one of pending, processing, completed, or failed. Results land in result when done.
Avoid sync: true in production — it waits inline and is subject to gateway timeouts. Keyword research consumes crawl credits and returns 402 when your quota is exhausted.