Discover/DeviantArt API
live

DeviantArt APIdeviantart.com

Fetch DeviantArt user profiles, bios, stats, and gallery artworks by username. 2 endpoints covering watchers, deviations, media URLs, and pagination.

This API takes change requests — .
Endpoint health
verified 3h ago
get_user_profile
get_user_artworks
2/2 passing latest checkself-healing
Endpoints
2
Updated
3h ago

What is the DeviantArt API?

The DeviantArt API provides 2 endpoints for retrieving public user data from deviantart.com. The get_user_profile endpoint returns over 10 fields including bio, tagline, country, gender, account statistics (watchers, deviations, pageviews), and join date. The get_user_artworks endpoint delivers paginated gallery results with deviation IDs, media URLs, and published timestamps — useful for building artist research tools, portfolio trackers, or content aggregators.

This call costs10 credits / call— charged only on success
Try it
DeviantArt username (case-insensitive, e.g. 'yuumei', 'CrazyLunatic').
api.parse.bot/scraper/e51e593e-c88b-499f-b17b-b6c797fbe6d5/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/e51e593e-c88b-499f-b17b-b6c797fbe6d5/get_user_profile?username=CrazyLunatic' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace deviantart-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: DeviantArt SDK — browse a user's profile and gallery."""
from parse_apis.deviantart_com_api import DeviantArt, NotFoundError

client = DeviantArt()

# Fetch a user profile by username
user = client.users.get(username="yuumei")
print(f"{user.username} ({user.country}) — {user.tagline}")
print(f"  Deviations: {user.stats.deviations}, Watchers: {user.stats.watchers}")

# List the user's interests
for interest in user.interests:
    print(f"  {interest.label}: {interest.value}")

# Browse the user's gallery, capped at 5 artworks
for artwork in user.artworks.list(limit=5):
    print(f"  [{artwork.type}] {artwork.title} — {artwork.stats.views} views")

# Drill into the first artwork for detail
first_artwork = user.artworks.list(limit=1).first()
if first_artwork is not None:
    print(f"\nFeatured: {first_artwork.title}")
    print(f"  Published: {first_artwork.published_time}")
    print(f"  Favourites: {first_artwork.stats.favourites}, Downloads: {first_artwork.stats.downloads}")
    print(f"  Author: {first_artwork.author.username}")
    print(f"  URL: {first_artwork.url}")

# Demonstrate typed error handling for a missing user
try:
    client.users.get(username="nonexistent_user_xyz_00000")
except NotFoundError as e:
    print(f"Expected not-found error: {e}")

print("\nexercised: users.get / artworks.list")
All endpoints · 2 totalmissing one? ·

Retrieve a DeviantArt user's public profile information including bio, tagline, country, gender, interests, social links, and account statistics (deviations count, watchers, watching, pageviews, join date). Makes two requests: one warmup navigation and one profile page fetch.

Input
ParamTypeDescription
usernamerequiredstringDeviantArt username (case-insensitive, e.g. 'yuumei', 'CrazyLunatic').
Response
{
  "type": "object",
  "fields": {
    "age": "integer or null",
    "bio": "string — HTML-formatted biography text",
    "type": "string — account type (e.g. 'regular')",
    "stats": "object with deviations, watchers, watching, pageviews, favourites, comments_made, comments_received_profile, join_date",
    "gender": "string — user's gender if set",
    "country": "string — user's country name",
    "dob_day": "integer or null",
    "tagline": "string — user's short tagline",
    "user_id": "integer — DeviantArt numeric user ID",
    "website": "string or null — user's website URL",
    "dob_year": "integer or null",
    "usericon": "string — URL to user avatar image",
    "username": "string — display username",
    "dob_month": "integer or null",
    "interests": "array of objects with id, label, and value",
    "is_artist": "boolean",
    "country_code": "string — ISO country code (e.g. 'us')",
    "social_links": "array of social link objects",
    "website_label": "string or null — display label for website",
    "twitter_username": "string or null"
  },
  "sample": {
    "data": {
      "age": null,
      "bio": "<br><br>Current Residence: southwest florida<br>Favourite genre of music: everything",
      "type": "regular",
      "stats": {
        "watchers": 6,
        "watching": 16,
        "join_date": "2003-09-20T07:58:23-0700",
        "pageviews": 2914,
        "deviations": 8,
        "favourites": 12,
        "comments_made": 214,
        "comments_received_profile": 21
      },
      "gender": "female",
      "country": "United States",
      "dob_day": null,
      "tagline": "J. me",
      "user_id": 511553,
      "website": null,
      "dob_year": null,
      "usericon": "https://a.deviantart.net/avatars-big/c/r/crazylunatic.gif",
      "username": "CrazyLunatic",
      "dob_month": null,
      "interests": [
        {
          "id": 1,
          "label": "Favorite visual artist",
          "value": "nykolai"
        }
      ],
      "is_artist": true,
      "country_code": "us",
      "social_links": [],
      "website_label": null,
      "twitter_username": null
    },
    "status": "success"
  }
}

About the DeviantArt API

User Profile Data

The get_user_profile endpoint accepts a username string (case-insensitive) and returns a structured profile object. Key fields include bio (HTML-formatted), tagline, country, gender, website, and a numeric user_id. The stats object exposes deviations, watchers, watching, pageviews, favourites, comments_made, comments_received_profile, and join_date — giving a full picture of an artist's community standing without any authentication requirement.

Gallery Artwork Listing

The get_user_artworks endpoint fetches artworks from any public DeviantArt gallery by username. Results are ordered newest-first and are paginated via offset and limit (max 60 per call). Each artwork object in the artworks array includes deviation_id, title, url, type, published_time, media_url, stats, and author details. The has_more boolean and next_offset integer make it straightforward to walk through a user's full gallery programmatically.

Pagination Behavior

When calling get_user_artworks, omitting offset returns the first page. Pass the next_offset value from the previous response as offset in the next call to advance through the gallery. When has_more is false or next_offset is null, the gallery has been fully traversed. The limit parameter accepts 1–60; requesting more than 60 in a single call is not supported.

Reliability & maintenanceVerified

The DeviantArt API is a managed, monitored endpoint for deviantart.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when deviantart.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official deviantart.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3h ago
Latest check
2/2 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track an artist's follower (watcher) and deviation count over time using stats from get_user_profile
  • Build a portfolio aggregator that pulls gallery thumbnails and media URLs via get_user_artworks
  • Audit publishing activity by sorting artworks by published_time to identify posting frequency
  • Compile artist contact and social data using website and profile fields for directory listings
  • Monitor gallery growth by paginating get_user_artworks and comparing deviation_id sets across runs
  • Enrich an artist database with DeviantArt country, gender, and bio fields alongside other platform profiles
  • Build a cross-platform art analytics tool that joins DeviantArt pageviews and watchers with other source metrics
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does DeviantArt have an official developer API?+
Yes. DeviantArt offers an official API at https://www.deviantart.com/developers/ that requires OAuth 2.0 registration. The Parse API covers public profile and gallery data without requiring you to manage app credentials or OAuth flows.
What does `get_user_profile` return beyond basic bio text?+
In addition to the HTML-formatted bio and tagline, the response includes a stats object with watchers, watching, deviations, pageviews, favourites, comments_made, comments_received_profile, and join_date. It also returns country, gender, website, user_id, age, dob_day, and account type.
Are comments, forum posts, or journal entries accessible through this API?+
Not currently. The API covers profile statistics and gallery artwork listings. You can fork it on Parse and revise it to add an endpoint for journal entries or comment threads.
Does the API return artwork descriptions or tags?+
The get_user_artworks endpoint returns title, url, type, published_time, media_url, stats, author, and deviation_id per artwork. Per-deviation descriptions, tags, and comment counts are not included in the current response shape. You can fork it on Parse and revise it to add a per-deviation detail endpoint that surfaces those fields.
Is there a limit to how far back the gallery pagination goes?+
Pagination depends on the public availability of gallery pages for a given username. Results are returned newest-first. For accounts with very large galleries (thousands of deviations), deep pagination via repeated next_offset calls is supported as long as has_more remains true. Private or hidden deviations are not accessible.
Page content last updated . Spec covers 2 endpoints from deviantart.com.
Related APIs in Social MediaSee all →
artstation.com API
Browse trending and curated artwork projects from ArtStation to discover the latest creative work, view full project details, and explore community-curated collections. Search and retrieve specific projects to find inspiration, review artist portfolios, and stay updated on what's popular in the art community.
fineartamerica.com API
Search and discover millions of artworks by style, medium, and artist, then browse detailed artist profiles and portfolios to connect directly with creators. Reach out to artists through integrated contact forms to inquire about commissions, purchases, or collaborations.
artsy.net API
Browse and search across 300,000+ artists to discover detailed profiles with biographies, nationalities, career insights, and artwork counts. Find artists alphabetically or by name to explore their complete creative background and body of work.
riseart.com API
Search and explore artworks by title, artist, or style, then view detailed information and high-quality images of paintings and artist portfolios from Rise Art's curated collection. Discover new artists and browse their complete galleries to find pieces that match your taste.
openclipart.org API
Search and discover clipart from OpenClipart, explore collections by tag, and retrieve detailed metadata including artist profiles, engagement metrics, and download URLs. Also exposes site-wide statistics such as total clipart count, artist count, and recent upload activity.
snapchat.com API
Retrieve public Spotlight posts and curated stories from any Snapchat user profile to view their shared content and recent activity. Access the timeline of posts that users have made publicly available on their accounts.
nationalgallery.org.uk API
Access data from nationalgallery.org.uk.
x.com API
Retrieve posts and profile information from X (Twitter) user timelines by specifying a username. Access live post data, engagement metrics, and user profile details for any public account.