Skip to main content

socialchimp

CI PyPI Python Coverage Types Ruff Licence

One simple way to connect your app to social networks.

Status: 0.1.0, the first release. All nine networks below work. The way platforms are written is now settled - see the promise about changes before you write your own.

Mastodon · Bluesky · Facebook Pages · Instagram · YouTube · TikTok · X · Pinterest · Threads


What it does

Your app needs to let people connect their social accounts, then post for them and read what happens. Every network does this differently. socialchimp gives you one way to do it, and gets out of the way when you need the network's own features.

  • Connect accounts. Sign in with Mastodon, Bluesky, Facebook, Instagram, YouTube, TikTok, X, Pinterest, Threads and more.
  • Keep tokens working. Refresh them before they expire, safely, even when several workers run at once.
  • Post and read. Text, pictures, video. Read posts and their numbers back.
  • Know what happened. Comments and likes reach you the same way whether the network pushes them to you or we have to check on a timer.

What it does not do

  • It does not touch your database. No models, no migrations. You write a small storage class, socialchimp hands you data to save. Your schema stays yours, and it works the same on Django, FastAPI, Flask, or nothing at all.
  • It does not pretend networks are the same. Pinterest needs a board. Bluesky cannot schedule. YouTube has no text-only post. Where networks differ, the API says so instead of guessing for you.

Install

pip install socialchimp

Add your framework if you want the ready-made routes:

pip install "socialchimp[django]"    # or [fastapi], or [flask]

A first look

from socialchimp import SocialChimp, Post

sc = SocialChimp(storage=MyStorage())

# Post to a connected account.
account = sc.account(connection_id)
result = await account.post(Post(text="Hello from socialchimp"))
print(result.url)

Need something only that network can do? Same connection, direct access:

await account.direct.post(
    "/api/v1/statuses",
    json={"status": "Hello", "visibility": "unlisted"},
)

Tokens, retries and rate limits are still handled for you. Only the request is yours.


Documentation

Contributing

Contributions are welcome. A few things to know first:

  • Tests come first. Write the failing test, then make it pass.
  • Coverage must stay at 100%. CI fails below it.
  • Types must be strict. mypy --strict with no ignores.
git clone https://github.com/raghulj/socialchimp
cd socialchimp
uv sync --all-extras --dev
uv run pre-commit install --hook-type pre-commit --hook-type pre-push
uv run pytest

Licence

MIT. See LICENSE.

Release files for socialchimp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for socialchimp 0.1.0
File Size Uploaded
socialchimp-0.1.0.tar.gz 502.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for socialchimp 0.1.0
File Interpreter ABI Platform
socialchimp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 783.7 kB

Release files / socialchimp-0.1.0.tar.gz

Download URL socialchimp-0.1.0.tar.gz
Size 502.8 kB
Tags Source
SHA-256 checksum
How to use checksums
16125171431cce7cd628a28e385f22b4448380638bc38c86270de9ca8c844512
BLAKE2b-256 checksum
How to use checksums
7c3a7ba9883eb05638dfa0218efe7ab13db3578eff8a14951b60008d0dc9928e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release files / socialchimp-0.1.0-py3-none-any.whl

Download URL socialchimp-0.1.0-py3-none-any.whl
Size 280.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7819d3d5993dc946e61c9cb3df3137fca5477d8def5c7217b35cb4fcf1318752
BLAKE2b-256 checksum
How to use checksums
76f5883915ae5d90f1db3e123ae735872ac7ae45091f53d4f52abed5b9657aaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 31, 2026.

Transparency log

Release history Release notifications | RSS feed

0.9.0

2 release files

0.8.0

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page