Error Codes & Responses

HTTP Status Codes

The Twitter API attempts to return appropriate HTTP status codes for every request.

Code Text Description
200 OK Success!
304 Not Modified There was no new data to return.
400 Bad Request The request was invalid or cannot be otherwise served. An accompanying error message will explain further. Requests without authentication are considered invalid and will yield this response.
401 Unauthorized Missing or incorrect authentication credentials. Also returned in other circumstances (for example, all calls to API v1 endpoints return 401).
403 Forbidden The request is understood, but it has been refused or access is not allowed. An accompanying error message will explain why. This code is used when requests are being denied due to update limits . Other reasons for this status being returned are listed alongside the response codes in the table below.
404 Not Found The URI requested is invalid or the resource requested, such as a user, does not exists. Also returned when the requested format is not supported by the requested method.
406 Not Acceptable Returned when an invalid format is specified in the request.
410 Gone This resource is gone. Used to indicate that an API endpoint has been turned off.
420 Enhance Your Calm Returned when an application is being rate limited .
422 Unprocessable Entity Returned when an image uploaded to POST account / update_profile_banner is unable to be processed.
429 Too Many Requests Returned when a request cannot be served due to the application’s rate limit having been exhausted for the resource. See Rate Limiting .
500 Internal Server Error Something is broken. Please post to the developer forums with additional details of your request, in case others are having similar issues.
502 Bad Gateway Twitter is down or being upgraded.
503 Service Unavailable The Twitter servers are up, but overloaded with requests. Try again later.
504 Gateway timeout The Twitter servers are up, but the request couldn’t be serviced due to some failure within our stack. Try again later.

Error Messages

When the Twitter API returns error messages, it does so in JSON format. For example, an error might look like this:

{"errors":[{"message":"Sorry, that page does not exist","code":34}]}

Error Codes

In addition to descriptive error text, error messages contain machine-parseable codes. While the text for an error message may change, the codes will stay the same. The following table describes the codes which may appear when working with the API:

Code Text Description
32 Could not authenticate you Your call could not be completed as dialed.
34 Sorry, that page does not exist Corresponds with HTTP 404 - the specified resource was not found.
36 You cannot report yourself for spam. Corresponds with HTTP 403. You cannot use your own user ID in a report spam call.
44 attachment_url parameter is invalid Corresponds with HTTP 400. The URL value provided is not a URL that can be attached to this Tweet.
50 User not found. Corresponds with HTTP 404. The user is not found.
63 User has been suspended. The user account has been suspended and information cannot be retrieved.
64 Your account is suspended and is not permitted to access this feature Corresponds with HTTP 403 — the access token being used belongs to a suspended user and they can’t complete the action you’re trying to take.
68 The Twitter REST API v1 is no longer active. Please migrate to API v1.1. Corresponds to a HTTP request to a retired v1-era URL.
87 Client is not permitted to perform this action. Corresponds with HTTP 403. The endpoint called is not a permitted URL.
88 Rate limit exceeded The request limit for this resource has been reached for the current rate limit window.
89 Invalid or expired token The access token used in the request is incorrect or has expired.
92 SSL is required Only SSL connections are allowed in the API, you should update your request to a secure connection. See how to connect using TLS
93 This application is not allowed to access or delete your direct messages Corresponds with HTTP 403. The OAuth token does not provide access to Direct Messages.
99 Unable to verify your credentials. Corresponds with HTTP 403. The OAuth credentials cannot be validated. Check that the token is still valid.
130 Over capacity Corresponds with HTTP 503 - Twitter is temporarily over capacity.
131 Internal error Corresponds with HTTP 500 - An unknown internal error occurred.
135 Could not authenticate you Corresponds with HTTP 401 - Timestamp out of bounds (check your system clock)
144 No status found with that ID. Corresponds with HTTP 404 - the requested Tweet ID is not found (if it existed, it was probably deleted)
150 You cannot send messages to users who are not following you. Corresponds with HTTP 403 — sending a Direct Message failed.
151 There was an error sending your message: reason Corresponds with HTTP 403 — sending a Direct Message failed. The reason value will provide more information.
161 You are unable to follow more people at this time Corresponds with HTTP 403 — thrown when a user cannot follow another user due to some kind of limit
179 Sorry, you are not authorized to see this status Corresponds with HTTP 403 — thrown when a Tweet cannot be viewed by the authenticating user, usually due to the Tweet’s author having protected their Tweets.
185 User is over daily status update limit Corresponds with HTTP 403 — thrown when a Tweet cannot be posted due to the user having no allowance remaining to post. Despite the text in the error message indicating that this error is only thrown when a daily limit is reached, this error will be thrown whenever a posting limitation has been reached. Posting allowances have roaming windows of time of unspecified duration.
187 Status is a duplicate The status text has already been Tweeted by the authenticated account.
205 You are over the limit for spam reports. Corresponds with HTTP 403. The account limit for reporting spam has been reached. Try again later.
215 Bad authentication data Typically sent with 1.1 responses with HTTP code 400. The method requires authentication but it was not presented or was wholly invalid.
220 Your credentials do not allow access to this resource. Corresponds with HTTP 403. The authentication token in use is restricted and cannot access the requested resource.
226 This request looks like it might be automated. To protect our users from spam and other malicious activity, we can’t complete this action right now. We constantly monitor and adjust our filters to block spam and malicious activity on the Twitter platform. These systems are tuned in real-time. If you get this response our systems have flagged the Tweet or DM as possibly fitting this profile. If you feel that the Tweet or DM you attempted to create was flagged in error, please report the details around that to us by filing a ticket at .
231 User must verify login Returned as a challenge in xAuth when the user has login verification enabled on their account and needs to be directed to to generate a temporary password .
251 This endpoint has been retired and should not be used. Corresponds to a HTTP request to a retired URL.
261 Application cannot perform write actions. Corresponds with HTTP 403 — thrown when the application is restricted from POST, PUT, or DELETE actions. See How to appeal application suspension and other disciplinary actions .
271 You can’t mute yourself. Corresponds with HTTP 403. The authenticated user account cannot mute itself.
272 You are not muting the specified user. Corresponds with HTTP 403. The authenticated user account is not muting the account a call is attempting to unmute.
323 Animated GIFs are not allowed when uploading multiple images. Corresponds with HTTP 400. Only one animated GIF is allowed to be attached to a single Tweet.
324 The validation of media ids failed. Corresponds with HTTP 400. There was a problem with the media ID submitted with the Tweet.
325 A media id was not found. Corresponds with HTTP 400. The media ID attached to the Tweet was not found.
326 To protect our users from spam and other malicious activity, this account is temporarily locked. Corresponds with HTTP 403. The user should log in to to unlock their account.
354 The text of your direct message is over the max character limit. Corresponds with HTTP 403. The message size exceeds the number of characters permitted in a direct message.
385 You attempted to reply to a tweet that is deleted or not visible to you. Corresponds with HTTP 403. A reply can only be sent with reference to an existing public Tweet.
386 The Tweet exceeds the number of allowed attachment types. Corresponds with HTTP 403. A Tweet is limited to a single attachment resource (media, Quote Tweet, etc.)

If you see an error response which is not listed in the above table, then fall back to the HTTP status code in order to determine the best way to address the error.