---
title: "[Step 4/5] Set article content from Markdown"
method: PUT
path: "/x/articles/{article_id}/content"
tags: ["Article Endpoints"]
---

# \[Step 4/5\] Set article content from Markdown

`PUT /x/articles/{article_id}/content`

## Request

- Base URL: `https://api.twexapi.io`
- URL: `https://api.twexapi.io/x/articles/{article_id}/content`
- Auth: HTTP bearer

**Step 4 of 5** — Set the article body by providing Markdown text.

- `article_id`: obtained from Step 1
- `markdown`: supports headings, bold/italic, lists, code blocks, and inline images (`![alt](url)`)

Inline images are automatically uploaded to X and embedded in the article.

## Path parameters

- `article_id` string, required

## Request body

- ArticleUpdateContentBody
  - `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).
  - `markdown` string, required: Article body in Markdown format

## Response `200`

Successful Response

- ArticleContentResponse
  - `code` integer, required: 200 = success, 429 = rate limit, 500 = server error
  - `msg` string, required: Human-readable result message
  - `data` ArticleContentData
    - `blocks` integer, required: Number of content blocks parsed from the Markdown (paragraphs, headings, images, etc.)

## 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)
