---
title: "Edit Draft Tweet"
method: POST
path: "/draft/edit"
tags: ["Write Actions"]
---

# Edit Draft Tweet

`POST /draft/edit`

## Request

- Base URL: `https://api.twitterapis.com/twitter`
- URL: `https://api.twitterapis.com/twitter/draft/edit`
- Auth: HTTP bearer

Replace an existing draft's contents on the account behind your registered session. The fields you send become the draft in full: text is required, and media_ids, reply_to and quote are re-applied rather than merged, so send everything the draft should keep. Billed at $0.0016 per call. Cost: $0.0016 per call.

## Request body

- object
  - `id` string, required: ID of the draft to edit, from draft/list. Also accepted as draft_tweet_id.
  - `text` string, required: The replacement draft body. Required: an edit with no text is refused with 400.
  - `media_ids` string: Up to 4 media IDs from media/upload, as a comma-separated string or a JSON array. Omitting it drops the media the draft had; it is not merged.
  - `reply_to` string: ID of the tweet this draft replies to (send it as a string).
  - `quote` string: ID of the tweet this draft quotes (send it as a string).

## Response `200`

Replace the contents of an existing draft on your own account.

- object
  - `ok` boolean: True when the edit call reached X and X answered success. The response body is not re-read, so this is transport-level success rather than a re-read of the stored draft.
  - `draft_tweet_id` string: The draft ID you edited, echoed back.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `402`: Insufficient credits
- `403`: Forbidden
- `404`: Not found
- `429`: Rate limited
- `5XX`: Server error

---

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