How to Create a Tumblr Blog and Post via API
This guide walks you through the full process of creating a Tumblr blog and connecting it to the API for posting content automatically.
Step 1: Create Your Tumblr Account
- Go to Tumblr and sign up.
- Choose your blog name and theme.
- Confirm your email to activate posting features.
Step 2: Register Your App
- Go to Tumblr API Console.
- Click + Register application.
- Fill in the app name, description, and
http://localhost/as the callback URL.
Example OAuth Keys
CONSUMER_KEY = "your_consumer_key_here"
CONSUMER_SECRET = "your_consumer_secret_here"
Step 3: Get OAuth Access Tokens
You’ll need to authenticate via OAuth to get your access tokens.
Here’s a sample Python script:
import pytumblr
from requests_oauthlib import OAuth1Session
# Connect to Tumblr API
client = pytumblr.TumblrRestClient(
CONSUMER_KEY,
CONSUMER_SECRET,
ACCESS_TOKEN,
ACCESS_TOKEN_SECRET
)
print(client.info())
Step 4: Make a Test Post
Once authenticated, post something simple to verify your connection.
client.create_text("your-blog-name", state="published", title="Test Post", body="Hello from the API!")
Step 5: Done!
Your blog is now connected to the Tumblr API. You can automate posts, schedule content, and even upload images or videos.
import pytumblr
import webbrowser
from requests_oauthlib import OAuth1Session
# ================= CONFIG =================
CONSUMER_KEY = "<YOUR_CONSUMER_KEY>"
CONSUMER_SECRET = "<YOUR_CONSUMER_SECRET>"
# ===========================================
# Step 1: Get request token with out-of-band (PIN) flow
request_token_url = 'https://www.tumblr.com/oauth/request_token'
oauth = OAuth1Session(
CONSUMER_KEY,
client_secret=CONSUMER_SECRET,
callback_uri='oob' # This tells Tumblr to show PIN instead of redirect
)
fetch_response = oauth.fetch_request_token(request_token_url)
resource_owner_key = fetch_response.get('oauth_token')
resource_owner_secret = fetch_response.get('oauth_token_secret')
# Step 2: Authorize
base_authorization_url = 'https://www.tumblr.com/oauth/authorize'
authorization_url = oauth.authorization_url(base_authorization_url)
print("\nGo to the following URL to authorize this app:")
print(authorization_url)
webbrowser.open(authorization_url)
# Step 3: Get verifier (PIN) code from user
verifier = input("\nEnter the PIN code shown by Tumblr: ").strip()
# Step 4: Get the access token
access_token_url = 'https://www.tumblr.com/oauth/access_token'
oauth = OAuth1Session(
CONSUMER_KEY,
client_secret=CONSUMER_SECRET,
resource_owner_key=resource_owner_key,
resource_owner_secret=resource_owner_secret,
verifier=verifier
)
oauth_tokens = oauth.fetch_access_token(access_token_url)
access_token = oauth_tokens['oauth_token']
access_token_secret = oauth_tokens['oauth_token_secret']
print("\n✅ Access Token:", access_token)
print("✅ Access Token Secret:", access_token_secret)
# Step 5: Use pytumblr to make a test post
client = pytumblr.TumblrRestClient(
CONSUMER_KEY,
CONSUMER_SECRET,
access_token,
access_token_secret
)
print("\nPosting test post to your Tumblr...")
client.create_text("your-blog-name", state="published", title="Test Post", body="Hello from the API!")
print("✅ Post created successfully!")
