# Quick start: schedule your first post with the API

> Create an API key, find your connected accounts and schedule a post to LinkedIn and X in three requests.

**Source:** https://postprism.app/docs/quick-start  
**Updated:** 2026-10-10

---

## Before you start

- A Postprism Freelancer or Agency plan. API keys are not available on Solo.
- At least one social account connected on the **Platforms** page in Postprism.
- Any HTTP client. The examples use curl.

## 1. Create an API key

In Postprism, open **Developer** in the sidebar and choose **Generate API key**. Give it a name you will recognise later, such as “Zapier” or “Launch script”. Copy the key: it starts with `pp_live_` and is shown only once.

**Store it as an environment variable**

```
export POSTPRISM_API_KEY="pp_live_your_api_key"
```

## 2. See which accounts you can post to

**GET /api/v1/platforms**

```
curl "https://studio.postprism.app/api/v1/platforms" \
  -H "Authorization: Bearer $POSTPRISM_API_KEY"
```

The `platform` value of each result is the key you use when you create a post, for example `linkedin` or `twitter` (for X).

## 3. Schedule a post

**POST /api/v1/posts**

```
curl -X POST "https://studio.postprism.app/api/v1/posts" \
  -H "Authorization: Bearer $POSTPRISM_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "base_content": "We just shipped dark mode.",
    "platforms": ["linkedin", "twitter"],
    "platform_content": {
      "linkedin": { "content": "Dark mode is live in every workspace. It took us three tries to get the contrast right, and here is what we learned." },
      "twitter": { "content": "Dark mode is live. Your eyes can thank us later." }
    },
    "scheduled_at": "2026-10-16T09:30:00Z"
  }'
```

A `201` response returns the post with `"status": "scheduled"`. It appears on your Postprism calendar and publishes at 09:30 UTC. Leave out `scheduled_at` to save a draft instead, so a person can review it first.

> Write one version per platform in `platform_content`. That text is what gets published; `base_content` is the shared draft and is not posted on its own.

## Next steps

- [Attach images and video](https://postprism.app/docs/api/upload-media) by uploading them first.
- [Drafts, scheduling and publishing](https://postprism.app/docs/publishing): how a post moves from draft to published.
- [Platform guides](https://postprism.app/docs/platforms/linkedin): limits and settings for each network.
- Building with an AI assistant instead? Use the [MCP server](https://postprism.app/docs/mcp).
- Point code generators at the [OpenAPI spec](https://postprism.app/docs/openapi.json).
