# Vietnamese Keyword Suggestions (Google, YouTube, Bing) (`ranthis/vietnamese-keyword-suggestions`) Actor

Autocomplete keyword ideas for Vietnamese and other languages from Google, YouTube and Bing, expanded with Vietnamese letters (ă, â, đ, ê, ô, ơ, ư) and Vietnamese question patterns, de-duplicated across accented and unaccented forms.

- **URL**: https://apify.com/ranthis/vietnamese-keyword-suggestions.md
- **Developed by:** [RanThis](https://apify.com/ranthis) (community)
- **Categories:** SEO tools, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 keyword suggestions

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Vietnamese Keyword Suggestions (Google, YouTube, Bing)

Get hundreds of **real autocomplete keyword ideas in Vietnamese** from one seed keyword — from Google, YouTube and
Bing at once. Built for SEO, content planning, YouTube topic research and PPC keyword lists targeting Vietnam.

Generic autocomplete scrapers expand a seed with `a–z`. Vietnamese search queries do not work like that: people type
letters such as **ă, â, đ, ê, ô, ơ, ư** and ask questions like *"… là gì"*, *"cách …"*, *"… có nên"*. This Actor
expands with both, then **merges duplicates across accented and unaccented spelling** (`cách làm` = `cach lam`), so
you get one clean list.

### What you get

For the seed `phần mềm kế toán` with Google + YouTube + Bing, a test run on Apify returned **618 unique suggestions in
about 40 seconds**, e.g. `phần mềm kế toán misa`, `phần mềm kế toán miễn phí`, `phần mềm kế toán là gì`.

Each result row:

| Field | Example | Meaning |
|---|---|---|
| `seed` | `phần mềm kế toán` | The keyword you entered |
| `suggestion` | `phần mềm kế toán misa` | Autocomplete suggestion |
| `engine` | `google` | `google`, `youtube` or `bing` |
| `position` | `1` | Position in the autocomplete list (1 = top) |
| `expansion` | `letter:m`, `question:là gì`, `seed` | How the query was expanded |
| `depth` | `1` | 2 when it came from expanding a top suggestion |
| `normalized` | `phan mem ke toan misa` | Lower-case, without diacritics (used for de-duplication) |
| `language`, `country` | `vi`, `vn` | Market used |
| `fetchedAt` | `2026-10-21T11:22:33+00:00` | UTC time |

Download as JSON, CSV, Excel or use the API.

### How to use

1. Enter one or more **seed keywords**.
2. Pick **engines** (Google, YouTube, Bing).
3. Keep `language = vi`, `country = vn` for Vietnam. Other markets work too (`th`/`th`, `id`/`id`, `en`/`us`…), but the
   Vietnamese letters and question patterns are only added for `vi`.
4. Optional: `depth = 2` also expands the top 10 suggestions of each seed (up to 11× more requests).

### Pricing

Pay per result: **$1.00 per 1,000 unique suggestions** (plus Apify's small default fee per run start). One seed
with three engines usually gives 400–800 suggestions, i.e. about $0.40–$0.80. Use *Max suggestions per seed* or the
run's maximum charge to cap spending; the Actor stops when your limit is reached.

### Notes and limits

- Data comes from the public autocomplete endpoints that browsers use. Suggestions change over time and by location;
  they show what people type, not search volume.
- Requests are rate-limited and retried. If a search engine temporarily refuses requests, the run still finishes and
  the status message tells you how many requests failed.
- Cốc Cốc is not included because its robots.txt disallows its suggestion endpoint.
- No personal data is collected.
- Not affiliated with Google, YouTube or Microsoft Bing.

### Feedback

Found a problem or need another market? Open an issue on the Actor's **Issues** tab — it is answered within 14 days.

# Actor input Schema

## `seeds` (type: `array`):

Keywords to expand, e.g. "cách làm", "phần mềm kế toán".

## `engines` (type: `array`):

Where to collect autocomplete suggestions from.

## `language` (type: `string`):

Interface language code (vi, en, th, id, ms, tl…). Vietnamese letters and question patterns are only added for vi.

## `country` (type: `string`):

Two-letter country code (vn, th, id, my, ph, sg, us…).

## `expandLetters` (type: `boolean`):

Query "seed a", "seed b" … (plus ă, â, đ, ê, ô, ơ, ư for Vietnamese) to surface long-tail suggestions.

## `questionPatterns` (type: `boolean`):

Add "… là gì", "cách …", "… có nên", "… bao nhiêu" and similar question forms (Vietnamese only).

## `depth` (type: `integer`):

1 = expand the seed only. 2 = also expand the top 10 suggestions of the seed (up to 11× more requests).

## `maxSuggestionsPerSeed` (type: `integer`):

Upper limit of unique suggestions saved (and charged) per seed.

## `concurrency` (type: `integer`):

Lower it if you see failed requests.

## Actor input object example

```json
{
  "seeds": [
    "phần mềm kế toán"
  ],
  "engines": [
    "google",
    "youtube"
  ],
  "language": "vi",
  "country": "vn",
  "expandLetters": true,
  "questionPatterns": true,
  "depth": 1,
  "maxSuggestionsPerSeed": 1000,
  "concurrency": 4
}
```

# Actor output Schema

## `overview` (type: `string`):

All results as a table (dataset view "overview").

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "seeds": [
        "phần mềm kế toán"
    ],
    "engines": [
        "google",
        "youtube"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ranthis/vietnamese-keyword-suggestions").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "seeds": ["phần mềm kế toán"],
    "engines": [
        "google",
        "youtube",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("ranthis/vietnamese-keyword-suggestions").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "seeds": [
    "phần mềm kế toán"
  ],
  "engines": [
    "google",
    "youtube"
  ]
}' |
apify call ranthis/vietnamese-keyword-suggestions --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ranthis/vietnamese-keyword-suggestions"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/JWO1RuG44A3iMPDRT/builds/ob18xTtZhVoWhwy0n/openapi.json
