Skip to content

getlate-dev/late-python

Repository files navigation

Late

Late Python SDK

PyPI version License

One API to post everywhere. 13 platforms, zero headaches.

The official Python SDK for the Late API — schedule and publish social media posts across Instagram, TikTok, YouTube, LinkedIn, X/Twitter, Facebook, Pinterest, Threads, Bluesky, Reddit, Snapchat, Telegram, and Google Business Profile with a single integration.

Installation

pip install late-sdk

Quick Start

from late import Late

late = Late(api_key="your-api-key")

# Publish to multiple platforms with one call
post = late.posts.create(
    content="Hello world from Late!",
    platforms=[
        {"platform": "twitter", "accountId": "acc_xxx"},
        {"platform": "linkedin", "accountId": "acc_yyy"},
        {"platform": "instagram", "accountId": "acc_zzz"},
    ],
    publish_now=True,
)

print(f"Published to {len(post['post']['platforms'])} platforms!")

Configuration

late = Late(
    api_key="your-api-key",  # Required
    base_url="https://getlate.dev/api",  # Optional, this is the default
    timeout=30.0,  # Optional, request timeout in seconds
)

Examples

Schedule a Post

post = late.posts.create(
    content="This post will go live tomorrow at 10am",
    platforms=[{"platform": "instagram", "accountId": "acc_xxx"}],
    scheduled_for="2025-02-01T10:00:00Z",
)

Platform-Specific Content

Customize content per platform while posting to all at once:

post = late.posts.create(
    content="Default content",
    platforms=[
        {
            "platform": "twitter",
            "accountId": "acc_twitter",
            "platformSpecificContent": "Short & punchy for X",
        },
        {
            "platform": "linkedin",
            "accountId": "acc_linkedin",
            "platformSpecificContent": "Professional tone for LinkedIn with more detail.",
        },
    ],
    publish_now=True,
)

Upload Media

# Option 1: Direct upload (simplest)
result = late.media.upload("path/to/video.mp4")
media_url = result["publicUrl"]

# Option 2: Upload from bytes
result = late.media.upload_bytes(video_bytes, "video.mp4", "video/mp4")
media_url = result["publicUrl"]

# Create post with media
post = late.posts.create(
    content="Check out this video!",
    media_urls=[media_url],
    platforms=[
        {"platform": "tiktok", "accountId": "acc_xxx"},
        {"platform": "youtube", "accountId": "acc_yyy", "youtubeTitle": "My Video"},
    ],
    publish_now=True,
)

Get Analytics

data = late.analytics.get(period="30d")

print("Analytics:", data)

List Connected Accounts

data = late.accounts.list()

for account in data["accounts"]:
    print(f"{account['platform']}: @{account['username']}")

Async Support

import asyncio
from late import Late

async def main():
    async with Late(api_key="your-api-key") as late:
        posts = await late.posts.alist(status="scheduled")
        print(f"Found {len(posts['posts'])} scheduled posts")

asyncio.run(main())

Error Handling

from late import Late, LateAPIError, LateRateLimitError, LateValidationError

late = Late(api_key="your-api-key")

try:
    late.posts.create(content="Hello!", platforms=[...])
except LateRateLimitError as e:
    print(f"Rate limited: {e}")
except LateValidationError as e:
    print(f"Invalid request: {e}")
except LateAPIError as e:
    print(f"API error: {e}")

SDK Reference

Posts

Method Description
posts.list_posts() List posts
posts.bulk_upload_posts() Bulk upload from CSV
posts.create_post() Create post
posts.get_post() Get post
posts.update_post() Update post
posts.delete_post() Delete post
posts.retry_post() Retry failed post
posts.unpublish_post() Unpublish post

Accounts

Method Description
accounts.get_all_accounts_health() Check accounts health
accounts.list_accounts() List accounts
accounts.get_account_health() Check account health
accounts.get_follower_stats() Get follower stats
accounts.get_google_business_reviews() Get reviews
accounts.get_linked_in_mentions() Resolve LinkedIn mention
accounts.update_account() Update account
accounts.delete_account() Disconnect account

Profiles

Method Description
profiles.list_profiles() List profiles
profiles.create_profile() Create profile
profiles.get_profile() Get profile
profiles.update_profile() Update profile
profiles.delete_profile() Delete profile

Analytics

Method Description
analytics.get_analytics() Get post analytics
analytics.get_linked_in_aggregate_analytics() Get LinkedIn aggregate stats
analytics.get_linked_in_post_analytics() Get LinkedIn post stats
analytics.get_you_tube_daily_views() Get YouTube daily views

Account Groups

Method Description
account_groups.list_account_groups() List groups
account_groups.create_account_group() Create group
account_groups.update_account_group() Update group
account_groups.delete_account_group() Delete group

Queue

Method Description
queue.list_queue_slots() List schedules
queue.create_queue_slot() Create schedule
queue.get_next_queue_slot() Get next available slot
queue.update_queue_slot() Update schedule
queue.delete_queue_slot() Delete schedule
queue.preview_queue() Preview upcoming slots

Webhooks

Method Description
webhooks.create_webhook_settings() Create webhook
webhooks.get_webhook_logs() Get delivery logs
webhooks.get_webhook_settings() List webhooks
webhooks.update_webhook_settings() Update webhook
webhooks.delete_webhook_settings() Delete webhook
webhooks.test_webhook() Send test webhook

API Keys

Method Description
api_keys.list_api_keys() List keys
api_keys.create_api_key() Create key
api_keys.delete_api_key() Delete key

Media

Method Description
media.get_media_presigned_url() Get presigned upload URL
media.upload() Upload a file from path
media.upload_bytes() Upload file from bytes
media.upload_large() Upload large file with multipart
media.upload_large_bytes() Upload large file from bytes
media.upload_multiple() Upload multiple files

Tools

Method Description
tools.get_you_tube_transcript() Get YouTube transcript
tools.check_instagram_hashtags() Check IG hashtag bans
tools.download_bluesky_media() Download Bluesky media
tools.download_facebook_video() Download Facebook video
tools.download_instagram_media() Download Instagram media
tools.download_linked_in_video() Download LinkedIn video
tools.download_tik_tok_video() Download TikTok video
tools.download_twitter_media() Download Twitter/X media
tools.download_you_tube_video() Download YouTube video

Users

Method Description
users.list_users() List users
users.get_user() Get user

Usage

Method Description
usage.get_usage_stats() Get plan and usage stats

Logs

Method Description
logs.list_connection_logs() List connection logs
logs.list_posts_logs() List publishing logs
logs.get_post_logs() Get post logs

Connect (OAuth)

Method Description
connect.list_facebook_pages() List Facebook pages
connect.list_google_business_locations() List GBP locations
connect.list_linked_in_organizations() List LinkedIn orgs
connect.list_pinterest_boards_for_selection() List Pinterest boards
connect.list_snapchat_profiles() List Snapchat profiles
connect.get_connect_url() Get OAuth connect URL
connect.get_facebook_pages() List Facebook pages
connect.get_gmb_locations() List GBP locations
connect.get_linked_in_organizations() List LinkedIn orgs
connect.get_pending_o_auth_data() Get pending OAuth data
connect.get_pinterest_boards() List Pinterest boards
connect.get_reddit_flairs() List subreddit flairs
connect.get_reddit_subreddits() List Reddit subreddits
connect.get_telegram_connect_status() Generate Telegram code
connect.update_facebook_page() Update Facebook page
connect.update_gmb_location() Update GBP location
connect.update_linked_in_organization() Switch LinkedIn account type
connect.update_pinterest_boards() Set default Pinterest board
connect.update_reddit_subreddits() Set default subreddit
connect.complete_telegram_connect() Check Telegram status
connect.connect_bluesky_credentials() Connect Bluesky account
connect.handle_o_auth_callback() Complete OAuth callback
connect.initiate_telegram_connect() Connect Telegram directly
connect.select_facebook_page() Select Facebook page
connect.select_google_business_location() Select GBP location
connect.select_linked_in_organization() Select LinkedIn org
connect.select_pinterest_board() Select Pinterest board
connect.select_snapchat_profile() Select Snapchat profile

Reddit

Method Description
reddit.get_reddit_feed() Get subreddit feed
reddit.search_reddit() Search posts

Account Settings

Method Description
account_settings.get_instagram_ice_breakers() Get IG ice breakers
account_settings.get_messenger_menu() Get FB persistent menu
account_settings.get_telegram_commands() Get TG bot commands
account_settings.delete_instagram_ice_breakers() Delete IG ice breakers
account_settings.delete_messenger_menu() Delete FB persistent menu
account_settings.delete_telegram_commands() Delete TG bot commands
account_settings.set_instagram_ice_breakers() Set IG ice breakers
account_settings.set_messenger_menu() Set FB persistent menu
account_settings.set_telegram_commands() Set TG bot commands

Comments (Inbox)

Method Description
comments.list_inbox_comments() List commented posts
comments.get_inbox_post_comments() Get post comments
comments.delete_inbox_comment() Delete comment
comments.hide_inbox_comment() Hide comment
comments.like_inbox_comment() Like comment
comments.reply_to_inbox_post() Reply to comment
comments.send_private_reply_to_comment() Send private reply
comments.unhide_inbox_comment() Unhide comment
comments.unlike_inbox_comment() Unlike comment

GMB Attributes

Method Description
gmb_attributes.get_google_business_attributes() Get attributes
gmb_attributes.update_google_business_attributes() Update attributes

GMB Food Menus

Method Description
gmb_food_menus.get_google_business_food_menus() Get food menus
gmb_food_menus.update_google_business_food_menus() Update food menus

GMB Location Details

Method Description
gmb_location_details.get_google_business_location_details() Get location details
gmb_location_details.update_google_business_location_details() Update location details

GMB Media

Method Description
gmb_media.list_google_business_media() List media
gmb_media.create_google_business_media() Upload photo
gmb_media.delete_google_business_media() Delete photo

GMB Place Actions

Method Description
gmb_place_actions.list_google_business_place_actions() List action links
gmb_place_actions.create_google_business_place_action() Create action link
gmb_place_actions.delete_google_business_place_action() Delete action link

Messages (Inbox)

Method Description
messages.list_inbox_conversations() List conversations
messages.get_inbox_conversation() Get conversation
messages.get_inbox_conversation_messages() List messages
messages.update_inbox_conversation() Update conversation status
messages.edit_inbox_message() Edit message
messages.send_inbox_message() Send message

Reviews (Inbox)

Method Description
reviews.list_inbox_reviews() List reviews
reviews.delete_inbox_review_reply() Delete review reply
reviews.reply_to_inbox_review() Reply to review

Invites

Method Description
invites.create_invite_token() Create invite token

MCP Server (Claude Desktop)

The SDK includes a Model Context Protocol (MCP) server for integration with Claude Desktop. See MCP documentation for setup instructions.

pip install late-sdk[mcp]

Requirements

Links

License

Apache-2.0

About

Late's Official Python SDK

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •