logo
Schedulin Developers

For AI agents: a documentation index is available at /llms.txt. Every guide and example is also available as markdown by adding .md to its URL.

Quick Start

1. Get an API key

  1. Open Settings → API & Apps → Personal Keys in the Schedulin dashboard.
  2. Click Create Key, give it a name (e.g. "Content automation"), and copy the secret.
IMPORTANT
You only see the secret once. Store it somewhere safe, for example in a environment variable.
export SCHEDULIN_API_KEY="paste-your-key-here"

2. Make a request

Authenticate with the x-api-key header. List the channels connected to your workspace:

curl https://api.schedulin.app/v0/social-accounts \
  -H "x-api-key: $SCHEDULIN_API_KEY"

3. Use an SDK (optional)

Official SDKs wrap the same endpoints. Install the one for your language:

npm i @schedulin/sdk                          # TypeScript / JavaScript
pip install schedulin                         # Python
go get github.com/schedulin-app/schedulin-go  # Go
composer require schedulin/schedulin          # PHP (8.1+)

Prefer the terminal? The CLI (npm i -g @schedulin/cli) wraps the same endpoints.

Resources are accessed as client.<resource>.<method>: posts, socialAccounts, media, tags, platforms, webhooks, and ai (snake_case in Python, e.g. client.social_accounts.list()).

import { SchedulinClient } from "@schedulin/sdk";

// process.env values are `string | undefined`; the client needs a string.
const apiKey = process.env.SCHEDULIN_API_KEY;
if (!apiKey) throw new Error("Set SCHEDULIN_API_KEY");

const client = new SchedulinClient({ apiKey });

const { data: accounts } = await client.socialAccounts.list();
import os

from schedulin import Schedulin

client = Schedulin(api_key=os.environ["SCHEDULIN_API_KEY"])

accounts = client.social_accounts.list().data
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/schedulin-app/schedulin-go/client"
	"github.com/schedulin-app/schedulin-go/option"
)

func main() {
	c := client.NewClient(option.WithAPIKey(os.Getenv("SCHEDULIN_API_KEY")))

	accounts, err := c.SocialAccounts.List(context.TODO())
	if err != nil {
		panic(err)
	}
	fmt.Println(accounts)
}

Request and model types live in the module's root package, schedulin (older SDK releases named it api; the explicit import alias below works with either):

import (
	schedulin "github.com/schedulin-app/schedulin-go"
	"github.com/schedulin-app/schedulin-go/client"
	"github.com/schedulin-app/schedulin-go/option"
)

c := client.NewClient(option.WithAPIKey(os.Getenv("SCHEDULIN_API_KEY")))
_, err := c.Posts.Create(context.TODO(), &schedulin.PostCreate{
	SocialAccountID: "acc_123",
	Caption:         "Hello from Go",
})
<?php

use Schedulin\SchedulinClient;

$client = new SchedulinClient(apiKey: getenv('SCHEDULIN_API_KEY'));

$accounts = $client->socialAccounts->list();
NOTE
Every SDK is generated from the , so method names follow the operation names in the . Full method references live in each SDK's repository: , , , .

Next

Ready to publish something? Head to Your First Post.