Discover/Fur Affinity API
live

Fur Affinity APIfuraffinity.com

Retrieve Fur Affinity user profiles and artwork submission details via API. Access stats, ratings, keywords, image URLs, and more with two structured endpoints.

This API takes change requests — .
Endpoint health
monitored
get_artwork
get_profile
Checks pendingself-healing
Endpoints
2
Updated
2h ago

What is the Fur Affinity API?

The Fur Affinity API provides two endpoints for retrieving structured data from furaffinity.com: get_profile returns 8 fields including account statistics, avatar URL, bio text, and registration timestamp for any public user, while get_artwork returns submission metadata such as content rating, keyword tags, view counts, and file size for any numeric artwork ID.

This call costs1 credit / call— charged only on success
Try it
The user's URL-safe username (lowercase handle as it appears in furaffinity.net/user/<username>/).
api.parse.bot/scraper/d7cf673b-7506-49a2-9022-c954c39593bd/<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/d7cf673b-7506-49a2-9022-c954c39593bd/get_profile?username=fender' \
  -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 furaffinity-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: Fur Affinity SDK — fetch artwork details and artist profile."""
from parse_apis.furaffinity_com_api import FurAffinity, InputNotFound

client = FurAffinity()

# Fetch a specific artwork submission by its numeric ID.
try:
    artwork = client.artworks.get(artwork_id="1345722")
except InputNotFound:
    print("Artwork not found")
    raise

print(artwork.title, f"by {artwork.artist_display_name}")
print(f"  views={artwork.views}  favorites={artwork.favorites}  comments={artwork.comments}")
print(f"  rating={artwork.rating}  category={artwork.category}")
print(f"  keywords={artwork.keywords}")

# Navigate to the artist's profile using the username from the artwork.
profile = client.profiles.get(username=artwork.artist_username)
print(f"\nProfile: {profile.display_name} ({profile.user_role})")
print(f"  registered: {profile.registered_date}")
print(f"  stats: {profile.stats.views} views, {profile.stats.submissions} submissions")

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

Retrieve a Fur Affinity user's public profile including display name, role, registration date, avatar, bio text, and account statistics (views, submissions, favorites, comments earned/made, journals). Makes one request per call.

Input
ParamTypeDescription
usernamerequiredstringThe user's URL-safe username (lowercase handle as it appears in furaffinity.net/user/<username>/).
Response
{
  "type": "object",
  "fields": {
    "stats": "object — account statistics with keys: views, submissions, favorites, comments_earned, comments_made, journals",
    "username": "string — the requested username handle",
    "user_role": "string — account role (e.g. Watcher, Member)",
    "avatar_url": "string — full URL to the user's avatar image",
    "display_name": "string — the user's displayed name",
    "profile_text": "string — the user's profile bio/description text",
    "registered_date": "string — registration date in human-readable form",
    "registered_timestamp": "integer — Unix timestamp of registration"
  },
  "sample": {
    "data": {
      "stats": {
        "views": 1175833,
        "journals": 253,
        "favorites": 9263,
        "submissions": 22,
        "comments_made": 1136,
        "comments_earned": 63828
      },
      "username": "fender",
      "user_role": "Watcher",
      "avatar_url": "https://a.furaffinity.net/1424255659/fender.gif",
      "display_name": "Fender",
      "profile_text": "THIS IS A MASCOT/NEWS ACCOUNT...",
      "registered_date": "December 4, 2005 06:49:59 PM",
      "registered_timestamp": 1133740199
    },
    "status": "success"
  }
}

About the Fur Affinity API

User Profile Data

The get_profile endpoint accepts a username parameter — the lowercase handle as it appears in furaffinity.net/user/<username>/ — and returns a structured object covering the user's display_name, user_role, avatar_url, and profile_text. The stats object bundles six counters: views, submissions, favorites, comments_earned, comments_made, and journals. Registration data is available as both a human-readable registered_date string and a Unix registered_timestamp integer, which is useful for sorting or age calculations.

Artwork Submission Data

The get_artwork endpoint accepts an artwork_id — the numeric ID from furaffinity.net/view/<artwork_id>/ — and returns submission-level metadata. Response fields include title, rating (one of General, Mature, or Adult), category, species, theme, file_size, and an array of keywords tags. Engagement metrics come back as integers: views, comments, and favorites. This makes the endpoint suitable for building submission indexes, tag-based classifiers, or content moderation tooling.

Coverage Notes

Both endpoints operate on public Fur Affinity data. The profile endpoint reflects what is visible on a user's public page — private or hidden accounts will not return data. The artwork endpoint covers individual submissions identified by their numeric ID; there is no batch or search endpoint in the current API surface.

Reliability & maintenance

The Fur Affinity API is a managed, monitored endpoint for furaffinity.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when furaffinity.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 furaffinity.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.

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
  • Build an artist discovery tool that ranks creators by submission count and favorites using get_profile stats
  • Classify artwork by content maturity using the rating field from get_artwork for moderation pipelines
  • Generate tag clouds or keyword frequency reports from the keywords array across multiple submissions
  • Track account growth over time by periodically polling views and submissions stats from get_profile
  • Index submission metadata including category, species, and theme to power a third-party search interface
  • Identify new community members by comparing registered_timestamp values across a set of usernames
  • Aggregate favorites and comments counts from get_artwork to surface trending or high-engagement submissions
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 Fur Affinity have an official developer API?+
Fur Affinity does not publish an official public developer API or documented REST interface. This API on Parse provides structured access to public profile and submission data.
What does the `get_artwork` endpoint return for content rating?+
The rating field returns one of three string values: General, Mature, or Adult, reflecting the rating the submitting artist assigned to the work. No further content filtering is applied — the field mirrors what is shown on the public submission page.
Does the API support searching or listing submissions for a user?+
Not currently. The API covers individual submission lookup via get_artwork and profile data via get_profile. It does not include an endpoint for listing all submissions by a given artist. You can fork it on Parse and revise to add the missing endpoint.
Are journal entries or shouts accessible through the API?+
Not currently. The get_profile endpoint returns a journals count within the stats object, but the content of individual journals and shouts is not exposed. You can fork it on Parse and revise to add the missing endpoint.
What happens if a profile is deactivated or a submission is deleted?+
Deactivated accounts and removed submissions are no longer part of public Fur Affinity pages. Requests for such users or artwork IDs will not return meaningful data, since the content is no longer publicly accessible on the source site.
Page content last updated . Spec covers 2 endpoints from furaffinity.com.
Related APIs in Social MediaSee all →
furaffinity.net API
Access detailed user profiles and artwork information from Fur Affinity, including submission details, to discover and explore the community's creative content. Browse artist portfolios and view specific artwork metadata all in one place.
deviantart.com API
Access data from deviantart.com.
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.
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.
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.
fanfiction.net API
Search and browse fan fiction stories across FanFiction.net, accessing story metadata, full chapter content, and author profiles all in one place. Discover new stories and dive deeper into author information without navigating the website directly.
filmaffinity.com API
Search FilmAffinity's film database by title, director, genre, year, and more. Retrieve detailed movie information including cast, crew, synopsis, ratings, and user reviews. Access top-rated lists, box office rankings, theatrical and streaming releases, and full filmographies for cast and crew members.