---
title: "Changes to Get Usage"
method: GET
path: "/2/usage/tweets"
---

# Changes to Get Usage

`GET /2/usage/tweets`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 6 of 20 revisions.

- **2026-11-03** `2e1fefa37444`: 2 breaking, 2 info
- **2026-10-26** `23643fd75fe0`: 2 breaking, 2 info
- **2026-08-15** `c74357dfe14e`: 28 breaking, 4 warning, 7 info
- **2025-12-21** `1a92a48036c1`: 1 info
- **2025-05-16** `141a148b1e41`: 2 info
- **2023-12-07** `03df4adaca81`: 1 info

## Changes

- **2026-11-03** `2e1fefa37444`: 2 breaking, 2 info
  - added `#/components/schemas/DmBadAttachmentProblem, #/components/schemas/DmBadCtaProblem, #/components/schemas/DmBadCustomProfileProblem, #/components/schemas/DmBadMediaProblem, #/components/schemas/DmBadQuickReplyProblem, #/components/schemas/DmBadUrlProblem, #/components/schemas/DmConversationNameTooLongProblem, #/components/schemas/DmConversationNotFoundProblem, #/components/schemas/DmDuplicateProblem, #/components/schemas/DmInactiveDeviceProblem, #/components/schemas/DmNotDeliveredProblem, #/components/schemas/DmNotFoundProblem, #/components/schemas/DmNotOwnerProblem, #/components/schemas/DmParticipantNotAddedProblem, #/components/schemas/DmParticipantNotFoundProblem, #/components/schemas/DmParticipantRestrictedProblem, #/components/schemas/DmParticipantUnavailableProblem, #/components/schemas/DmRateLimitedProblem, #/components/schemas/DmRecipientBlocksSenderProblem, #/components/schemas/DmRecipientCannotReceiveProblem, #/components/schemas/DmRecipientEncryptedUnavailableProblem, #/components/schemas/DmRecipientNotAcceptingProblem, #/components/schemas/DmRecipientNotFoundProblem, #/components/schemas/DmRecipientRestrictsGroupsProblem, #/components/schemas/DmRecipientUnavailableProblem, #/components/schemas/DmRequestInProgressProblem, #/components/schemas/DmSafetyLimitedProblem, #/components/schemas/DmSafetyRejectedProblem, #/components/schemas/DmSenderBlocksRecipientProblem, #/components/schemas/DmSenderDeclinedDmsProblem, #/components/schemas/DmSenderDmsClosedProblem, #/components/schemas/DmSenderEncryptedUnavailableProblem, #/components/schemas/DmSenderNotInConversationProblem, #/components/schemas/DmSenderNotPermittedProblem, #/components/schemas/DmSenderNotVerifiedProblem, #/components/schemas/DmSenderPhoneRequiredProblem, #/components/schemas/DmSenderReadOnlyProblem, #/components/schemas/DmSenderUnavailableProblem, #/components/schemas/DmTextEmptyProblem, #/components/schemas/DmTextTooLongProblem, #/components/schemas/DmTooFewParticipantsProblem, #/components/schemas/DmTooManyParticipantsProblem, #/components/schemas/DmUnsupportedMessageProblem` to the response body `oneOf` list for the response status `default`
  - added `#/components/schemas/DmBadAttachmentProblem, #/components/schemas/DmBadCtaProblem, #/components/schemas/DmBadCustomProfileProblem, #/components/schemas/DmBadMediaProblem, #/components/schemas/DmBadQuickReplyProblem, #/components/schemas/DmBadUrlProblem, #/components/schemas/DmConversationNameTooLongProblem, #/components/schemas/DmConversationNotFoundProblem, #/components/schemas/DmDuplicateProblem, #/components/schemas/DmInactiveDeviceProblem, #/components/schemas/DmNotDeliveredProblem, #/components/schemas/DmNotFoundProblem, #/components/schemas/DmNotOwnerProblem, #/components/schemas/DmParticipantNotAddedProblem, #/components/schemas/DmParticipantNotFoundProblem, #/components/schemas/DmParticipantRestrictedProblem, #/components/schemas/DmParticipantUnavailableProblem, #/components/schemas/DmRateLimitedProblem, #/components/schemas/DmRecipientBlocksSenderProblem, #/components/schemas/DmRecipientCannotReceiveProblem, #/components/schemas/DmRecipientEncryptedUnavailableProblem, #/components/schemas/DmRecipientNotAcceptingProblem, #/components/schemas/DmRecipientNotFoundProblem, #/components/schemas/DmRecipientRestrictsGroupsProblem, #/components/schemas/DmRecipientUnavailableProblem, #/components/schemas/DmRequestInProgressProblem, #/components/schemas/DmSafetyLimitedProblem, #/components/schemas/DmSafetyRejectedProblem, #/components/schemas/DmSenderBlocksRecipientProblem, #/components/schemas/DmSenderDeclinedDmsProblem, #/components/schemas/DmSenderDmsClosedProblem, #/components/schemas/DmSenderEncryptedUnavailableProblem, #/components/schemas/DmSenderNotInConversationProblem, #/components/schemas/DmSenderNotPermittedProblem, #/components/schemas/DmSenderNotVerifiedProblem, #/components/schemas/DmSenderPhoneRequiredProblem, #/components/schemas/DmSenderReadOnlyProblem, #/components/schemas/DmSenderUnavailableProblem, #/components/schemas/DmTextEmptyProblem, #/components/schemas/DmTextTooLongProblem, #/components/schemas/DmTooFewParticipantsProblem, #/components/schemas/DmTooManyParticipantsProblem, #/components/schemas/DmUnsupportedMessageProblem` to the `errors/items/` response property `oneOf` list for the response status `200`
  - added `https://api.x.com/2/problems/dm-bad-attachment, https://api.x.com/2/problems/dm-bad-cta, https://api.x.com/2/problems/dm-bad-custom-profile, https://api.x.com/2/problems/dm-bad-media, https://api.x.com/2/problems/dm-bad-quick-reply, https://api.x.com/2/problems/dm-bad-url, https://api.x.com/2/problems/dm-conversation-name-too-long, https://api.x.com/2/problems/dm-conversation-not-found, https://api.x.com/2/problems/dm-duplicate, https://api.x.com/2/problems/dm-inactive-device, https://api.x.com/2/problems/dm-not-delivered, https://api.x.com/2/problems/dm-not-found, https://api.x.com/2/problems/dm-not-owner, https://api.x.com/2/problems/dm-participant-not-added, https://api.x.com/2/problems/dm-participant-not-found, https://api.x.com/2/problems/dm-participant-restricted, https://api.x.com/2/problems/dm-participant-unavailable, https://api.x.com/2/problems/dm-rate-limited, https://api.x.com/2/problems/dm-recipient-blocks-sender, https://api.x.com/2/problems/dm-recipient-cannot-receive, https://api.x.com/2/problems/dm-recipient-encrypted-unavailable, https://api.x.com/2/problems/dm-recipient-not-accepting, https://api.x.com/2/problems/dm-recipient-not-found, https://api.x.com/2/problems/dm-recipient-restricts-groups, https://api.x.com/2/problems/dm-recipient-unavailable, https://api.x.com/2/problems/dm-request-in-progress, https://api.x.com/2/problems/dm-safety-limited, https://api.x.com/2/problems/dm-safety-rejected, https://api.x.com/2/problems/dm-sender-blocks-recipient, https://api.x.com/2/problems/dm-sender-declined-dms, https://api.x.com/2/problems/dm-sender-dms-closed, https://api.x.com/2/problems/dm-sender-encrypted-unavailable, https://api.x.com/2/problems/dm-sender-not-in-conversation, https://api.x.com/2/problems/dm-sender-not-permitted, https://api.x.com/2/problems/dm-sender-not-verified, https://api.x.com/2/problems/dm-sender-phone-required, https://api.x.com/2/problems/dm-sender-read-only, https://api.x.com/2/problems/dm-sender-unavailable, https://api.x.com/2/problems/dm-text-empty, https://api.x.com/2/problems/dm-text-too-long, https://api.x.com/2/problems/dm-too-few-participants, https://api.x.com/2/problems/dm-too-many-participants, https://api.x.com/2/problems/dm-unsupported-message` mapping keys to the response discriminator for the response status `default`
  - added `https://api.x.com/2/problems/dm-bad-attachment, https://api.x.com/2/problems/dm-bad-cta, https://api.x.com/2/problems/dm-bad-custom-profile, https://api.x.com/2/problems/dm-bad-media, https://api.x.com/2/problems/dm-bad-quick-reply, https://api.x.com/2/problems/dm-bad-url, https://api.x.com/2/problems/dm-conversation-name-too-long, https://api.x.com/2/problems/dm-conversation-not-found, https://api.x.com/2/problems/dm-duplicate, https://api.x.com/2/problems/dm-inactive-device, https://api.x.com/2/problems/dm-not-delivered, https://api.x.com/2/problems/dm-not-found, https://api.x.com/2/problems/dm-not-owner, https://api.x.com/2/problems/dm-participant-not-added, https://api.x.com/2/problems/dm-participant-not-found, https://api.x.com/2/problems/dm-participant-restricted, https://api.x.com/2/problems/dm-participant-unavailable, https://api.x.com/2/problems/dm-rate-limited, https://api.x.com/2/problems/dm-recipient-blocks-sender, https://api.x.com/2/problems/dm-recipient-cannot-receive, https://api.x.com/2/problems/dm-recipient-encrypted-unavailable, https://api.x.com/2/problems/dm-recipient-not-accepting, https://api.x.com/2/problems/dm-recipient-not-found, https://api.x.com/2/problems/dm-recipient-restricts-groups, https://api.x.com/2/problems/dm-recipient-unavailable, https://api.x.com/2/problems/dm-request-in-progress, https://api.x.com/2/problems/dm-safety-limited, https://api.x.com/2/problems/dm-safety-rejected, https://api.x.com/2/problems/dm-sender-blocks-recipient, https://api.x.com/2/problems/dm-sender-declined-dms, https://api.x.com/2/problems/dm-sender-dms-closed, https://api.x.com/2/problems/dm-sender-encrypted-unavailable, https://api.x.com/2/problems/dm-sender-not-in-conversation, https://api.x.com/2/problems/dm-sender-not-permitted, https://api.x.com/2/problems/dm-sender-not-verified, https://api.x.com/2/problems/dm-sender-phone-required, https://api.x.com/2/problems/dm-sender-read-only, https://api.x.com/2/problems/dm-sender-unavailable, https://api.x.com/2/problems/dm-text-empty, https://api.x.com/2/problems/dm-text-too-long, https://api.x.com/2/problems/dm-too-few-participants, https://api.x.com/2/problems/dm-too-many-participants, https://api.x.com/2/problems/dm-unsupported-message` discriminator mapping keys to the `errors/items/` response property for the response status `200`
- **2026-10-26** `23643fd75fe0`: 2 breaking, 2 info
  - added `#/components/schemas/RecipientNotMessageableProblem, #/components/schemas/DuplicateRuleProblem, #/components/schemas/InvalidRuleProblem` to the response body `oneOf` list for the response status `default`
  - added `#/components/schemas/RecipientNotMessageableProblem, #/components/schemas/DuplicateRuleProblem, #/components/schemas/InvalidRuleProblem` to the `errors/items/` response property `oneOf` list for the response status `200`
  - added `https://api.twitter.com/2/problems/duplicate-rules, https://api.twitter.com/2/problems/invalid-rules, https://api.x.com/2/problems/recipient-not-messageable` mapping keys to the response discriminator for the response status `default`
  - added `https://api.twitter.com/2/problems/duplicate-rules, https://api.twitter.com/2/problems/invalid-rules, https://api.x.com/2/problems/recipient-not-messageable` discriminator mapping keys to the `errors/items/` response property for the response status `200`
- **2026-08-15** `c74357dfe14e`: 28 breaking, 4 warning, 7 info
  - added `#/components/schemas/ResourceNotFoundProblem, #/components/schemas/InvalidRequestProblem, #/components/schemas/NotAuthorizedForResourceProblem, #/components/schemas/NotAuthorizedForFieldProblem, #/components/schemas/FieldUnauthorizedProblem, #/components/schemas/FieldHydrationFailureProblem, #/components/schemas/ResourceUnavailableProblem, #/components/schemas/DisallowedResourceProblem, #/components/schemas/InternalErrorProblem` to the response body `oneOf` list for the response status `default`
  - the response's body type changed from `object` to no type for status `default`
  - the response property `data/daily_client_app_usage/items/client_app_id` became nullable for the status `200`
  - the response property `data/daily_client_app_usage/items/usage/items/usage` became nullable for the status `200`
  - the response property `data/daily_project_usage/project_id` became nullable for the status `200`
  - the response property `data/daily_project_usage/usage` became nullable for the status `200`
  - the response property `data/daily_project_usage/usage/items/usage` became nullable for the status `200`
  - the `data/daily_client_app_usage` response property's minItems was decreased from `1` to `0` for the response status `200`
  - the `data/daily_client_app_usage/items/usage` response property's minItems was decreased from `1` to `0` for the response status `200`
  - the `data/daily_project_usage/usage` response property's minItems was decreased from `1` to `0` for the response status `200`
  - the `errors` response property's minItems was decreased from `1` to `0` for the response status `200`
  - added `#/components/schemas/ResourceNotFoundProblem, #/components/schemas/InvalidRequestProblem, #/components/schemas/NotAuthorizedForResourceProblem, #/components/schemas/NotAuthorizedForFieldProblem, #/components/schemas/FieldUnauthorizedProblem, #/components/schemas/FieldHydrationFailureProblem, #/components/schemas/ResourceUnavailableProblem, #/components/schemas/DisallowedResourceProblem, #/components/schemas/InternalErrorProblem` to the `errors/items/` response property `oneOf` list for the response status `200`
  - the `data/cap_reset_day` response's property format changed from `int32` to no format for status `200`
  - the `data/daily_client_app_usage/items/client_app_id` response's property format changed from `^[0-9]{1,19}$` to no format for status `200`
  - the `data/daily_client_app_usage/items/usage/items/date` response's property format changed from `date-time` to no format for status `200`
  - the `data/daily_client_app_usage/items/usage/items/usage` response's property type changed from `integer` to `string`, and format from `int32` to no format for status `200`
  - the `data/daily_client_app_usage/items/usage_result_count` response's property format changed from `int32` to `int64` for status `200`
  - the `data/daily_project_usage/project_id` response's property type changed from `integer` to `string`, and format from `int32` to no format for status `200`
  - the `data/daily_project_usage/usage/items/date` response's property format changed from `date-time` to no format for status `200`
  - the `data/daily_project_usage/usage/items/usage` response's property type changed from `integer` to `string`, and format from `int32` to no format for status `200`
  - the `data/project_cap` response's property type changed from `integer` to `string`, and format from `int32` to no format for status `200`
  - the `data/project_id` response's property format changed from `^[0-9]{1,19}$` to no format for status `200`
  - the `data/project_usage` response's property type changed from `integer` to `string`, and format from `int32` to no format for status `200`
  - the `errors/items/` response's property type changed from `object` to no type for status `200`
  - removed the required property `errors/items/title` from the response with the `200` status
  - removed the required property `errors/items/type` from the response with the `200` status
  - removed the required property `title` from the response with the `default` status
  - removed the required property `type` from the response with the `default` status
  - removed the optional property `detail` from the response with the `default` status
  - removed the optional property `errors/items/detail` from the response with the `200` status
  - removed the optional property `errors/items/status` from the response with the `200` status
  - removed the optional property `status` from the response with the `default` status
  - added `https://api.x.com/2/problems/disallowed-resource, https://api.x.com/2/problems/field-hydration-failure, https://api.x.com/2/problems/field-unauthorized, https://api.x.com/2/problems/internal-error, https://api.x.com/2/problems/invalid-request, https://api.x.com/2/problems/not-authorized-for-field, https://api.x.com/2/problems/not-authorized-for-resource, https://api.x.com/2/problems/resource-not-found, https://api.x.com/2/problems/resource-unavailable` mapping keys to the response discriminator for the response status `default`
  - removed `about:blank, https://api.twitter.com/2/problems/client-disconnected, https://api.twitter.com/2/problems/client-forbidden, https://api.twitter.com/2/problems/conflict, https://api.twitter.com/2/problems/disallowed-resource, https://api.twitter.com/2/problems/duplicate-rules, https://api.twitter.com/2/problems/invalid-request, https://api.twitter.com/2/problems/invalid-rules, https://api.twitter.com/2/problems/noncompliant-rules, https://api.twitter.com/2/problems/not-authorized-for-field, https://api.twitter.com/2/problems/not-authorized-for-resource, https://api.twitter.com/2/problems/operational-disconnect, https://api.twitter.com/2/problems/resource-not-found, https://api.twitter.com/2/problems/resource-unavailable, https://api.twitter.com/2/problems/rule-cap, https://api.twitter.com/2/problems/streaming-connection, https://api.twitter.com/2/problems/unsupported-authentication, https://api.twitter.com/2/problems/usage-capped` mapping keys from the response discriminator for the response status `default`
  - the response property `data/daily_client_app_usage/items/usage/items/date` became required for the status `200`
  - the response property `data/daily_client_app_usage/items/usage_result_count` became required for the status `200`
  - the response property `data/daily_project_usage/usage/items/date` became required for the status `200`
  - added `https://api.x.com/2/problems/disallowed-resource, https://api.x.com/2/problems/field-hydration-failure, https://api.x.com/2/problems/field-unauthorized, https://api.x.com/2/problems/internal-error, https://api.x.com/2/problems/invalid-request, https://api.x.com/2/problems/not-authorized-for-field, https://api.x.com/2/problems/not-authorized-for-resource, https://api.x.com/2/problems/resource-not-found, https://api.x.com/2/problems/resource-unavailable` discriminator mapping keys to the `errors/items/` response property for the response status `200`
  - removed `about:blank, https://api.twitter.com/2/problems/client-disconnected, https://api.twitter.com/2/problems/client-forbidden, https://api.twitter.com/2/problems/conflict, https://api.twitter.com/2/problems/disallowed-resource, https://api.twitter.com/2/problems/duplicate-rules, https://api.twitter.com/2/problems/invalid-request, https://api.twitter.com/2/problems/invalid-rules, https://api.twitter.com/2/problems/noncompliant-rules, https://api.twitter.com/2/problems/not-authorized-for-field, https://api.twitter.com/2/problems/not-authorized-for-resource, https://api.twitter.com/2/problems/operational-disconnect, https://api.twitter.com/2/problems/resource-not-found, https://api.twitter.com/2/problems/resource-unavailable, https://api.twitter.com/2/problems/rule-cap, https://api.twitter.com/2/problems/streaming-connection, https://api.twitter.com/2/problems/unsupported-authentication, https://api.twitter.com/2/problems/usage-capped` discriminator mapping keys from the `errors/items/` response property for the response status `200`
- **2025-12-21** `1a92a48036c1`: 1 info
  - api operation id `getUsageTweets` removed and replaced with `getUsage`
- **2025-05-16** `141a148b1e41`: 2 info
  - removed `https://api.twitter.com/2/problems/oauth1-permissions` mapping keys from the response discriminator for the response status `default`
  - removed `https://api.twitter.com/2/problems/oauth1-permissions` discriminator mapping keys from the `errors/items/` response property for the response status `200`
- **2023-12-07** `03df4adaca81`: 1 info
  - endpoint added

---

[Operation](https://skmtc.dev/x/apis/x-api-v2/docs/2/usage/tweets/get.md) - [API](https://skmtc.dev/x/apis/x-api-v2.md) - [Page](https://skmtc.dev/x/apis/x-api-v2/changes/2/usage/tweets/get)
