Building Your Own Keyword Library: ABA, Reverse Lookup, and Expansion

Sep 13, 2026

Most sellers' "keyword library" is a spreadsheet assembled from several places: some terms from the search dropdown, some from competitor listings, some from ad reports. The problem is not a shortage of terms. It is that those terms are measured differently, so the sheet cannot be sorted and no one can explain why a term ranks where it does.

This post pins down what each of the three keyword datasets measures, then how to merge them.

export ECOMMERCE_DATA_API_KEY="your_api_key"

Three datasets, three questions

DatasetThe question it answersEndpoint
ABA rankingsWhere this term ranks in platform searchABA Weekly
Reverse traffic lookupWhich terms a given ASIN actually gets impressions onReverse Keyword Lookup
Keyword expansionWhich related terms a set of ASINs surfaces that you did not think ofKeyword Expansion

None substitutes for another. ABA gives you demand-side rank, reverse lookup gives you supply-side actual impressions, and expansion finds blind spots.

Step 1: establish a demand baseline with ABA

ABA data is sliced weekly and monthly. Weekly suits short-term movement; monthly suits setting a quarterly direction.

curl --request POST \
  --url https://ecommercedataapi.com/v1/amazon/aba/research/weekly \
  --header "Content-Type: application/json" \
  --header "X-API-Key: ${ECOMMERCE_DATA_API_KEY}" \
  --data '{
  "date": "20250802",
  "includeKeywords": "screen protector",
  "marketplace": "US",
  "page": 1,
  "size": 20
}'

date decides which week you get. This is the parameter people get wrong — two queries against different weeks produce a rank change nobody can explain. Store it as a timestamp field on every row in your library.

For direction over time, pull ABA Keyword Trends rather than differencing two weeks yourself.

Step 2: reverse-look-up actual impressions

ABA tells you which terms have demand. It does not tell you who is capturing it. Reverse lookup fills that gap:

curl --request POST \
  --url https://ecommercedataapi.com/v1/amazon/traffic/keyword \
  --header "Content-Type: application/json" \
  --header "X-API-Key: ${ECOMMERCE_DATA_API_KEY}" \
  --data '{
  "marketplace": "US",
  "asin": "B08CK5Z5Q1",
  "month": "202507",
  "page": 1,
  "size": 20
}'
Reverse Keyword Lookup APIPass an ASIN, get the search terms that listing actually earns impressions on

Run it on your own ASIN too. Querying only competitors gives you a table proving they are strong. Putting yourself in the same batch is what makes a difference set possible — the terms they have and you do not are your action list. The full method is in Competitor analysis in Cursor or Codex.

Step 3: expand to find blind spots

The first two steps are bounded by terms and ASINs you already know. Keyword Expansion works backwards from a set of ASINs to related terms you had not considered:

curl --request POST \
  --url https://ecommercedataapi.com/v1/amazon/traffic/extend \
  --header "Content-Type: application/json" \
  --header "X-API-Key: ${ECOMMERCE_DATA_API_KEY}" \
  --data '{
  "asinList": ["B07Z82895W"],
  "historyDate": "202507",
  "marketplace": "US",
  "page": 1,
  "size": 20,
  "queryType": 1
}'

Add Google Keyword Trends when you want an off-platform view, but remember that is search-engine demand, which is not the same as purchase intent inside the marketplace.

Three traps when merging

Trap one: mixed time definitions. ABA is weekly or monthly, reverse lookup is monthly, expansion takes historyDate. Do not put metrics from different periods in the same column and sort them. Store the source endpoint and the time definition as two fields on every row.

Trap two: page size changes the conclusion. A "missing terms" list computed from the top 20 is not the same as one computed from the top 100. Fix a page size and keep it consistent across every ASIN.

Trap three: treating estimates as absolute. Search demand and impression magnitude are estimates. Sorting by them works. Computing "this term will bring N orders" is over-reading them.

A library structure that holds up

FieldSourceNote
TermAll three datasetsPrimary key
Source endpointWritten on captureExplains the definition
Time definitiondate / month / historyDateWeek or month; always store it
MarketplaceRequest parameterNever mix across marketplaces
Demand metricABA / Keyword ResearchFlag as an estimate
Do I have impressionsReverse lookup on your ASINBasis of the difference set
Do competitorsReverse lookup on their ASINsBasis of the difference set

Those last two columns are what turn a list of terms into a priority list you can act on.

Limits

  • Reverse lookup returns an estimated impression relationship, not platform-disclosed organic or ad placement data.
  • ABA rank reflects relative position in platform search. It does not convert to an absolute search volume.
  • A library is only useful if it is re-pulled on a schedule; a one-off snapshot goes stale fast. Rate limits are per account — see errors and rate limits.

Ecommerce Data API

Building Your Own Keyword Library: ABA, Reverse Lookup, and Expansion | Ecommerce Data API