Social Media API SDKs in 8 Languages
Official client libraries for the OmniSocials API in 8 languages. Every SDK has the
same shape: resource-based clients (client.posts.create(...)), typed requests and
responses, automatic retries with backoff, a shared error hierarchy, and a webhook
signature verification helper. Pick your language and you are posting in five lines.
Install
Each language has its own page with full examples: install, auth, posting, media, analytics, webhooks, and error handling.
| Language | Package | Install | Docs |
|---|---|---|---|
| Node.js / TypeScript | @omnisocials/sdk | npm install @omnisocials/sdk | Node.js |
| Python | omnisocials | pip install omnisocials | Python |
| Go | github.com/OmniSocials/omnisocials-go | go get github.com/OmniSocials/omnisocials-go | Go |
| Ruby | omnisocials | gem install omnisocials | Ruby |
| Java | com.omnisocials:omnisocials-java | Maven / Gradle dependency | Java |
| PHP | omnisocials/omnisocials-php | composer require omnisocials/omnisocials-php | PHP |
| .NET | OmniSocials | dotnet add package OmniSocials | .NET |
| Rust | omnisocials | cargo add omnisocials | Rust |
All 8 cover the full v1 surface: posts (including create-and-publish, per-platform
options, and X / Bluesky / Mastodon threads), media (URL, base64, multipart, PDF
carousels, presigned large-file uploads), folders, hashtag sets (CRUD plus applying
a set at post create via hashtag_set / hashtag_placement), accounts, analytics
(post, bulk, overview, accounts, best times), Instagram locations, Instagram Reel
music search, and webhooks (CRUD plus secret rotation and signature verification).
Authentication
Every SDK reads the OMNISOCIALS_API_KEY environment variable, or takes the key in
the constructor. Create a key in the OmniSocials app under Settings -> API. Keys
start with omsk_live_ (production) or omsk_test_ (test mode).
Code
Quickstart
Node.js / TypeScript
Code
Python
Code
A synchronous and an async client (AsyncOmniSocials) ship in the Python package.
The Go, Ruby, PHP, Java, .NET, and Rust clients expose the same resources and methods
adapted to each language's idiom. Full runnable examples for every resource live in
each package's README (linked in the table above).
Configuration
Every client accepts the same options: apiKey, baseUrl, timeout (default 30s),
and maxRetries (default 2). Retries use exponential backoff with jitter on 429,
5xx, and network errors, and honor the Retry-After header. Other 4xx responses
are never retried.
Errors
Non-2xx responses raise a typed error from a shared hierarchy: a base error, an API
error carrying status / code / body, and per-status subclasses (authentication,
permission, not-found, validation, rate-limit with retry_after, server), plus a
connection error and a webhook-verification error. See
Rate limits and errors for the status codes.
Webhook verification
Each SDK ships a helper that verifies the X-OmniSocials-Signature header (HMAC-SHA256
over "{timestamp}.{rawBody}", constant-time compare, replay-window check) and returns
the parsed event. Node example:
Code
See Webhooks for event types and payloads.
Prefer a different integration?
- MCP Server for AI assistants (Claude, ChatGPT, Cursor, and more)
- Agent Skills for AI coding tools without MCP support
- API Reference for the raw HTTP endpoints