Discover keyword ideas
Expand seed keywords into related search terms that fall into the same product or service categories, each with search volume, CPC, competition, keyword difficulty, and search intent for SEO and content research.
Pricing — $$ · min $0.05
Minimum 50 credits ($0.05) per call. Records returned above the minimum bill 1 credit ($0.001) each.
Authorization
bearerAuth UnifAPI API key. Provider credentials are managed by UnifAPI.
In: header
Header Parameters
Pin the API version an integration was built against (date-based, e.g. 2026-07-01). Omit to use the current version. Public URL paths stay stable and unversioned; breaking changes ship under a new dated version and are announced with Deprecation and Sunset response headers. The served version is echoed in every response's Unifapi-Version header. Policy: https://unifapi.com/versioning.md
Client-supplied unique key that makes a write request safe to retry. If a request with the same key was already processed, the original response is replayed (with Idempotency-Replayed: true) instead of executing — and billing — again. Send a fresh UUID per logical operation. Best-effort with a 24h window.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/seo/keywords/ideas" \ -H "Content-Type: application/json" \ -d '{ "keywords": [ "string" ] }'{ "request_id": "string", "data": { "seed_keywords": [ "string" ], "location": "string", "language": "string", "view": "summary", "total_count": 0, "offset": 0, "offset_token": "string", "results": [ { "keyword": "string", "search_volume": 0, "cpc": 0, "competition": 0, "competition_level": "string", "keyword_difficulty": 0, "search_intent": "string", "search_intent_alternatives": [ "string" ], "low_top_of_page_bid": 0, "high_top_of_page_bid": 0, "words_count": 0, "detected_language": "string", "search_volume_trend": { "monthly": 0, "quarterly": 0, "yearly": 0 }, "serp_item_types": [ "string" ], "serp_results_count": 0, "monthly_searches": [ { "year": 0, "month": 0, "search_volume": 0 } ], "last_updated_at": "string" } ] }, "billing": { "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}{ "error": { "type": "validation_error", "message": "string", "request_id": "string", "issues": [ null ], "billing": { "credits_required": 0, "credits_charged": 0, "records_charged": 0, "balance_remaining": 0, "truncated_due_to_balance": true } }}