POST statuses/update


Updates the authenticating user’s current status, also known as Tweeting.

For each update attempt, the update text is compared with the authenticating user’s recent Tweets. Any attempt that would result in duplication will be blocked, resulting in a 403 error. A user cannot submit the same status twice in a row.

While not rate limited by the API, a user is limited in the number of Tweets they can create at a time. If the number of updates posted by the user reaches the current allowed limit this method will return an HTTP 403 error.

Resource URL

Resource Information

Response formats JSON
Requires authentication? Yes (user context only)
Rate limited? Yes


Name Required Description Default Value Example
status required The text of the status update, typically up to 140 characters. URL encode as necessary. link wrapping may affect character counts. There are some special commands in this field to be aware of. For instance, preceding a message with “D ” or “M ” and following it with a screen name can create a Direct Message to that user if the relationship allows for it. See the ‘enable_dm_commands’ parameter for information on disabling Direct Message creation to allow any text to be created as a Tweet.    
in_reply_to_status_id optional The ID of an existing status that the update is in reply to. Note: This parameter will be ignored unless the author of the Tweet this parameter references is mentioned within the status text. Therefore, you must include @username , where username is the author of the referenced Tweet, within the update.    
possibly_sensitive optional If you upload Tweet media that might be considered sensitive content such as nudity, violence, or medical procedures, you should set this value to true. See Media setting and best practices for more context. false true
lat optional The latitude of the location this Tweet refers to. This parameter will be ignored unless it is inside the range -90.0 to +90.0 (North is positive) inclusive. It will also be ignored if there isn’t a corresponding long parameter.   37.7821120598956
long optional The longitude of the location this Tweet refers to. The valid ranges for longitude is -180.0 to +180.0 (East is positive) inclusive. This parameter will be ignored if outside that range, if it is not a number, if geo_enabled is disabled, or if there not a corresponding lat parameter.   -122.400612831116
place_id optional A place in the world.   df51dec6f4ee2b2c
display_coordinates optional Whether or not to put a pin on the exact coordinates a Tweet has been sent from.   true
trim_user optional When set to either true , t or 1 , each Tweet returned in a timeline will include a user object including only the status authors numerical ID. Omit this parameter to receive the complete user object. false true
media_ids optional A list of media_ids to associate with the Tweet. You may include up to 4 photos or 1 animated GIF or 1 video in a Tweet. See Uploading Media for further details on uploading media.   471592142565957632
enable_dm_commands optional When set to true, enables shortcode commands for sending Direct Messages as part of the status text to send a Direct Message to a user. When set to false, disables this behavior and includes any leading characters in the status text that is posted true true
fail_dm_commands optional When set to true, causes any status text that starts with shortcode commands to return an API error. When set to false, allows shortcode commands to be sent in the status text and acted on by the API. false false

Example Request


Example Response

  "coordinates": null,
  "favorited": false,
  "created_at": "Wed Sep 05 00:37:15 +0000 2012",
  "truncated": false,
  "id_str": "243145735212777472",
  "entities": {
    "urls": [

    "hashtags": [
        "text": "peterfalk",
        "indices": [
    "user_mentions": [

  "in_reply_to_user_id_str": null,
  "text": "Maybe he'll finally find his keys. #peterfalk",
  "contributors": null,
  "retweet_count": 0,
  "id": 243145735212777472,
  "in_reply_to_status_id_str": null,
  "geo": null,
  "retweeted": false,
  "in_reply_to_user_id": null,
  "place": null,
  "user": {
    "name": "Jason Costa",
    "profile_sidebar_border_color": "86A4A6",
    "profile_sidebar_fill_color": "A0C5C7",
    "profile_background_tile": false,
    "profile_image_url": "",
    "created_at": "Wed May 28 00:20:15 +0000 2008",
    "location": "",
    "is_translator": true,
    "follow_request_sent": false,
    "id_str": "14927800",
    "profile_link_color": "FF3300",
    "entities": {
      "url": {
        "urls": [
            "expanded_url": "",
            "url": "",
            "indices": [
            "display_url": ""
      "description": {
        "urls": [

    "default_profile": false,
    "contributors_enabled": false,
    "url": "",
    "favourites_count": 883,
    "utc_offset": -28800,
    "id": 14927800,
    "profile_image_url_https": "",
    "profile_use_background_image": true,
    "listed_count": 150,
    "profile_text_color": "333333",
    "protected": false,
    "lang": "en",
    "followers_count": 8760,
    "time_zone": "Pacific Time (US & Canada)",
    "profile_background_image_url_https": "",
    "verified": false,
    "profile_background_color": "709397",
    "notifications": false,
    "description": "Platform at Twitter",
    "geo_enabled": true,
    "statuses_count": 5532,
    "default_profile_image": false,
    "friends_count": 166,
    "profile_background_image_url": "",
    "show_all_inline_media": true,
    "screen_name": "jasoncosta",
    "following": false
  "source": "My Shiny App",
  "in_reply_to_screen_name": null,
  "in_reply_to_status_id": null