import { KavenioClient } from "@kavenio/sdk";
const kavenio = new KavenioClient({
authToken: process.env.KAVENIO_API_KEY,
});
// Send your user to this URL to connect their Instagram account.
const { authorizationUrl } = await kavenio.connect.begin({
platform: "instagram",
});
// Publish once across every connected channel.
await kavenio.posts.create({
profileId: "customer_user_123",
content: "New launch is live. Built once, published everywhere.",
platforms: [
{ platform: "linkedin", accountId: "acct_linkedin_123" },
{ platform: "instagram", accountId: "acct_instagram_123" },
{ platform: "twitter", accountId: "acct_x_123" },
],
publishNow: true,
});Connect a customer account once, keep provider tokens out of your product, and publish through Kavenio account records.
Create one post record, then choose the platform targets that should receive it for that customer, brand, or workspace.
Start with shared copy and media, then add per-target overrides only when a channel needs its own settings.
Keep work in draft, schedule it for later, reserve a queue slot, or publish immediately from the same endpoint.
Attach uploaded assets or public media URLs and catch format, length, and platform-limit issues before provider calls.
Read target-level outcomes, retry failed publishes, and subscribe to lifecycle events when post status changes.
kavenio.connect.begin(...)Create the account connection URL your customer uses before you post on their behalf.
kavenio.media.upload(...)Upload images, videos, GIFs, and documents, then attach public media URLs to post payloads.
kavenio.validation.post(...)Validate content, media, and platform limits before a publish call reaches provider APIs.
kavenio.posts.create(...)Create drafts, schedule posts, or publish immediately across connected social accounts.
kavenio.posts.retry(...)Retry failed or partial posts without losing successful platform target results.
kavenio.webhooks.create(...)Receive publishing, account, and lifecycle events in your own product.
import { KavenioClient } from "@kavenio/sdk";
const kavenio = new KavenioClient({
authToken: process.env.KAVENIO_API_KEY,
});
const { authorizationUrl } = await kavenio.connect.begin({
profileId: "customer_user_123",
platform: "instagram",
});Kavenio-managed applications are available for supported platforms, so you can start without creating every provider application first.
Add your provider app keys to Kavenio, then let us handle OAuth, credential storage, refresh, and publishing through your app.
Connect accounts, validate content, publish posts, and receive status events through one posting-focused API
The current product focus is posting: account connection, media, validation, draft and scheduled posts, immediate publishing, retries, lifecycle actions, and webhooks.
Kavenio uses an account-linked provider credential first, then your workspace platform key, then an available Kavenio-managed application. If your team needs branded OAuth, owned approvals, or direct provider-app control, you can supply your own platform keys.
Connect the account first, store the returned Kavenio account ID, then include that account ID inside the target for each platform you want to publish to.
Yes. Put common content on the root post, then override content, media, schedule, or platform-specific data on individual platform targets.
Yes. Agents can use the same API, SDK, and CLI workflows to connect accounts, validate posts, publish content, and react to webhook-driven status changes.