Where are the destroy rate limits?!

status
rate-limits

#1

Continuing the unanswered discussion from Has /statuses/destroy a rate limited?:

I would like to know what are the rate limits of the destroy endpoint.
I currently have a user who wants to perform bulk destroy and I would like to know why the destroy endpoint is not present in the json returned for the rate limits ( https://api.twitter.com/1.1/application/rate_limit_status.json ).

{
	"rate_limit_context" : {
		"access_token" : "<MY_ACCESS_TOKEN>"
	},
	"resources" : {
		"lists" : {
			"/lists/list" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/lists/memberships" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/lists/subscribers/show" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/lists/members" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			},
			"/lists/subscriptions" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/lists/show" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/lists/ownerships" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/lists/subscribers" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			},
			"/lists/members/show" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/lists/statuses" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			}
		},
		"application" : {
			"/application/rate_limit_status" : {
				"limit" : 180,
				"remaining" : 177,
				"reset" : 1456879211
			}
		},
		"mutes" : {
			"/mutes/users/list" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/mutes/users/ids" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		},
		"friendships" : {
			"/friendships/outgoing" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/friendships/list" : {
				"limit" : 200,
				"remaining" : 200,
				"reset" : 1456879482
			},
			"/friendships/no_retweets/ids" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/friendships/lookup" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/friendships/incoming" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/friendships/show" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			}
		},
		"blocks" : {
			"/blocks/list" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/blocks/ids" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		},
		"geo" : {
			"/geo/similar_places" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/geo/id/:place_id" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/geo/reverse_geocode" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/geo/search" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		},
		"users" : {
			"/users/report_spam" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/users/show/:id" : {
				"limit" : 181,
				"remaining" : 181,
				"reset" : 1456879482
			},
			"/users/search" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			},
			"/users/suggestions/:slug" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/users/derived_info" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/users/profile_banner" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			},
			"/users/suggestions/:slug/members" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/users/lookup" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			},
			"/users/suggestions" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		},
		"followers" : {
			"/followers/ids" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/followers/list" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		},
		"collections" : {
			"/collections/list" : {
				"limit" : 1000,
				"remaining" : 1000,
				"reset" : 1456879482
			},
			"/collections/entries" : {
				"limit" : 1000,
				"remaining" : 1000,
				"reset" : 1456879482
			},
			"/collections/show" : {
				"limit" : 1000,
				"remaining" : 1000,
				"reset" : 1456879482
			}
		},
		"statuses" : {
			"/statuses/retweeters/ids" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/statuses/retweets_of_me" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/statuses/home_timeline" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/statuses/show/:id" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			},
			"/statuses/user_timeline" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			},
			"/statuses/friends" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/statuses/retweets/:id" : {
				"limit" : 60,
				"remaining" : 60,
				"reset" : 1456879482
			},
			"/statuses/mentions_timeline" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/statuses/oembed" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			},
			"/statuses/lookup" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			}
		},
		"contacts" : {
			"/contacts/uploaded_by" : {
				"limit" : 300,
				"remaining" : 300,
				"reset" : 1456879482
			},
			"/contacts/users" : {
				"limit" : 300,
				"remaining" : 300,
				"reset" : 1456879482
			},
			"/contacts/addressbook" : {
				"limit" : 300,
				"remaining" : 300,
				"reset" : 1456879482
			},
			"/contacts/users_and_uploaded_by" : {
				"limit" : 300,
				"remaining" : 300,
				"reset" : 1456879482
			},
			"/contacts/delete/status" : {
				"limit" : 300,
				"remaining" : 300,
				"reset" : 1456879482
			}
		},
		"moments" : {
			"/moments/permissions" : {
				"limit" : 300,
				"remaining" : 300,
				"reset" : 1456879482
			}
		},
		"help" : {
			"/help/tos" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/help/configuration" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/help/settings" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/help/privacy" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/help/languages" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		},
		"feedback" : {
			"/feedback/show/:id" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			},
			"/feedback/events" : {
				"limit" : 1000,
				"remaining" : 1000,
				"reset" : 1456879482
			}
		},
		"business_experience" : {
			"/business_experience/keywords" : {
				"limit" : 450,
				"remaining" : 450,
				"reset" : 1456879482
			}
		},
		"friends" : {
			"/friends/following/ids" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/friends/following/list" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/friends/list" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/friends/ids" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		},
		"direct_messages" : {
			"/direct_messages/sent" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/direct_messages" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/direct_messages/sent_and_received" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/direct_messages/show" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		},
		"media" : {
			"/media/upload" : {
				"limit" : 500,
				"remaining" : 500,
				"reset" : 1456879482
			}
		},
		"account" : {
			"/account/login_verification_enrollment" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/account/update_profile" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/account/verify_credentials" : {
				"limit" : 15,
				"remaining" : 13,
				"reset" : 1456879214
			},
			"/account/settings" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		},
		"favorites" : {
			"/favorites/list" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		},
		"device" : {
			"/device/token" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		},
		"saved_searches" : {
			"/saved_searches/destroy/:id" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/saved_searches/show/:id" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/saved_searches/list" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		},
		"search" : {
			"/search/tweets" : {
				"limit" : 180,
				"remaining" : 180,
				"reset" : 1456879482
			}
		},
		"trends" : {
			"/trends/closest" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/trends/available" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			},
			"/trends/place" : {
				"limit" : 15,
				"remaining" : 15,
				"reset" : 1456879482
			}
		}
	}
}

Thanks,
Linvi


#2

As we’ve explained several times (but not documented clearly enough, and I’ve been promising to work on this for over a year… sorry), the rate limits for non-read actions are part of the limits associated with user accounts, not with application access. Therefore, we don’t return them in the rate limit endpoint, or in the more useful x-rate-limit headers.

Generally if there is no limit documented anywhere then the default is 15 calls per window, as at the end of this page. There’s also a statement to be aware of at the end of the Automation Rules and Best Practices page relating to automated deletion.

Sorry not to be more specific.


#3

Hi Andy,

Thank you for your answer and sorry for repeating myself. I have to be honest and admit I had forgotten about our previous conversation.

I will try to find out a mechanism to cope with this behaviour.

Thanks


#4

It’s all good - I’ve been saying we should improve this for a long time, but keep getting bogged down in other things!!


#5