{"action":"created","comment":{"url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls/comments/134055630","pull_request_review_id":57302428,"id":134055630,"diff_hunk":"@@ -56,68 +43,232 @@ Scopes provide access to certain resources of a user's account. Your API client\n | webhook.incoming | this generates a webhook that is returned in the oauth token response for authorization code grants |\n \n >info\n-> Unlike the rest of the scopes, `guilds.join` requires you to have a bot account linked to your application and can only be used to join users to guilds which your bot services.\n+>Unlike the rest of the scopes, `guilds.join` requires you to have a bot account linked to your application and can only be used to join users to guilds which your bot services.\n \n-## Bots\n+## Authorization Code Grant\n+\n+The authorization code grant is the \"fullest\" and most secure of the OAuth2 flavors. It allows the authorization server to act as an intermediary between the client and the resource owner, so the resource owner's credentials are never shared directly with the client. This is what most developers will recognize as \"standard OAuth2\" and involves retrieving an access code and exchanging it for a user's access token.\n+\n+###### Authorization Code URL Example\n+\n+```\n+https://discordapp.com/oauth2/authorize?response_type=code&client_id=A&scope=B&redirect_uri=C\n+```\n+\n+`client_id` is your application's `client_id`. `scope` is a list of [OAuth2 scopes](#DOCS_OAUTH2/shared-resources-oauth2-scopes) separated by '+'. `redirect_uri` is whatever URL you registered when creating your application, url-encoded. In practice, the entire URL will look something like this:\n+\n+```\n+https://discordapp.com/oauth2/authorize?response_type=code&client_id=157730590492196864&scope=identify+guilds.join&redirect_uri=https%3A%2F%2Fnicememe.website\n+```\n+\n+When someone navigates to this URL, they will be prompted to authorize your application for the requested scopes. On acceptance, they will be redirected to your `redirect_uri`, which will contain an additional querystring parameter, `code`. This should be exchanged for the user's access token by making a `POST` request to the [token URL](#DOCS_OAUTH2/shared-resources-oauth2-urls) with the following parameters:\n+\n+- `client_id` - your application's client id\n+- `client_secret` - your application's client secret\n+- `grant_type` - must be set to `authorization_code`\n+- `code` - the code from the querystring\n+- `redirect_uri` - your `redirect_uri`\n+\n+###### Access Token Exchange Example\n+\n+```python\n+def exchangeCode(code):\n+  data = {\n+    'client_id': '332269999912132097',\n+    'client_secret': '456265548123452097',\n+    'grant_type': 'authorization_code',\n+    'code': code,\n+    'redirect_uri': 'https://nicememe.website'\n+  }\n+  headers = {\n+    'Content-Type': 'application/x-www-form-urlencoded'\n+  }\n+  return requests.post('https://discordapp.com/api/oauth2/token', data, headers).json()\n+```\n+\n+You can also pass your `client_id` and `client_secret` as an authentication header of type `Basic` and a value of the base64 encoded string formatted as \"client\\_id:client_secret\":\n+\n+###### Access Token Exchange Authentication Header Example\n+\n+```python\n+import base64\n+def exchangeCode(code):\n+  data = {\n+    'grant_type': 'authorization_code',\n+    'code': code,\n+    'redirect_uri': 'https://nicememe.website'\n+  }\n+  headers = {\n+    'Content-Type': 'application/x-www-form-urlencoded'\n+    'Authorization': 'Basic ' + base64.b64encode(b'332269999912132097:456265548123452097')\n+  }\n+  return requests.post('https://discordapp.com/api/oauth2/token', data, headers).json()\n+```\n+\n+You will receive the following response:\n+\n+###### Access Token Response\n+\n+```json\n+{\n+    \"access_token\": \"6qrZcUqja7812RVdnEKjpzOL4CvHBFG\",\n+    \"token_type\": \"Bearer\",\n+    \"expires_in\": 604800,\n+    \"refresh_token\": \"D43f5y0ahjqew82jZ4NViEr2YafMKhue\",\n+    \"scope\": \"identify\"\n+}\n+```\n+\n+Having the user's access token allows your application to make certain requests to the API on their behalf, restricted to whatever scopes were requested. `expires_in` is how long, in seconds, until the returned access token expires, allowing you to anticipate the expiration and refresh the token. To refresh, make another `POST` request to the [token URL](#DOCS_OAUTH2/shared-resources-oauth2-urls) with the following parameters:\n+\n+- `client_id` - your application's client id\n+- `client_secret` - your application's client secret\n+- `grant_type` - must be set to `refresh_token`\n+- `refresh_token` - the user's refresh token\n+- `redirect_uri` - your `redirect_uri`\n+\n+###### Refresh Token Exchange Example\n+\n+```python\n+def refreshToken(refreshToken):\n+  data = {\n+    'client_id': '332269999912132097',\n+    'client_secret': '456265548123452097',\n+    'grant_type': 'refresh_token',\n+    'refresh_token': refreshToken,\n+    'redirect_uri': 'https://nicememe.website'\n+  }\n+  headers = {\n+    'Content-Type': 'application/x-www-form-urlencoded'\n+  }\n+  return requests.post('https://discordapp.com/api/oauth2/token', data, headers).json()\n+```\n \n-Bots within the Discord API are a form of user account that is authenticated _without_ a username or password, and has similar properties and abilities to normal user accounts. Bot accounts enable developers to have a simple portal that allows authenticated users to add third-party bots to servers they own or manage.\n+Boom; fresh [access token response](#DOCS_OAUTH2/authorization-code-grant-access-token-response)!\n \n-### Registering Bots\n+## Implicit Grant\n \n-Bots can be registered by clicking the \"add bot\" button when editing or creating an [OAuth2 application](#MY_APPLICATIONS/top).\n+The implicit OAuth2 grant is a simplified flow optimized for in-browser clients. Instead of issuing the client an authorization code to be exchanged for an access token, the client is directly issued an access token. The URL is formatted as follows:\n \n-### Two-Factor Authentication Requirement\n+###### Implicit URL Example\n \n-For bots with [elevated permissions](#DOCS_PERMISSIONS/bitwise-permission-flags) (permissions with a * next to them), we enforce two-factor authentication for the owner's account when used on guilds that have server-wide 2FA enabled.\n+```\n+https://discordapp.com/oauth2/authorize?response_type=token&client_id=A&scope=B\n+```\n \n-### Adding Bots to Guilds\n+On redirect, your redirect URI will contain additional **URI fragments**: `access_token`, `token_type`, `expires_in`, and `scope`. **These are not querystring parameters.** Be mindful of the \"#\" character:\n \n-A URL can be generated that redirects authenticated users to the add-bot flow. It can be in the following format without a `redirect_uri`:\n+###### Implicit Redirect URL Example\n \n ```\n-https://discordapp.com/api/oauth2/authorize?client_id=157730590492196864&scope=bot&permissions=0\n+https://findingfakeurlsisprettyhard.tv/#access_token=A&token_type=Bearer&expires_in=B&scope=C\n ```\n \n-Or with a `redirect_uri`:\n+There are tradeoffs in using the implicit grant flow. It is both quicker and easier to implement, but rather than exchanging a code and getting a token returned in a secure HTTP body, the access token is returned in the URI fragment, which makes it possibly exposed to unauthorized parties. If you choose to implement the implicit grant, we highly recommend using the `state` parameter to help protect against cross-site request forgery. You also are not returned a refresh token, so the user must explicitly re-authorize once their token expires.\n+\n+### Client Credentials Grant\n+\n+The client credential flow is a quick and easy way for bot developers to get their own bearer tokens for testing purposes. By making a `POST` request to the [token URL](#DOCS_OAUTH2/shared-resources-oauth2-urls) with a grant type of `client_credentials`, you will be returned an access token for the bot owner. Therefore, always be super-extra-very-we-are-not-kidding-like-really-be-secure-make-sure-your-info-is-not-in-your-source-code careful with your `client_id` and `client_secret`.\n \n+You can specify scopes with the `scope` parameter, which is a list of [OAuth2 scopes](#DOCS_OAUTH2/shared-resources-oauth2-scopes) separated by spaces:\n+\n+###### Client Credentials Token Request Example\n+\n+```python\n+import base64\n+def getToken():\n+  data = {\n+    'grant_type': 'client_credentials',\n+    'scope': 'identify connections'\n+  }\n+  headers = {\n+    'Content-Type': 'application/x-www-form-urlencoded'\n+    'Authorization': 'Basic ' + base64.b64encode(b'332269999912132097:456265548123452097')\n+  }\n+  return requests.post('https://discordapp.com/api/oauth2/token', data, headers).json()\n ```\n-https://discordapp.com/api/oauth2/authorize?client_id=157730590492196864&scope=bot&permissions=0&redirect_uri=https%3A%2F%2Fnicememe.website\n+\n+In return, you will receive an access token (without a refresh token):\n+\n+###### Client Credentials Access Token Response\n+\n+```json\n+{\n+    \"access_token\": \"6qrZcUqja7812RVdnEKjpzOL4CvHBFG\",\n+    \"token_type\": \"Bearer\",\n+    \"expires_in\": 604800,\n+    \"scope\": \"identify connections\"\n+}\n ```\n \n-`client_id` is your _bot's_ application ID. `permissions` is an integer following the [permissions](#DOCS_PERMISSIONS/bitwise-permission-flags) format. If supplied, the `redirect_uri` will include additional query string parameters on redirect: `guild_id`, the guild the _bot_ has joined, and `permissions`, the same integer sent at the start of the flow.\n+## Bots\n \n-### Adding Webhooks to Channels\n+So, what are bot accounts?\n \n-A URL can be generated that redirects authenticated users to the add-webhook flow, by using the following format (this utilizes the OAuth2 authentication authorization code flow, which requires a server-side application):\n+### Bot vs User Accounts\n+\n+Discord's API provides a seperate type of user account dedicated to automation, called a bot account. Bot accounts can be created through the [applications page](#MY_APPLICATIONS/top), and are authenticated using a token (rather than a username and password). Unlike the normal OAuth2 flow, bot accounts have full access to all API routes without using bearer tokens, and can connect to the [Real Time Gateway](#DOCS_GATEWAY/gateways). Automating normal user accounts (generally called \"self-bots\") outside of the OAuth2/bot API is forbidden, and can result in an account termination if found.\n+\n+Bot accounts have a few differences in comparison to normal user accounts, namely:\n+\n+1. Bots are added to servers through the OAuth2 API, and cannot accept normal invites.\n+2. Bots cannot have friends, nor be added to or join Group DMs.\n+3. Bots do not have a maximum number of Guilds (unlike user accounts, which are limited to 100).\n+4. Bots have an entirely separate set of [Rate Limits](#DOCS_RATE_LIMITS/rate-limits).\n+\n+### Bot Auth Flow\n+\n+Bot auth is a special server-less and callback-less OAuth2 flow that makes it easy for users to add bots to servers. The URL you create looks similar to what we use for full stack implementation:\n \n ```\n-https://discordapp.com/api/oauth2/authorize?client_id=157730590492196864&scope=webhook.incoming&redirect_uri=https%3A%2F%2Fnicememe.website&response_type=code\n+https://discordapp.com/oauth2/authorize?client_id=157730590492196864&scope=bot&permissions=1\n ```\n \n-`client_id` is your application's ID and `redirect_uri` is one of your application's URL-encoded redirect URIs.\n+In the case of bots, the `scope` parameter should be set to `bot`. There's also a new parameter, `permissions`, which is an integer corresponding to the [permission calculations](#DOCS_PERMISSIONS/permissions-bitwise-permission-flags) for the bot. You'll also notice the absence of `response_type` and `redirect_uri`. Bot auth does not require these parameters because there is no need to retrieve the user's access token.\n+\n+When the user navigates to this page, they'll be prompted to add the bot to a server in which they have proper permissions. On acceptance, the bot will be added. Super easy!\n+\n+### Advanced Bot Auth\n+\n+Enterprising devs can add some complexity to bot auth. You can request additional scopes outside of \"bot\", which will prompt a continuation into the [authorization code](#DOCS_OAUTH2/authorization-code-grant) flow and add the ability to request the user's access token. If you request any scopes outside of `bot`, the `response_type` and `redirect_uri` parameters are again mandatory. A full OAuth2 flow is also required if you check \"Require OAuth2 Code Grant\" in your application's settings.","path":"docs/topics/OAuth2.md","position":263,"original_position":263,"commit_id":"e4d0b9c86146926449517553f5192b643d43937e","original_commit_id":"e4d0b9c86146926449517553f5192b643d43937e","user":{"login":"night","id":2942184,"avatar_url":"https://avatars0.githubusercontent.com/u/2942184?v=4","gravatar_id":"","url":"https://api.github.com/users/night","html_url":"https://github.com/night","followers_url":"https://api.github.com/users/night/followers","following_url":"https://api.github.com/users/night/following{/other_user}","gists_url":"https://api.github.com/users/night/gists{/gist_id}","starred_url":"https://api.github.com/users/night/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/night/subscriptions","organizations_url":"https://api.github.com/users/night/orgs","repos_url":"https://api.github.com/users/night/repos","events_url":"https://api.github.com/users/night/events{/privacy}","received_events_url":"https://api.github.com/users/night/received_events","type":"User","site_admin":false},"body":"> outside of `bot`","created_at":"2017-08-18T21:06:39Z","updated_at":"2017-08-18T21:12:07Z","html_url":"https://github.com/hammerandchisel/discord-api-docs/pull/353#discussion_r134055630","pull_request_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls/353","_links":{"self":{"href":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls/comments/134055630"},"html":{"href":"https://github.com/hammerandchisel/discord-api-docs/pull/353#discussion_r134055630"},"pull_request":{"href":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls/353"}}},"pull_request":{"url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls/353","id":136363918,"html_url":"https://github.com/hammerandchisel/discord-api-docs/pull/353","diff_url":"https://github.com/hammerandchisel/discord-api-docs/pull/353.diff","patch_url":"https://github.com/hammerandchisel/discord-api-docs/pull/353.patch","issue_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/353","number":353,"state":"open","locked":false,"title":"A Rewrite of OAuth2 Documentation","user":{"login":"msciotti","id":4193854,"avatar_url":"https://avatars3.githubusercontent.com/u/4193854?v=4","gravatar_id":"","url":"https://api.github.com/users/msciotti","html_url":"https://github.com/msciotti","followers_url":"https://api.github.com/users/msciotti/followers","following_url":"https://api.github.com/users/msciotti/following{/other_user}","gists_url":"https://api.github.com/users/msciotti/gists{/gist_id}","starred_url":"https://api.github.com/users/msciotti/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/msciotti/subscriptions","organizations_url":"https://api.github.com/users/msciotti/orgs","repos_url":"https://api.github.com/users/msciotti/repos","events_url":"https://api.github.com/users/msciotti/events{/privacy}","received_events_url":"https://api.github.com/users/msciotti/received_events","type":"User","site_admin":false},"body":"The documentation has been clarified for the existing flows. It also adds documentation for our supported implicit grant and client credentials grant.\r\n\r\nMany .swp files were created and killed for this PR. F.","created_at":"2017-08-17T22:05:24Z","updated_at":"2017-08-18T21:12:07Z","closed_at":null,"merged_at":null,"merge_commit_sha":"93d84ba4837ca869d2ab3d526f93ae0a3d48f4e2","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls/353/commits","review_comments_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls/353/comments","review_comment_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/353/comments","statuses_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/statuses/e4d0b9c86146926449517553f5192b643d43937e","head":{"label":"hammerandchisel:feature/oauth-rewrite","ref":"feature/oauth-rewrite","sha":"e4d0b9c86146926449517553f5192b643d43937e","user":{"login":"hammerandchisel","id":1965106,"avatar_url":"https://avatars3.githubusercontent.com/u/1965106?v=4","gravatar_id":"","url":"https://api.github.com/users/hammerandchisel","html_url":"https://github.com/hammerandchisel","followers_url":"https://api.github.com/users/hammerandchisel/followers","following_url":"https://api.github.com/users/hammerandchisel/following{/other_user}","gists_url":"https://api.github.com/users/hammerandchisel/gists{/gist_id}","starred_url":"https://api.github.com/users/hammerandchisel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hammerandchisel/subscriptions","organizations_url":"https://api.github.com/users/hammerandchisel/orgs","repos_url":"https://api.github.com/users/hammerandchisel/repos","events_url":"https://api.github.com/users/hammerandchisel/events{/privacy}","received_events_url":"https://api.github.com/users/hammerandchisel/received_events","type":"Organization","site_admin":false},"repo":{"id":54995014,"name":"discord-api-docs","full_name":"hammerandchisel/discord-api-docs","owner":{"login":"hammerandchisel","id":1965106,"avatar_url":"https://avatars3.githubusercontent.com/u/1965106?v=4","gravatar_id":"","url":"https://api.github.com/users/hammerandchisel","html_url":"https://github.com/hammerandchisel","followers_url":"https://api.github.com/users/hammerandchisel/followers","following_url":"https://api.github.com/users/hammerandchisel/following{/other_user}","gists_url":"https://api.github.com/users/hammerandchisel/gists{/gist_id}","starred_url":"https://api.github.com/users/hammerandchisel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hammerandchisel/subscriptions","organizations_url":"https://api.github.com/users/hammerandchisel/orgs","repos_url":"https://api.github.com/users/hammerandchisel/repos","events_url":"https://api.github.com/users/hammerandchisel/events{/privacy}","received_events_url":"https://api.github.com/users/hammerandchisel/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hammerandchisel/discord-api-docs","description":"Official Discord API Documentation","fork":false,"url":"https://api.github.com/repos/hammerandchisel/discord-api-docs","forks_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/forks","keys_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/teams","hooks_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/hooks","issue_events_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/events{/number}","events_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/events","assignees_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/assignees{/user}","branches_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/branches{/branch}","tags_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/tags","blobs_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/languages","stargazers_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/stargazers","contributors_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/contributors","subscribers_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/subscribers","subscription_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/subscription","commits_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/contents/{+path}","compare_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/merges","archive_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/downloads","issues_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues{/number}","pulls_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/labels{/name}","releases_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/releases{/id}","deployments_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/deployments","created_at":"2016-03-29T17:11:53Z","updated_at":"2017-08-15T21:43:29Z","pushed_at":"2017-08-18T20:36:04Z","git_url":"git://github.com/hammerandchisel/discord-api-docs.git","ssh_url":"git@github.com:hammerandchisel/discord-api-docs.git","clone_url":"https://github.com/hammerandchisel/discord-api-docs.git","svn_url":"https://github.com/hammerandchisel/discord-api-docs","homepage":"","size":665,"stargazers_count":534,"watchers_count":534,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":167,"mirror_url":null,"open_issues_count":9,"forks":167,"open_issues":9,"watchers":534,"default_branch":"master"}},"base":{"label":"hammerandchisel:master","ref":"master","sha":"15e83977bb9f971cca311c0a044137e210716c53","user":{"login":"hammerandchisel","id":1965106,"avatar_url":"https://avatars3.githubusercontent.com/u/1965106?v=4","gravatar_id":"","url":"https://api.github.com/users/hammerandchisel","html_url":"https://github.com/hammerandchisel","followers_url":"https://api.github.com/users/hammerandchisel/followers","following_url":"https://api.github.com/users/hammerandchisel/following{/other_user}","gists_url":"https://api.github.com/users/hammerandchisel/gists{/gist_id}","starred_url":"https://api.github.com/users/hammerandchisel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hammerandchisel/subscriptions","organizations_url":"https://api.github.com/users/hammerandchisel/orgs","repos_url":"https://api.github.com/users/hammerandchisel/repos","events_url":"https://api.github.com/users/hammerandchisel/events{/privacy}","received_events_url":"https://api.github.com/users/hammerandchisel/received_events","type":"Organization","site_admin":false},"repo":{"id":54995014,"name":"discord-api-docs","full_name":"hammerandchisel/discord-api-docs","owner":{"login":"hammerandchisel","id":1965106,"avatar_url":"https://avatars3.githubusercontent.com/u/1965106?v=4","gravatar_id":"","url":"https://api.github.com/users/hammerandchisel","html_url":"https://github.com/hammerandchisel","followers_url":"https://api.github.com/users/hammerandchisel/followers","following_url":"https://api.github.com/users/hammerandchisel/following{/other_user}","gists_url":"https://api.github.com/users/hammerandchisel/gists{/gist_id}","starred_url":"https://api.github.com/users/hammerandchisel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hammerandchisel/subscriptions","organizations_url":"https://api.github.com/users/hammerandchisel/orgs","repos_url":"https://api.github.com/users/hammerandchisel/repos","events_url":"https://api.github.com/users/hammerandchisel/events{/privacy}","received_events_url":"https://api.github.com/users/hammerandchisel/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/hammerandchisel/discord-api-docs","description":"Official Discord API Documentation","fork":false,"url":"https://api.github.com/repos/hammerandchisel/discord-api-docs","forks_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/forks","keys_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/teams","hooks_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/hooks","issue_events_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/events{/number}","events_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/events","assignees_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/assignees{/user}","branches_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/branches{/branch}","tags_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/tags","blobs_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/statuses/{sha}","languages_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/languages","stargazers_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/stargazers","contributors_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/contributors","subscribers_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/subscribers","subscription_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/subscription","commits_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/comments{/number}","contents_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/contents/{+path}","compare_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/merges","archive_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/downloads","issues_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues{/number}","pulls_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls{/number}","milestones_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/milestones{/number}","notifications_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/labels{/name}","releases_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/releases{/id}","deployments_url":"https://api.github.com/repos/hammerandchisel/discord-api-docs/deployments","created_at":"2016-03-29T17:11:53Z","updated_at":"2017-08-15T21:43:29Z","pushed_at":"2017-08-18T20:36:04Z","git_url":"git://github.com/hammerandchisel/discord-api-docs.git","ssh_url":"git@github.com:hammerandchisel/discord-api-docs.git","clone_url":"https://github.com/hammerandchisel/discord-api-docs.git","svn_url":"https://github.com/hammerandchisel/discord-api-docs","homepage":"","size":665,"stargazers_count":534,"watchers_count":534,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":167,"mirror_url":null,"open_issues_count":9,"forks":167,"open_issues":9,"watchers":534,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls/353"},"html":{"href":"https://github.com/hammerandchisel/discord-api-docs/pull/353"},"issue":{"href":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/353"},"comments":{"href":"https://api.github.com/repos/hammerandchisel/discord-api-docs/issues/353/comments"},"review_comments":{"href":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls/353/comments"},"review_comment":{"href":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/hammerandchisel/discord-api-docs/pulls/353/commits"},"statuses":{"href":"https://api.github.com/repos/hammerandchisel/discord-api-docs/statuses/e4d0b9c86146926449517553f5192b643d43937e"}}}}
{"actor":{"display_login":"night"}}