---
title: "Publish, schedule, cancel, or direct-publish (as-is) social content"
method: POST
path: "/api/agent/publish"
tags: ["Publishing"]
---

# Publish, schedule, cancel, or direct-publish (as-is) social content

`POST /api/agent/publish`

## Request body

- union
  - PublishAdaptationRequest
    - `adaptationId` string, uuid, required
    - `action` 'now' | 'schedule' | 'cancel', required
    - `scheduledAt` string, date-time — Required if action=schedule. Must be a future date.
    - `platform` 'facebook' | 'linkedin' | 'x_article' | 'x_thread' | 'reddit' | 'threads' | 'instagram' | 'instagram_reels' | 'youtube_shorts', required
    - `accountId` string, uuid, required
  - PublishRawRequest — Direct publish article content as-is to a social platform. No AI adaptation, 0 credits.
    - `action` 'publish_raw', required
    - `articleId` string, uuid, required
    - `platform` 'linkedin' | 'facebook' | 'x_article' | 'reddit' | 'instagram', required
    - `accountId` string, uuid, required
    - `subreddit` string — Required when platform is reddit

## Response `200`

Publish action completed

- PublishResponse
  - `success` true, required
  - `action` 'now' | 'schedule' | 'cancel' | 'publish_raw', required
  - `adaptationId` string, uuid, required
  - `postId` string, nullable — Present when action=now
  - `platformPostId` string, nullable — Present when action=publish_raw
  - `scheduledAt` string, date-time, nullable — Present when action=schedule
  - `messageId` string, nullable — QStash message ID for scheduled publish
  - `deduplicated` boolean — True if publish was skipped because already published
  - `warning` string — Present when publish_raw encounters a non-fatal issue

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Platform publishing locked
- `409` — Adaptation not in publishable state
- `429` — Rate limit exceeded
- `500` — Internal server error

## Changes

> 28 revisions in range; 1 could not be searched.

- **2026-03-13** `56092aa9ca0e` — 1 breaking, 6 warning, 4 info
  - the request's body type/format changed from `object`/`` to ``/``
  - removed the request property `accountId`
  - removed the request property `action`
  - removed the request property `adaptationId`
  - …7 more
- **2026-03-03** `9cd5ce117b1d` — 2 info
  - added the new `instagram_reels` enum value to the request property `platform`
  - added the new `youtube_shorts` enum value to the request property `platform`
- **2026-03-01** `2df2182b5901` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/citedy/apis/citedy-agent-api/changes/api/agent/publish/post.md)

---

[API](https://skmtc.dev/citedy/apis/citedy-agent-api.md) · [All operations](https://skmtc.dev/citedy/apis/citedy-agent-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/citedy/citedy-agent-api/revisions/b5785d3fe446/schema)
