---
title: "[Quick] One-step article publish"
method: POST
path: "/x/articles/publish"
tags: ["Article Endpoints"]
---

# \[Quick\] One-step article publish

`POST /x/articles/publish`

## Request

- Base URL: `https://api.twexapi.io`
- URL: `https://api.twexapi.io/x/articles/publish`
- Auth: HTTP bearer

Publish a complete X Article in a single call. Suitable for simple, one-shot use cases.

> ⚠️ **Recommended: use the step-by-step flow instead.**
> The step-by-step flow gives you full control — preview the draft before publishing,
> retry individual steps on failure, and reuse the same `article_id` across multiple calls.
>
> Step-by-step endpoints:
> 1. `POST /x/articles/draft` → get `article_id`
> 2. `PUT  /x/articles/{article_id}/cover` *(optional)*
> 3. `PUT  /x/articles/{article_id}/title`
> 4. `PUT  /x/articles/{article_id}/content`
> 5. `POST /x/articles/{article_id}/publish` → get `tweet_id`

**Returns** `article_id` and `tweet_id` on success.

## Request body

- ArticlePublishAllInOneBody
  - `cookie` string, required: The user's own authorized Twitter session credentials or auth_token (BYOC — Bring Your Own Cookie). Stateless proxy execution with zero credential retention. See [Authentication Security](/authentication#write-operations--byoc-bring-your-own-cookie) and [How to get Cookie](https://youtube-promotion.pages.dev/how-to-get-twitter-cookie).
  - `title` string, required: Article title
  - `markdown` string, required: Article body in Markdown format
  - `cover_image` string, nullable: Cover image: https URL or local file path (optional)
  - `visibility` string: Visibility: Public / Followers / Mentioned

## Response `200`

Successful Response

- ArticlePublishResponse
  - `code` integer, required: 200 = success, 429 = rate limit, 500 = server error
  - `msg` string, required: Human-readable result message
  - `data` ArticlePublishData
    - `article_id` string, required: Article draft ID
    - `tweet_id` string, required: Tweet ID of the published article post

## Other responses

- `422`: Validation Error
- `429`: Daily tweet limit reached
- `500`: Server error

---

[API](https://skmtc.dev/twexapi/apis/twexapi-rest-api.md) · [All operations](https://skmtc.dev/twexapi/apis/twexapi-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/twexapi/apis/twexapi-rest-api/revisions/59a99ac0d8f7?raw)
