DeviantArt Artwork Search, Gallery & Trending Feed
Reads DeviantArt's public feeds to find deviations by keyword, browse an artist's full gallery, or pull the current trending artwork feed by category.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | Choose what to collect. |
searchQuery | string | optional | Keyword or phrase to search for. Supports DeviantArt search syntax. |
tag | string | optional | Tag slug or tag URL, for example fantasy or https://www.deviantart.com/tag/fantasy. |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
mode | string | required | Choose what to collect. |
searchQuery | string | optional | Keyword or phrase to search for. Supports DeviantArt search syntax. |
tag | string | optional | Tag slug or tag URL, for example fantasy or https://www.deviantart.com/tag/fantasy. |
username | string | optional | DeviantArt username or profile URL whose gallery should be collected. |
artworkUrls | array | optional | Artwork page URLs, /art/... links, or numeric deviation IDs. |
contentType | string | optional | Limit keyword searches to images or literature. |
order | string | optional | Order used when browsing a tag. |
includeDetails | boolean | optional | Open each artwork page to add tags, description, original dimensions, file size and watermark flag when available. |
includeArtistStats | boolean | optional | Open each artist profile to add watchers, deviation count, pageviews and join date. |
excludeMature | boolean | optional | Skip artwork flagged as mature or sensitive. |
maxItems | integer | optional | Maximum number of artwork records to return. |
Download the published input schema
View complete JSON
{
"description": "Search DeviantArt artwork, browse a tag, read an artist's gallery, collect Daily Deviations, or open specific artwork pages.",
"properties": {
"artworkUrls": {
"description": "Artwork page URLs, /art/... links, or numeric deviation IDs.",
"editor": "stringList",
"items": {
"type": "string"
},
"title": "Artwork URLs or IDs",
"type": "array"
},
"contentType": {
"default": "all",
"description": "Limit keyword searches to images or literature.",
"editor": "select",
"enum": [
"all",
"image",
"literature"
],
"enumTitles": [
"All content",
"Images only",
"Literature only"
],
"title": "Content type",
"type": "string"
},
"excludeMature": {
"default": false,
"description": "Skip artwork flagged as mature or sensitive.",
"editor": "checkbox",
"prefill": false,
"title": "Exclude mature artwork",
"type": "boolean"
},
"includeArtistStats": {
"default": false,
"description": "Open each artist profile to add watchers, deviation count, pageviews and join date.",
"editor": "checkbox",
"prefill": false,
"title": "Include artist statistics",
"type": "boolean"
},
"includeDetails": {
"default": false,
"description": "Open each artwork page to add tags, description, original dimensions, file size and watermark flag when available.",
"editor": "checkbox",
"prefill": false,
"title": "Include artwork details",
"type": "boolean"
},
"maxItems": {
"default": 30,
"description": "Maximum number of artwork records to return.",
"maximum": 500,
"minimum": 1,
"prefill": 3,
"title": "Maximum records",
"type": "integer"
},
"mode": {
"default": "search",
"description": "Choose what to collect.",
"editor": "select",
"enum": [
"search",
"tag",
"gallery",
"daily",
"artwork"
],
"enumTitles": [
"Search by keyword",
"Browse a tag",
"Artist gallery",
"Daily Deviations",
"Specific artwork URLs or IDs"
],
"prefill": "tag",
"title": "Mode",
"type": "string"
},
"order": {
"default": "recommended",
"description": "Order used when browsing a tag.",
"editor": "select",
"enum": [
"recommended",
"most-recent"
],
"enumTitles": [
"Recommended",
"Most recent"
],
"title": "Tag order",
"type": "string"
},
"searchQuery": {
"default": "fantasy art",
"description": "Keyword or phrase to search for. Supports DeviantArt search syntax.",
"editor": "textfield",
"title": "Search query",
"type": "string"
},
"tag": {
"description": "Tag slug or tag URL, for example fantasy or https://www.deviantart.com/tag/fantasy.",
"editor": "textfield",
"prefill": "fantasy",
"title": "Tag",
"type": "string"
},
"username": {
"description": "DeviantArt username or profile URL whose gallery should be collected.",
"editor": "textfield",
"title": "Artist username",
"type": "string"
}
},
"required": [
"mode"
],
"schemaVersion": 1,
"title": "DeviantArt Scraper Input",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
deviations | string | optional | Dataset containing all collected artwork records. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Artwork records with artist profile, signed image URLs, stats, flags, licence, dimensions and optional detail fields.",
"properties": {
"deviations": {
"description": "Dataset containing all collected artwork records.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "DeviantArt artwork",
"type": "string"
}
},
"title": "DeviantArt Artwork Search, Gallery & Trending Feed Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"views": {
"overview": {
"display": {
"component": "table",
"properties": {}
},
"title": "Artwork",
"transformation": {
"fields": [
"deviationId",
"title",
"artistUsername",
"type",
"publishedAt",
"views",
"favourites",
"deviationUrl"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
DeviantArt Artwork Search, Gallery & Trending Feed
Collect artwork from DeviantArt through its public pages. Search by keyword, browse a tag, read an artist's gallery, follow the Daily Deviations feed, or open specific artwork URLs — with no account, API key or proxy setup.
What you get
- Five input paths: keyword search, tag browse, artist gallery, Daily Deviations, and direct artwork URLs or IDs.
- Artwork metadata: title, artist, publication time, media type, file type, language, licence, and daily-deviation flag.
- Engagement stats: views, favourites, comments, downloads and private collections.
- Rights and provenance flags: mature, sensitive, downloadable, AI-generated and AI-use-disallowed.
- Signed media URLs: thumbnail and full preview links built from the page's current image tokens, plus display dimensions.
- Optional artwork details: tags, description, original dimensions, file size, original file type and watermark flag.
- Optional artist profiles: watchers, deviation count, pageviews and join date.
- Literature support: list modes return a text excerpt for literature submissions, with image fields omitted; detail enrichment merges the page description when present.
- Omit-empty output: fields the source does not expose are left out instead of filled with guesses.
Input
| Field | Type | Default | Used by |
|---|---|---|---|
mode |
Select | search |
All modes: search, tag, gallery, daily, artwork. |
searchQuery |
Text | fantasy art |
search; keyword or search URL. |
tag |
Text | – | tag; accepts fantasy or a tag URL. |
username |
Text | – | gallery; accepts a username or profile URL. |
artworkUrls |
String list | – | artwork; URL, /art/...-id link or numeric ID. |
contentType |
Select | all |
search; limit to image or literature. |
order |
Select | recommended |
tag; recommended or most-recent. |
includeDetails |
Boolean | false |
Browse modes only: adds tags, description and original-file metadata with one extra artwork page per record. |
includeArtistStats |
Boolean | false |
Adds profile statistics; one extra page per unique artist. |
excludeMature |
Boolean | false |
Skips artwork flagged mature or sensitive. |
maxItems |
Integer | 30 |
Stops after this many unique artworks (1–500). |
Every record is de-duplicated by deviation ID across pages.
Examples
Search for recent fantasy artwork:
{
"mode": "search",
"searchQuery": "fantasy art",
"contentType": "image",
"maxItems": 50
}
Browse a tag with detail enrichment:
{
"mode": "tag",
"tag": "fantasy",
"order": "most-recent",
"includeDetails": true,
"maxItems": 20
}
Read an artist gallery with profile stats:
{
"mode": "gallery",
"username": "example-artist",
"includeArtistStats": true,
"maxItems": 40
}
Open specific artworks:
{
"mode": "artwork",
"artworkUrls": [
"https://www.deviantart.com/byzwa-dher/art/Temple-485251112",
"485251112"
]
}
Output fields
deviationId, title, artistName, artistUsername, artistUrl, artistAvatarUrl, artistType, deviationUrl, shortUrl, sourceFeed, searchInput, recordType, scrapedAt, publishedAt, type, mediaType, fileType, language, isMature, isNsfg, isDownloadable, isAiGenerated, isAiUseDisallowed, isDailyDeviation, license, imageUrl, thumbnailUrl, imageWidth, imageHeight, thumbnailWidth, thumbnailHeight, views, favourites, comments, downloads, privatelyCollected, description.
Detail enrichment (automatic in artwork mode, opt-in elsewhere) adds tags, originalWidth, originalHeight, fileSizeBytes, originalFileType and hasWatermark. Artist enrichment adds artistWatchers, artistDeviationsCount, artistPageviews and artistJoinDate.
Use cases
- Find new artwork around a theme, fandom or tag.
- Monitor an artist's public gallery over time.
- Track which genres and creators appear in the Daily Deviations feed.
- Build mood boards or training sets from signed preview images and attribution metadata.
- Compare engagement across tags and creators.
FAQ
Do I need a DeviantArt account or API key? No. The actor reads public artwork pages and requires no login or developer credentials.
Why are some tags or descriptions missing?
In browse modes, detail data is merged when you enable includeDetails; artwork mode reads it from the same page. DeviantArt does not expose it on every artwork page, so missing values are omitted rather than invented.
Do image links expire? Image links carry signed tokens from the page you scraped. They usually remain valid for a while, but treat them as temporary and download images promptly if you need long-term storage.
Why did the run return fewer records than requested? The source limits how deep public browsing goes, and pagination can end early; gallery pages can stop at the first server-rendered batch. The run reports how many records it actually collected.
Why is there no category field? DeviantArt's public artwork data no longer exposes the old art-category taxonomy. The actor does not guess one from the media type.
Can I collect mature artwork?
Anonymous browsing hides most mature work. excludeMature lets you filter out anything flagged mature or sensitive.
Is literature supported? Yes. List modes include a text excerpt and omit image-specific fields. When detail enrichment is on, structured rich-text descriptions are converted to readable text; a literature excerpt is always kept.
How fresh is the data? Each run reads the current public pages at request time.
Is this affiliated with DeviantArt? No. This actor is independent and is not affiliated with DeviantArt, Inc.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build PTlcRordbiDo0SrJ4. Documentation is regenerated from the default published build; private drafts are not included.