Dataspryva

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.

FieldTypeRequiredDescription
modestringrequiredChoose what to collect.
searchQuerystringoptionalKeyword or phrase to search for. Supports DeviantArt search syntax.
tagstringoptionalTag slug or tag URL, for example fantasy or https://www.deviantart.com/tag/fantasy.
Show all input fields
FieldTypeRequiredDescription
modestringrequiredChoose what to collect.
searchQuerystringoptionalKeyword or phrase to search for. Supports DeviantArt search syntax.
tagstringoptionalTag slug or tag URL, for example fantasy or https://www.deviantart.com/tag/fantasy.
usernamestringoptionalDeviantArt username or profile URL whose gallery should be collected.
artworkUrlsarrayoptionalArtwork page URLs, /art/... links, or numeric deviation IDs.
contentTypestringoptionalLimit keyword searches to images or literature.
orderstringoptionalOrder used when browsing a tag.
includeDetailsbooleanoptionalOpen each artwork page to add tags, description, original dimensions, file size and watermark flag when available.
includeArtistStatsbooleanoptionalOpen each artist profile to add watchers, deviation count, pageviews and join date.
excludeMaturebooleanoptionalSkip artwork flagged as mature or sensitive.
maxItemsintegeroptionalMaximum 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.

FieldTypeRequiredDescription
deviationsstringoptionalDataset 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

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.

Open the step-by-step Python guide →

Source build PTlcRordbiDo0SrJ4. Documentation is regenerated from the default published build; private drafts are not included.