Overview

Tumblr is a microblogging and social networking platform that enables users to publish a variety of content formats, including text posts, photo sets, audio tracks, video clips, and external links, to a personalized blog interface. Founded in 2007 and currently owned by Automattic, Tumblr has cultivated a user base focused on personal expression, community engagement, and multimedia content sharing. Its primary use cases include maintaining personal blogs, sharing creative works, and participating in online fandoms where users often reblog and interact with content related to shared interests.

The platform's design emphasizes ease of posting and content discovery through features like the dashboard feed and tagging system. Users can follow other blogs, reblog posts, and send messages, fostering a network of interconnected content. For developers, the Tumblr API v2 provides programmatic access to core functionalities, primarily focused on content posting and retrieval for a user's blog. This allows for the creation of external applications that can automate content publication, customize user experiences, or integrate Tumblr content into other platforms. Authentication for the API relies on OAuth 1.0a, a protocol commonly used for secure authorization in web applications, which requires applications to sign requests with consumer and token secrets.

While the API supports a range of content management tasks, developer experience notes indicate that the platform's developer features are not frequently updated. This can imply a stable but less evolving API landscape compared to platforms with more rapid development cycles. Despite this, its focus on content and community continues to serve a niche, allowing developers to build tools for content creators and community managers on the platform. The platform is free to use, with optional paid features for users seeking custom domains, an ad-free browsing experience, or promoting their posts.

Key features

  • Content publishing: Users can create and publish various post types including text, photos, quotes, links, chat logs, audio, and video to their microblog via the API.
  • Content retrieval: Access posts from specific blogs, retrieve user information, and manage likes programmatically.
  • Customization: Blogs are highly customizable with themes and CSS, allowing users to personalize their online presence.
  • Social interaction: Features for following other blogs, reblogging content, liking posts, and private messaging facilitate community engagement.
  • Tagging and search: Content is discoverable through a robust tagging system and search functionality, enabling users to find relevant posts and communities.
  • Dashboard feed: Aggregates content from followed blogs, providing a personalized stream of updates.
  • OAuth 1.0a authentication: Securely authorize third-party applications to interact with user accounts and content using OAuth 1.0a.

Pricing

Tumblr is primarily free to use, offering a fully featured experience without cost. Optional paid features are available for users who desire additional customization or an enhanced browsing experience. As of May 2026, these paid options include:

Feature Availability Details Pricing Source
Basic Platform Access Free Full microblogging, content posting, social features, standard themes. Tumblr Homepage
Custom Domains Paid option Assign a custom domain to a Tumblr blog. Tumblr Homepage
Ad-Free Browsing Paid option Removes advertisements from the user's dashboard and blog. Tumblr Homepage
Post Promotion Paid option Ability to promote posts for increased visibility within the Tumblr network. Tumblr Homepage

Common integrations

  • Content syndication: Automatically cross-post content from other platforms like WordPress.com to Tumblr, leveraging WordPress.com's integration capabilities for broader reach.
  • Social media management tools: Tools that allow scheduling and managing posts across multiple social networks, including Tumblr, often use the API for publishing.
  • Archiving services: Applications that back up or archive user content from Tumblr blogs, ensuring data preservation.
  • Analytics dashboards: Custom dashboards that pull post performance data from Tumblr's API to provide insights beyond the native platform analytics.

Alternatives

  • WordPress.com: A popular blogging platform offering more extensive content management system (CMS) features and scalability, suitable for professional blogs and websites.
  • Blogger: A free blogging service from Google, known for its simplicity and ease of use, often favored by users looking for basic blog hosting.
  • Medium: A publishing platform designed for long-form articles and essays, focusing on audience engagement and curated content.

Getting started

To begin interacting with the Tumblr API, you'll need to register an application and obtain consumer keys and secrets. The following Python example demonstrates how to set up an OAuth 1.0a client, which is the required authentication method for the Tumblr API, and fetch basic user information. This involves using the oauthlib and requests_oauthlib libraries.

from requests_oauthlib import OAuth1Session
import json

# Your Consumer Key and Consumer Secret (from Tumblr API console)
CONSUMER_KEY = "YOUR_CONSUMER_KEY"
CONSUMER_SECRET = "YOUR_CONSUMER_SECRET"

# Your OAuth Token and Token Secret (from user authorization process)
OAUTH_TOKEN = "YOUR_OAUTH_TOKEN"
OAUTH_TOKEN_SECRET = "YOUR_OAUTH_TOKEN_SECRET"

# Base URL for the Tumblr API
BASE_URL = "https://api.tumblr.com/v2"

def get_user_info():
    """
    Fetches the authenticated user's information from the Tumblr API.
    """
    # Create an OAuth1Session
    tumblr_session = OAuth1Session(
        CONSUMER_KEY,
        client_secret=CONSUMER_SECRET,
        resource_owner_key=OAUTH_TOKEN,
        resource_owner_secret=OAUTH_TOKEN_SECRET
    )

    # Endpoint for user info
    url = f"{BASE_URL}/user/info"

    try:
        response = tumblr_session.get(url)
        response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)

        user_info = response.json()
        print("Successfully fetched user information:")
        print(json.dumps(user_info, indent=2))

    except requests.exceptions.HTTPError as http_err:
        print(f"HTTP error occurred: {http_err}")
        print(f"Response content: {response.text}")
    except requests.exceptions.ConnectionError as conn_err:
        print(f"Connection error occurred: {conn_err}")
    except requests.exceptions.Timeout as timeout_err:
        print(f"Timeout error occurred: {timeout_err}")
    except requests.exceptions.RequestException as req_err:
        print(f"An error occurred: {req_err}")
    except json.JSONDecodeError:
        print(f"Failed to decode JSON from response: {response.text}")

if __name__ == "__main__":
    # Before running, replace placeholders with your actual keys and tokens.
    # The OAuth Token and Token Secret are obtained after a user authorizes your application.
    get_user_info()

This script initializes an OAuth1Session with your application's credentials and the user's access tokens. It then makes a GET request to the /user/info endpoint to retrieve details about the authenticated user. Ensure you replace YOUR_CONSUMER_KEY, YOUR_CONSUMER_SECRET, YOUR_OAUTH_TOKEN, and YOUR_OAUTH_TOKEN_SECRET with your actual credentials obtained from the Tumblr API console and the OAuth authorization flow.