Quarra
Guide · Adobe Stock

Adobe Stock API key: who can get one, and how to read keywords and downloads without it

Adobe's Stock API is closed to contributors, and it has no sales data or top sellers. Here is who can still get a key, and how to pull the keywords, downloads and AI labels of a niche's top assets in a few lines of Python.

Checked against Adobe's Stock API documentation and measured on October 30, 2026.

Open Adobe Stock Scraper on ApifyErrors are not charged, a run that finds nothing new costs only its start, and you can cap the cost of a run.

The short answer

Since November 2024, Adobe reserves the Stock API for Stock for Enterprise customers; others must apply and be approved, and Adobe states that contributor use cases will not be approved: there is no API for sales data or top sellers. The keywords, download counts, upload dates and AI labels of Adobe Stock assets are not behind a login. Our Adobe Stock Scraper returns them for any search, contributor or list of assets, without an account, and our Adobe Stock Analyzer follows a list of assets run after run. The first 100 “coffee shop” photos of Adobe's downloads sort, with their keyword lists, took a 4-second run and cost $0.0606 on Apify's Free plan.

Who can get an Adobe Stock API key

Adobe's getting started page for the Stock API, read on October 30, 2026, opens with this notice: “Beginning in November, 2024, the Stock API will only be available to Stock for Enterprise customers.”

You areWhat Adobe's page says
A Stock for Enterprise customerYou can create an integration in the Adobe Developer Console if you are a System Administrator or in the Developers group of your Stock product.
An Adobe affiliateAffiliates approved for the Adobe campaign “may be pre-approved”; they also apply to Adobe's prerelease program for the API.
Anyone elseYou apply to the prerelease program and fill out a survey; approvals go first to customers with active, non-trial Stock plans.
A contributor“Approvals will NOT be given to Contributor use cases because there is no API for Stock Contributors.”
A Creative Cloud subscriberA Creative Cloud plan such as All Apps cannot be used to create an integration: it is not a Stock product.

The same page adds: “There is no API to get sales data, see top sellers, see creation dates or upload new Stock content.” Your own sales stay in the Contributor portal. What other contributors sell, and how they tag it, is the part a contributor cannot get from Adobe in bulk.

The top downloads of a niche and their keywords

Sort a search by downloads and you get the assets Adobe ranks as the most downloaded in that niche, each with its keyword list, its download count, its upload date and Adobe's generative AI label. This script takes the first 100 photos of that sort for “coffee shop”, saves them in a CSV and counts in how many of them each keyword appears:

import collections
import csv
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("quarra/adobe-stock-scraper").call(run_input={
    "searchQueries": ["coffee shop"],
    "sort": "downloads",
    "contentTypes": ["photo"],
    "maxItems": 100,
    "maxResultsPerSearch": 100,
})
assets = [a for a in client.dataset(run.default_dataset_id).iterate_items() if a["status"] == "ok"]
assets.sort(key=lambda a: a["position"])

with open("top-sellers.csv", "w", newline="", encoding="utf-8") as f:
    w = csv.writer(f)
    w.writerow(["position", "assetId", "title", "downloads", "keywordCount", "uploadedAt", "isAIGenerated", "url"])
    for a in assets:
        w.writerow([a["position"], a["assetId"], a["title"], a["downloads"], a["keywordCount"],
                    a["uploadedAt"][:10], a["isAIGenerated"], a["url"]])

# in how many of the top sellers each keyword appears
counts = collections.Counter(k for a in assets for k in {k.lower() for k in a["keywords"]})
for keyword, n in counts.most_common(15):
    print(f"{n:3d}  {keyword}")

Tested with apify-client 3.3 on October 30, 2026: 100 assets in a 4-second run. The keywords found most often among those 100 assets:

KeywordAssets using it
cafes94
table60
hot drink59
background52
eatery51
drink47
food46
business45

The keywords are the ones Adobe Stock shows in English, where it maps words to its own terms: none of the 100 lists contains “coffee”, while “cafes” is on 94 of them and “hot drink” on 59. With apify-client 2.x, write run["defaultDatasetId"] instead of run.default_dataset_id.

Top downloads against new uploads

The same search sorted by newest, limited to photos added in the past month ("sort": "newest", "addedWithin": "1m"), shows the competition a new upload meets. Both runs on October 30, 2026:

First 100, downloads sort100 newest, past month
Photos matching the search7,734,75985,490
With Adobe's generative AI label094
Uploaded before 2022990
Median downloads3,7210
Median keywords per asset4542

In this niche, the most downloaded photos are years old and carry no AI label, while almost every new upload does. One niche on one day: run the same two searches on yours before deciding what to shoot or generate.

Follow a list of assets

To watch the assets you found, or your own portfolio, give their IDs to the Adobe Stock Analyzer and schedule it on Apify, daily or weekly. With onlyNew and trackDownloads, a run returns only the assets added to the list since the last run of the same watch and those whose download count changed, with downloadsChange, previousDownloads and previousDeliveredOn:

{
  "assetUrls": ["112375286", "291164587", "302682764"],
  "onlyNew": true,
  "trackDownloads": true,
  "watchName": "coffee top downloads"
}

On October 30, 2026, a watch of the first 20 assets above delivered the 20 assets on its first run; run again 14 seconds later, it delivered nothing and charged only the start fee. To catch new uploads instead, the same onlyNew switch on the Scraper with a search sorted by newest returns only the assets the watch has not delivered before.

Limits

  • Downloads are Adobe Stock's own counter, not sales or revenue, and Adobe's sort by downloads is its own ranking: it follows downloads, but not strictly. The first result of the search above had 497 downloads, the second 10,756.
  • Views are 0 for many assets, even assets with downloads: 22 of the 100 assets above.
  • Adobe Stock shows at most 10,000 results for one search. Set maxResultsPerSearch above 10,000 and the Scraper splits the search by content type, orientation, AI label and model release, and skips repeats. On October 29, 2026, “coffee” returned 25,000 distinct assets this way in 257 seconds.
  • Asset descriptions and license prices are not available. You get the data and the watermarked previews, never the licensed files.

What it costs

Apify planScraper, per 1,000 assetsAnalyzer, per 1,000 assets
Free$0.60$0.30
Starter$0.50$0.27
Scale$0.40$0.24
Business and above$0.30$0.20

Plus a start fee per run: $0.0006 for the Scraper, $0.0005 for the Analyzer, at the default memory. The 100 assets above cost $0.0606 on the Free plan. Assets that no longer exist, repeats and errors are not charged. Apify's Free plan includes $5 of usage a month.

Questions

How do I get an Adobe Stock API key?

Through the Adobe Developer Console, if your organization has Stock for Enterprise. Otherwise you apply to Adobe's prerelease program, and Adobe says contributor use cases will not be approved.

Is there an Adobe Stock API for contributors?

No. Adobe's page says so in those words, and sends contributors to the Contributor portal for their own sales and uploads.

How can I check the downloads of an Adobe Stock asset?

Give its URL or ID to the Analyzer: each asset comes back with its downloads, views, keywords and upload date, for $0.30 per 1,000 assets on the Free plan, plus the start fee.

Do I need an Adobe account?

No. You need no Adobe account and no API key of your own.

Run it on the Apify Store

Assets cost $0.60 per 1,000 on the Free plan ($0.50 on Starter, $0.40 on Scale, $0.30 on Business and above), keywords and downloads included, plus $0.0006 per run. Errors are not charged, a run that finds nothing new costs only its start, and you can set a maximum cost per run.