***Antipattern***
Count: 5
-POST  /articles/{id}/delete Deletes an article. Note that only article owners can delete their questions. Use an access_token with write_access to delete an article. It is not possible to undelete an article via the Stack Exchange API. In practice, this method will never return an object.
-POST  /questions/{id}/delete Deletes a question. Note that only question owners can delete their questions, this is not equivalent to casting a delete vote. Also be aware that there are conditions when even a question's owner cannot delete it, and this method will respect those limits. Use an access_token with write_access to delete a question. It is not possible to undelete a question via the Stack Exchange API. In practice, this method will never return an object.
-POST  /comments/{id}/delete Deletes a comment. Use an access_token with write_access to delete a comment. In practice, this method will never return an object.
-POST  /collectives/{slug}/reports/add Returns the newly created Collective report. The report types accepted by this method: user activity health. The dimensions accepted by report type. You cannot have dimension from more than one report type.
-POST  /answers/{id}/delete Deletes an answer. Note that only answer owners can delete their answers, this is not equivalent to casting a delete vote. Also be aware that there are conditions when even an answer's owner cannot delete it, and this method will respect those limits. Use an access_token with write_access to delete an answer. It is not possible to undelete an answer via the API. In practice, this method will never return an object.

***Pattern***
Count: 72
-POST  /question/{id}/upvote/undo Undoes an upvote on a question. Use an access_token with write_access to undo an upvote. To upvote a question use the /questions/{id}/upvote method. This method returns the un-upvoted question.
-POST  /answers/{id}/downvote Downvotes an answer. Use an access_token with write_access to upvote. To undo a downvote on an answer use the /answers/{id}/downvote/undo method. This method returns the downvoted answer.
-GET  /badges/recipients Returns recently awarded badges in the system. As these badges have been awarded, they will have the badge.user property set. This method returns a list of badges.
-GET  /users/{id}/tag-preferences/edit Edit a user's tag preferences. Use an access_token with write_access and private_info to edit a user's tag preferences. This method returns the edited tag_preferences.
-POST  /answers/{id}/recommend/undo Recommends an answer. Use an access_token with write_access and manage_collective_recommendations to undo recommend. This method returns the recommended answer.
-POST  /answers/{id}/suggested-edit/add Create a suggested_edit on an existing answer. Use an access_token with write_access to create a suggested_edit. Stack Exchange sites take question quality seriously, and many checks are run on the actual websites that can require various user actions be taken. In the API, any "low quality" checks that are triggered cause the write request to fail. This includes situations where a CAPTCHA or guidance text would be displayed on the websites. This method returns the new suggested_edit suggested_edit.
-POST  /comments/{id}/upvote Upvotes a comment. Use an access_token with write_access to upvote. To undo an upvote on a comment use the /comments/{id}/upvote/undo method. This method returns the upvoted comment.
-POST  /articles/{id}/edit Edit an existing article. Use an access_token with write_access to edit an existing question. This method returns the edited article.
-GET  /articles/{ids} Returns the articles identified in {ids}. {ids} can contain up to 100 semicolon delimited ids. To find ids programmatically look for article_id on article objects.
-GET  /users/{ids}/questions/no-answers Gets the questions asked by the users in {ids} which have no answers. Questions returns by this method actually have zero undeleted answers. This route is completely disjoint from the /users/{ids}/questions/unanswered and /users/{ids}/questions/unaccepted routes, since those routes only return questions with at least one answer, subject to other contraints. {ids} can contain up to 100 semicolon delimited ids. To find ids programmatically look for user_id on user or shallow_user objects.
-GET  /users/moderators/elected Returns those users on a site who both have moderator powers, and were actually elected.
-GET  /articles/{ids}/linked Gets questions which are linked to those articles identified in {ids}. This method only considers questions that are linked within a site, and will never return questions from another Stack Exchange site. A question is considered "linked" if the article explicitly includes a hyperlink to that question. There are no other heuristics.
-GET  /users/{id}/tags/{tags}/top-questions Returns the top 30 questions a user has asked with the given tags. {id} can contain a single id, to find it programmatically look for user_id on user or shallow_user objects. {tags} is limited to 5 tags, passing more will result in an error.
-GET  /answers/{ids}/comments Gets the comments on a set of answers. If you know that you have an answer id and need the comments, use this method. If you know you have a question id, use /questions/{id}/comments. If you are unsure, use /posts/{id}/comments.
-POST  /comments/{id}/flags/add Casts a flag against the comment identified by id. The available flag_options on a comment are not constant, and must be fetched from /comments/{id}/flag/options. Use an access_token with write_access to create a flag. This method returns the comment being flagged.
-GET  /users/{ids}/reputation-history Returns users' public reputation history. This method returns a list of reputation_history.
-GET  /articles Gets all the articles on the site. To constrain articles returned to those with a set of tags, use the tagged parameter with a semi-colon delimited list of tags. This is an and constraint, passing tagged=c;java will return only those articles with both tags. As such, passing more than 5 tags will always return zero results.
-GET  /collectives/{slugs}/reports Returns Collective report objects that belong to Collectives in {slugs}. Use an access_token with manage_collective_reports|{slug} to get reports. {slugs} can contain up to 20 semicolon delimited slugs. This method returns a list of Collective reports.
-POST  /questions/{id}/downvote/undo Undoes an downvote on a question. Use an access_token with write_access to undo an upvote. To downvote a question use the /questions/{id}/downvote method. This method returns the un-downvoted question.
-POST  /questions/{id}/suggested-edit/add Create a suggested_edit on an existing question. Use an access_token with write_access to create a suggested_edit. Stack Exchange sites take question quality seriously, and many checks are run on the actual websites that can require various user actions be taken. In the API, any "low quality" checks that are triggered cause the write request to fail. This includes situations where a CAPTCHA or guidance text would be displayed on the websites. This method returns the new suggested_edit suggested_edit.
-GET  /questions/no-answers Returns questions which have received no answers. Compare with /questions/unanswered which merely returns questions that the sites consider insufficiently well answered.
-GET  /users/{ids}/badges Get the badges the users in {ids} have earned.
-GET  /questions/unanswered/my-tags Returns questions the site considers to be unanswered, which are within a user's favorite tags. If a user has not favorites, their frequented tags are used instead. Note that just because a question has an answer, that does not mean it is considered answered. While the rules are subject to change, at this time a question must have at least one upvoted answer to be considered answered. This method corresponds roughly with the unanswered ""my tags"" tab. This method request an access_token.
-GET  /tags/{tags}/synonyms Gets all the synonyms that point to the tags identified in {tags}. If you're looking to discover all the tag synonyms on a site, use the /tags/synonyms methods instead of call this method on all tags. {tags} can contain up to 20 individual tags per request.
-POST  /articles/add Create a new article. Use an access_token with write_access to create a new article. This method returns the created article.
-GET  /users/{ids}/questions/featured Gets the questions on which the users in {ids} have active bounties. {ids} can contain up to 100 semicolon delimited ids. To find ids programmatically look for user_id on user or shallow_user objects.
-GET  /badges/tags Returns the badges that are awarded for participation in specific tags. For the rank sort, bronze is greater than silver which is greater than gold. Along with sort=rank, set max=gold for just gold badges, max=silver&min=silver for just silver, and min=bronze for just bronze. rank is the default sort. This method returns a list of badges.
-GET  /users/{id}/inbox/unread Returns the unread items in a user's inbox. This method requires an access_token, with a scope containing "read_inbox". This method is effectively an alias for /inbox/unread. It is provided for consumers who make strong assumptions about operating within the context of a single site rather than the Stack Exchange network as a whole. {id} can contain a single id, to find it programmatically look for user_id on user or shallow_user objects. This method returns a list of inbox items.
-POST  /questions/{id}/answers/render Render an answer given it's body and the question it's on. This method is meant for previewing or otherwise "faking" an answer. No validation is done with this method, if you need validation you should use the create or edit methods. If an access_token is provided to this method, it will act as if that was creating the answer. Otherwise no user will be set as the returned answer's owner. This method returns an answer.
-POST  /answers/{id}/upvote/undo Undoes an upvote on an answer. Use an access_token with write_access to undo an upvote. To upvote an answer use the /answers/{id}/upvote method. This method returns the un-upvoted answer.
-GET  /tags/{tag}/top-answerers/{period} Returns the top 20 answerers active in a single tag, of either all-time or the last 30 days. This is a view into the data presented on the tag info page for the site. This method returns a list of tag score objects.
-GET  /answers Returns all the undeleted answers in the system.
-GET  /tags/{tags}/info Returns tag objects representing the tags in {tags} found on the site. This method diverges from the standard naming patterns to avoid conflicting with existing methods, due to the free form nature of tag names. This method returns a list of tags.
-GET  /users/{ids}/questions/unaccepted Gets the questions asked by the users in {ids} which have at least one answer, but no accepted answer. Questions returned by this method have answers, but the owner has not opted to accept any of them.
-POST  /comments/{id}/upvote/undo Undoes an upvote on a comment. Use an access_token with write_access to undo an upvote. To upvote a comment use the /comments/{id}/upvote method. This method returns the un-upvoted comment.
-GET  /posts/{ids}/comments Gets the comments on the posts identified in ids, regardless of the type of the posts. This method is meant for cases when you are unsure of the type of the post id provided. Generally, this would be due to obtaining the post id directly from a user. {ids} can contain up to 100 semicolon delimited ids. To find ids programmatically look for post_id, answer_id, or question_id on post, answer, and question objects respectively.
-GET  /questions/{ids}/answers Gets the answers to a set of questions identified in id. This method is most useful if you have a set of interesting questions, and you wish to obtain all of their answers at once or if you are polling for new or updates answers (in conjunction with sort=activity). {ids} can contain up to 100 semicolon delimited ids. To find ids programmatically look for question_id on question objects.
-GET  /collectives/{slugs}/answers Returns answer objects belonging to Collectives in {slugs} found on the site. An answer is part of a Collective if it was recommended by a Collective or authored by a partner or admin Collective user. {slugs} can contain up to 20 semicolon delimited slugs.
-GET  /search/excerpts Searches a site for items which match the given criteria.
-GET  /questions/{id}/close/options Returns the flag options that make up close reasons that the user identified with an access_token can create for this question. Available flags vary from post to post and user to user, an app should never assume a particular flag can be created without consulting this method. Conceptually, closing is a subset of flagging. To cast a "close vote" you use the /questions/{id}/flags/add method. This method returns the available flag_options.
-POST  /answers/{id}/downvote/undo Undoes an downvote on an answer. Use an access_token with write_access to undo an upvote. To downvote an answer use the /answers/{id}/downvote method. This method returns the un-downvoted answer.
-GET  /users/{id}/reputation-history/full Returns a user's full reputation history, including private events. This method requires an access_token, with a scope containing "private_info". This method returns a list of reputation_history.
-GET  /users/{id}/top-answer-tags Returns a single user's top tags by answer score. This a subset of the data returned on a user's tags tab. {id} can contain a single id, to find it programmatically look for user_id on user or shallow_user objects. This method returns a list of top_tag objects.
-GET  /posts/{ids}/suggested-edits Returns suggested edits on the posts identified in ids. creation  creation_date approval  approval_date rejection  rejection_date creation is the default sort. {ids} can contain up to 100 semicolon delimited ids. To find ids programmatically look for post_id, answer_id, or question_id on post, answer, and question objects respectively. This method returns a list of suggested-edits.
-POST  /answers/{id}/accept Accepts an answer. Use an access_token with write_access to accept. Accept votes can only be cast on answers to questions owned by the access_token's user, and only if no other answer is accepted.
-GET  /questions/featured Returns all the questions with active bounties in the system.
-POST  /answers/{id}/recommend Recommends an answer. Use an access_token with write_access and manage_collective_recommendations to undo recommend. To undo a recommendation on an answer use the /answers/{id}/recommend/undo method. This method returns the recommended answer.
-GET  /comments/{id}/flags/options Returns the different flags that the user identified with an access_token can create for the comment identified by {id}. Available flags vary from comment to comment and user to user, an app should never assume a particular flag can be created without consulting this method. To flag a comment use the /comments/{id}/flags/add method. This method returns the available flag_options.
-GET  /answers/{id}/flags/options Returns the different flags that the user identified with an access_token can create for the answer identified by {id}. Available flags vary from post to post and user to user, an app should never assume a particular flag can be created without consulting this method. To flag an answer use the /answers/{id}/flags/add method. This method returns the available flag_options.
-GET  /collectives/{slugs}/questions Returns the questions that are part of the Collective identified by {slugs}. A question is part of a Collective if it is tagged with a tag that is part of a Collective. {slugs} can contain up to 20 semicolon delimited slugs.
-GET  /users/{id}/tags/{tags}/top-answers Returns the top 30 answers a user has posted in response to questions with the given tags. {id} can contain a single id, to find it programmatically look for user_id on user or shallow_user objects. {tags} is limited to 5 tags, passing more will result in an error.
-GET  /users/{id}/privileges Returns the privileges a user has. Applications are encouraged to calculate privileges themselves, without repeated queries to this method. A simple check against the results returned by /privileges and user.user_type would be sufficient. {id} can contain only a single, to find it programmatically look for user_id on user or shallow_user objects. This method returns a list of privileges.
-GET  /collectives/{slugs} Returns Collective objects representing the Collectives in {slugs} found on the site. {slugs} can contain up to 20 semicolon delimited slugs.
-POST  /answers/{id}/accept/undo Undoes an accept on an answer. Use an access_token with write_access to undo an upvote.
-GET  /badges Returns all the badges in the system. Badge sorts are a tad complicated. For the purposes of sorting (and min/max) tag_based is considered to be greater than named.
-GET  /users/{ids}/reputation Gets a subset of the reputation changes for users in {ids}. Reputation changes are intentionally scrubbed of some data to make it difficult to correlate votes on particular posts with user reputation changes. That being said, this method returns enough data for reasonable display of reputation trends.
-GET  /answers/{ids}/questions Returns the questions that answers identied by {ids} are on. {ids} can contain up to 100 semicolon delimited ids. To find ids programmatically look for answer_id on answer objects.
-GET  /answers/{ids} Gets the set of answers identified by ids. This is meant for batch fetching of questions. A useful trick to poll for updates is to sort by activity, with a minimum date of the last time you polled.
-GET  /collectives/{slugs}/users Returns users objects who are members of the Collectives in {slugs}. {slugs} can contain up to 20 semicolon delimited slugs.
-GET  /search/advanced Searches a site for any questions which fit the given criteria.
-POST  /answers/{id}/flags/add Casts a flag against the answer identified by id. The available flag_options on a answer are not constant, and must be fetched from /answers/{id}/flag/options. Use an access_token with write_access to create a flag. This method returns the answer being flagged.
-GET  /badges/name Gets all explicitly named badges in the system. A named badged stands in opposition to a tag-based badge. These are referred to as general badges on the sites themselves. For the rank sort, bronze is greater than silver which is greater than gold. Along with sort=rank, set max=gold for just gold badges, max=silver&min=silver for just silver, and min=bronze for just bronze. rank is the default sort. This method returns a list of badges.
-GET  /users/{id}/network-activity Returns a summary of a user's activity across the Stack Exchange network, given their account_id. You can filter the network_activity returned by this method with the types parameter. Specify, semicolon delimited, posts, badges, or comments to filter by type. This method returns a list of network_activity.
-GET  /users/{id}/notifications/unread Returns a user's unread notifications. This method requires an access_token, with a scope containing "read_inbox". This method returns a list of notifications.
-POST  /posts/{id}/comments/add Create a new comment. Use an access_token with write_access to create a new comment on a post. This method returns the created comment.
-POST  /answers/{id}/edit Edit an existing answer. Use an access_token with write_access to edit an existing answer. Stack Exchange sites take answer quality seriously, and many checks are run on the actual websites that can require various user actions be taken. In the API, any "low quality" checks that are triggered cause the write request to fail. This includes situations where a CAPTCHA or guidance text would be displayed on the websites. This method returns the edited answer.
-POST  /comments/{id}/edit Edit an existing comment. Use an access_token with write_access to edit an existing comment. This method returns the edited comment.
-POST  /question/{id}/favorite/undo Unbookmarks a question. Previously known as "unfavoriting" a question. Use an access_token with write_access to unbookmark. To bookmark a question use the /questions/{id}/favorite method. This method returns the un-bookmarked question.
-POST  /questions/{id}/answers/add Create a new answer on the given question. Stack Exchange sites take answer quality seriously, and many checks are run on the actual websites that can require various user actions be taken. In the API, any "low quality" checks that are triggered cause the write request to fail. This includes situations where a CAPTCHA or guidance text would be displayed on the websites. Use an access_token with write_access to create a new answer. This method returns the created answer.
-POST  /answers/{id}/upvote Upvotes an answer. Use an access_token with write_access to upvote. To undo an upvote on an answer use the /answers/{id}/upvote/undo method. This method returns the upvoted answer.
-POST  /posts/{id}/comments/render Render a comment given its body and the post it's on. This method is meant for previewing or otherwise "faking" a comment. No validation is done with this method, if you need validation you should use the create or edit methods. If an access_token is provided to this method, it will act as if that was creating the comment. Otherwise no user will be set as the returned answer's owner. This method returns the created comment.
-GET  /collectives/{slugs}/tags Returns tag objects belonging to the Collectives in {slugs} found on the site. {slugs} can contain up to 20 semicolon delimited slugs. This method returns a list of tags.
