DeviantArt Deviations & Artist Scraper avatar

DeviantArt Deviations & Artist Scraper

Pricing

from $6.80 / 1,000 deviations

Go to Apify Store
DeviantArt Deviations & Artist Scraper

DeviantArt Deviations & Artist Scraper

Scrape DeviantArt deviations by keyword, tag, artist or URL: title, artist, image, favourites, views, tags, category, description, mature flag and download availability, plus artist watchers and total deviation count. For art discovery, trend research and creative lead generation.

Pricing

from $6.80 / 1,000 deviations

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

DeviantArt Deviations & Artist Scraper

DeviantArt Deviations & Artist Scraper

Here is one real result, with every field the actor returns (the signed imageUrl is trimmed here for readability; the actor returns the full URL):

{
"imageUrl": "https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/37b45cc0-364f-497c-9a38-fb1c5ba4cda0/dmlqoct-af73763d-3923-4282-86cb-6281e0e9e97e.png/v1/fill/w_1920,h_1075,q_80,strp/castle_fantasy_landscape_adoptable_superhd_hq_8k_by_dissunder_dmlqoct-fullview.jpg?token=...",
"title": "Castle Fantasy Landscape Adoptable SuperHD HQ 8K",
"url": "https://www.deviantart.com/dissunder/art/Castle-Fantasy-Landscape-Adoptable-SuperHD-HQ-8K-1366772429",
"deviationId": "1366772429",
"mediaType": "image",
"artistUsername": "Dissunder",
"artistName": "Dissunder",
"artistUrl": "https://www.deviantart.com/Dissunder",
"artistType": "core_max",
"artistLevel": "Hobbyist",
"artistSpeciality": "Digital Art",
"artistWatchers": 17238,
"artistDeviationsCount": null,
"publishedDate": "2026-08-10T20:06:06.000Z",
"favourites": 1,
"comments": 0,
"views": 780,
"downloads": 0,
"isMature": false,
"isAiGenerated": true,
"isDownloadable": false,
"downloadPriceUsd": null,
"license": "none",
"fileType": "png",
"shortUrl": "http://fav.me/dmlqoct",
"isDailyDeviation": false,
"searchInput": "fantasy landscape",
"description": "⭐️ \n- I can help create your character as well. Commissions Open. Write me a note!\n- All rights for buyer\n- To purchase, click \"adopt\" below the submission or Write in Comments...",
"tags": ["adoptable", "castle", "fantasy", "fantasylandscape", "landscape", "medievalfantasy", "fantasylandscapeart", "superhd"],
"width": 7560,
"height": 4232,
"fileSizeBytes": 61291937,
"hasWatermark": true,
"aiSummary": "This digital artwork features a vibrant and enchanting castle set within a fantastical landscape, characterized by its medieval fantasy style. The mood is whimsical and inviting, perfect for those who appreciate high-quality, immersive fantasy art.",
"aiTags": ["castle", "fantasy", "landscape", "medieval", "adoptable", "digitalart", "superhd", "hq", "8k", "fantasyart", "artcommission", "fantasylandscape"],
"observedAt": "2026-08-14T07:21:33.926Z",
"error": null
}

The most complete DeviantArt scraper available. It returns every field a deviation exposes (image, title, stats, license, file type, maturity and AI-generated flags), enriches each artwork with description, full tag list, image dimensions and download price, adds artist details (watchers, level, speciality), and gives you four input modes plus opt-in AI enrichment to target exactly the deviations you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor collects deviations (artworks) from DeviantArt by search keyword, tag, direct deviation URL, or artist, and writes one normalized record per deviation to the run's dataset. Each record carries the image URL, title, deviation URL and ID, media type, engagement stats (favourites, comments, views, downloads), maturity and AI-generated flags, license, file type, and the artist's username, level, speciality, and watcher count.

With withDetails on (the default), each deviation is opened to add its full description, complete tag list, image dimensions, file size, watermark flag, and download price when it is for sale. Missing source values are returned as null, never invented. Optional paid add-ons can attach an AI artwork summary and AI discovery tags.

Quickstart

Open the actor, paste this into the input, and press Run. It returns 10 deviations matching "fantasy landscape" with full details.

{
"searchQueries": ["fantasy landscape"],
"maxDeviations": 10,
"withDetails": true
}

Provide at least one of searchQueries, tags, deviationUrls, or artistUrls. Turn off withDetails for a faster, lighter run.

Input reference

FieldTypeRequiredDefaultDescriptionExample
searchQueriesstring[]no["fantasy landscape"]Keywords or topics to search on DeviantArt. One run can process several searches.["dragon art"]
tagsstring[]no(empty)DeviantArt tags to browse (no #).["digitalart"]
deviationUrlsstring[]no(empty)Direct links to individual deviations to scrape.["https://www.deviantart.com/user/art/Title-123"]
artistUrlsstring[]no(empty)Artist usernames or profile URLs. Returns each artist's gallery deviations plus watchers and deviation count.["Dissunder"]
maxDeviationsintegerno10Maximum number of deviations to collect across all inputs.50
withDetailsbooleannotrueOpen each deviation to add description, full tags, dimensions, and download price.false
withSummarybooleannofalseAI add-on. Summarize each artwork (subject, style, mood). Requires details and a real description. Billed per successful summary. Disabled on free plans.true
withTagsbooleannofalseAI add-on. Generate descriptive discovery tags for each artwork. Requires details and a real description. Billed per successful tagging. Disabled on free plans.true

Output reference

One dataset item per deviation. Types: string, integer, number, boolean, string[], or null when the source value is absent.

FieldTypeDescription
imageUrlstringDirect (signed) image URL for the deviation.
titlestringDeviation title.
urlstringCanonical deviation page URL.
deviationIdstringDeviantArt deviation ID (unique per artwork).
mediaTypestringMedia type, for example image.
artistUsernamestringArtist's username.
artistNamestringArtist's display name.
artistUrlstringArtist's profile URL.
artistTypestringAccount type, for example core_max.
artistLevelstringArtist level, for example Hobbyist.
artistSpecialitystringArtist's speciality, for example Digital Art.
artistWatchersintegerNumber of watchers on the artist.
artistDeviationsCountintegerArtist's total deviation count when available, else null.
publishedDatestringISO 8601 publish timestamp.
favouritesintegerNumber of favourites.
commentsintegerNumber of comments.
viewsintegerNumber of views.
downloadsintegerNumber of downloads.
isMaturebooleantrue when flagged mature.
isAiGeneratedbooleantrue when flagged AI-generated.
isDownloadablebooleantrue when the file can be downloaded.
downloadPriceUsdnumberDownload price in USD when for sale, else null.
licensestringLicense label, for example none.
fileTypestringFile type, for example png.
shortUrlstringShort fav.me URL.
isDailyDeviationbooleantrue if it was a Daily Deviation.
searchInputstringThe input value (keyword/tag/artist) that produced this record.
descriptionstringFull deviation description (with details on).
tagsstring[]Full tag list (with details on).
widthintegerImage width in pixels (with details on).
heightintegerImage height in pixels (with details on).
fileSizeBytesintegerFile size in bytes (with details on).
hasWatermarkbooleantrue when the preview is watermarked.
aiSummarystringAI artwork summary (opt-in), else null.
aiTagsstring[]AI discovery tags (opt-in), else null.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Example output record

Real record from a live run (input {"searchQueries": ["fantasy landscape"], "maxDeviations": 5, "withDetails": true, "withSummary": true, "withTags": true}), with imageUrl and description trimmed for brevity:

{
"title": "Castle Fantasy Landscape Adoptable SuperHD HQ 8K",
"url": "https://www.deviantart.com/dissunder/art/Castle-Fantasy-Landscape-Adoptable-SuperHD-HQ-8K-1366772429",
"deviationId": "1366772429",
"mediaType": "image",
"artistUsername": "Dissunder",
"artistLevel": "Hobbyist",
"artistSpeciality": "Digital Art",
"artistWatchers": 17238,
"publishedDate": "2026-08-10T20:06:06.000Z",
"favourites": 1,
"comments": 0,
"views": 780,
"isMature": false,
"isAiGenerated": true,
"isDownloadable": false,
"downloadPriceUsd": null,
"license": "none",
"fileType": "png",
"tags": ["adoptable", "castle", "fantasy", "fantasylandscape", "landscape", "medievalfantasy", "superhd"],
"width": 7560,
"height": 4232,
"fileSizeBytes": 61291937,
"hasWatermark": true,
"aiSummary": "This digital artwork features a vibrant and enchanting castle set within a fantastical landscape, characterized by its medieval fantasy style.",
"aiTags": ["castle", "fantasy", "landscape", "medieval", "adoptable", "digitalart", "8k"],
"observedAt": "2026-08-14T07:21:33.926Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~deviantart-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"searchQueries":["fantasy landscape"],"maxDeviations":10,"withDetails":true}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~deviantart-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"artistUrls":["Dissunder"],"maxDeviations":50}'

Apify CLI:

apify call scrapers_lat/deviantart-scraper \
--input '{"tags":["dragon"],"maxDeviations":25}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per deviation record returned (result event). See the pricing tab for the current per-result price.
  • Details and AI add-ons are billed separately. Fetching deviation details, AI summary, and AI tags each charge only when they succeed and only when enabled.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 deviations per run. AI add-ons are disabled on free plans. Upgrade for higher limits.

FAQ and troubleshooting

Which input should I use? Use searchQueries for keyword discovery, tags to browse a tag, deviationUrls for specific artworks, or artistUrls to pull an artist's gallery. You can combine them; results are capped by maxDeviations.

Why is description or tags empty? Those come from the deviation detail page. Turn on withDetails (the default) to populate description, full tags, dimensions, and download price.

Can I tell which artworks are AI-generated? Yes. isAiGenerated reflects DeviantArt's AI-generated flag on the deviation.

Why is downloadPriceUsd null? The deviation is not for paid download, or no price is published. Missing source values are returned as null, never invented.

Is this an official DeviantArt tool? No. This actor is independent and has no affiliation with DeviantArt. It reads only data that is publicly available. Use it in accordance with the source's terms and respect artists' rights.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with DeviantArt. Accesses only publicly available data. Use in accordance with the source's terms of service and respect artists' rights.