---
title: "Run Fast Keywords"
method: POST
path: "/v1/fast-keywords"
tags: ["v1"]
---

# Run Fast Keywords

`POST /v1/fast-keywords`

## Request

- Base URL: `https://api.datadive.tools`
- URL: `https://api.datadive.tools/v1/fast-keywords`
- Auth: API key in header `x-api-key`

Finds the keywords a single ASIN ranks for, grouped into roots, with its top Competitors. Costs 1 Dive token. Poll GET /v1/fast-keywords/{fastKeywordsId} with the returned `fastKeywordsId` until `status` is `success` or `failed`. A fresh result for the same product is reused and returns `success` right away.

**Previewing.** Send `dryRun: true` to get `tokenCost` and `hasEnoughTokens` without running anything.

## Request body

- RunFastKeywordsRequestDto
  - `dryRun` boolean: Check eligibility and Dive tokens without running anything or spending a token
  - `marketplace` 'com' | 'ca' | 'co.uk' | 'com.mx' | 'in' | 'fr' | 'de' | 'es' | 'it' | 'co.jp', required: The Amazon marketplace where the product is listed
  - `asin` string, required: The ASIN to find keywords for

## Response `201`

- object
  - `success` boolean
  - `data` union
    - FastKeywordsRunResponseDto
      - `fastKeywordsId` number, required: Id of the Fast Keywords result. Poll GET /v1/fast-keywords/{fastKeywordsId} with it.
      - `requestId` number, required: Id of this request
      - `status` 'in-progress' | 'failed' | 'success', required: `success` right away when a fresh result for the same product already exists
      - `tokenCost` number, required: Dive tokens this call consumed
      - `estimatedCompletionDate` string, required: Estimated completion timestamp in ISO 8601 format
    - FastKeywordsRunPreviewResponseDto
      - `tokenCost` number, required: Dive tokens the call would consume
      - `hasEnoughTokens` boolean, required: Whether your organization has enough Dive tokens left

## Other responses

- `400`: Invalid ASIN or marketplace, or not enough Dive tokens
- `401`: Api key is invalid
- `403`: Unauthorized to access the resource
- `404`: Resource not found
- `429`: Rate limit exceeded (2 requests/min per API key).
- `500`: Internal error
- `503`: Our product data provider is rate-limited. No token was spent; try again in a few minutes.

## Changes

- **2026-10-23** `8196b366773e`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/datadive/apis/data-dive-developer-apis/changes/v1/fast-keywords/post.md)

---

[API](https://skmtc.dev/datadive/apis/data-dive-developer-apis.md) - [All operations](https://skmtc.dev/datadive/apis/data-dive-developer-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/datadive/apis/data-dive-developer-apis/revisions/94c025cac171?raw)
