---
title: "Delete tweet"
method: DELETE
path: "/x/tweets/{id}"
tags: ["X Write"]
---

# Delete tweet

`DELETE /x/tweets/{id}`

## Path parameters

- `id` string, required

## Request body

- XAccountBody — Request body identifying an X account by username or ID.
  - `account` string, required — X account identifier (@username or account ID)

## Response `200`

Success

- object
  - `success` true, required

## Other responses

- `400` — Invalid input
- `401` — Unauthenticated
- `402` — Payment required. Fixed-price direct MPP requests return a Machine Payments Protocol problem document and a WWW-Authenticate challenge. Authenticated X data requests return balances and explicit Stripe checkout-creation actions. Guest paid-read keys receive only the accountless guest top-up action. Direct MPP challenges also advertise the Stripe wallet action. Other authenticated endpoints return a legacy error shape. A failed request never creates checkout. Create checkout only after the user confirms a payment option.
- `403` — The connected X account needs reauthentication or is currently restricted (locked, suspended, or recovering). Returns an error code of `account_needs_reauth` or `account_restricted`.
- `422` — X rejected the write or the media URL could not be downloaded. Possible codes: `x_content_too_long`, `x_duplicate_action`, `x_account_suspended`, `x_account_protected`, `x_dm_not_allowed`, `x_target_not_found`, `x_account_feature_required`, `x_rejected`, `media_download_failed` (URL fetch path only - body.url not HTTPS, resolves to private IP, file too large, origin error, or timeout).
- `429` — X throttled the write. Possible codes: `x_rate_limited` (short-term throttle) or `x_daily_limit` (daily cap hit). Back off and retry later. Distinct from Xquik tier-based 429.
- `500` — Write operation failed. Possible error codes include x_write_failed, x_write_ambiguous, x_duplicate_action, x_daily_limit (429 - account reached daily posting limit, wait 24 hours), and x_write_unconfirmed (202 - action may have completed but could not be confirmed, verify before retrying).
- `503` — A transient upstream issue occurred. Safe to retry with exponential backoff. Returns error code `x_transient_error`.

## Changes

- **2026-07-13** `83005363f122` — 7 breaking, 57 info
  - added `#/components/schemas/AuthenticatedPaymentRequired, #/components/schemas/GuestPaymentRequired, subschema #3` to the response body `oneOf` list for the response status `402`
  - the response's body type changed from `object` to no type for status `402`
  - added `subschema #1: LegacyErrorCode, subschema #2: StructuredError` to the `error` response property `oneOf` list for the response status `401`
  - added `subschema #1: LegacyErrorCode, subschema #2: StructuredError` to the `error` response property `oneOf` list for the response status `500`
  - …60 more
- **2026-04-25** `2adc33156b4b` — 8 warning, 10 info
  - added the new `insufficient_credits` enum value to the `error` response property for the response status `401`
  - added the new `insufficient_credits` enum value to the `error` response property for the response status `402`
  - added the new `insufficient_credits` enum value to the `error` response property for the response status `404`
  - added the new `insufficient_credits` enum value to the `error` response property for the response status `500`
  - …14 more

[Change history](https://skmtc.dev/xquik-dev/apis/xquik-api/changes/x/tweets/:id/delete.md)

---

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