├── .gitignore ├── assets └── Grepper Logo.png ├── docs ├── README.MD ├── answers │ ├── GETANSWERS.MD │ ├── GETCOMMENTS.MD │ ├── NEEDEDANSWERS.MD │ ├── PUBLISHANSWER.MD │ ├── SEARCHANSWER.MD │ └── SIMILIARQUERIES.MD ├── auth │ ├── LOGIN.MD │ ├── LOGOUT.MD │ ├── REGISTER.MD │ ├── RESETPASSWORD.MD │ └── TOKEN.MD ├── other │ ├── FEEDBACK.MD │ └── LEADERBOARD.MD ├── teams │ ├── INVITEUSER.MD │ └── TEAMANSWERS.MD ├── users │ ├── GETUSER.MD │ ├── GETUSERBELT.MD │ ├── GETUSERSTATS.MD │ ├── SEARCHUSERS.MD │ ├── USERBYTOKEN.MD │ └── WHOTOFOLLOW.md └── vulnerabilities │ └── LOGOUT.MD ├── old.md └── readme.md /.gitignore: -------------------------------------------------------------------------------- 1 | /test 2 | -------------------------------------------------------------------------------- /assets/Grepper Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jub0t/CodeGrepperAPI/fe6d0d9bc05e4ccb509b247d966fa498e0329fc3/assets/Grepper Logo.png -------------------------------------------------------------------------------- /docs/README.MD: -------------------------------------------------------------------------------- 1 | # **Code Grepper API Documentation** 2 | 3 | 4 | 5 | [Code Grepper][cgurl] also known as Grepper is a platform to help developers solve technical problems. [Grepper][cgurl] is powered by an amazing community of 200k(and growing fast) developers. Developers within the community contribute answers to technical problems primarily through the [Grepper][cgurl] browser extension which allows a user to quickly add a “code snippet” as an answer to a problem they ran into and recently solved. At present the community has put in 318k answers, which together have been viewed over 62 million times. 6 | -------------------------------------------------------------------------------- /docs/answers/GETANSWERS.MD: -------------------------------------------------------------------------------- 1 | # Get Answers ✅ 2 | 3 | ```yaml 4 | # GET 5 | https://www.codegrepper.com/api/get_answers_1.php 6 | ``` 7 | 8 | ```js 9 | const Query = "javascript loop"; 10 | const APIVersion = 3; // No idea what versions are but 3 gives best answers. 11 | 12 | return await fetch( 13 | `https://www.codegrepper.com/api/get_answers_1.php?v=${APIVersion}&s=${encodeURI( 14 | Query 15 | )}` 16 | ) 17 | .then((response) => { 18 | return response.json(); 19 | }) 20 | .then((data) => { 21 | console.log(data); 22 | }) 23 | .catch((err) => { 24 | console.log(err); 25 | }); 26 | ``` 27 | 28 | ```json 29 | // Response 30 | { 31 | "answers": [ 32 | { 33 | "id": 286865, 34 | "search_id": null, 35 | "user_id": 393862, 36 | "nickname": null, 37 | "language": "javascript", 38 | "created_at": "2021-07-16 03:14:23", 39 | "updated_at": "2022-05-09 08:26:33", 40 | "bounty": null, 41 | "bounty_approved": null, 42 | "solution_urls": "https://www.google.com/", 43 | "source_id": 2, 44 | "is_deleted": 0, 45 | "source_url": "", 46 | "do_hide": 0, 47 | "do_hide_r": null, 48 | "do_hide2": null, 49 | "do_hide2_r": null, 50 | "is_private": 0, 51 | "is_widget": 0, 52 | "video_name": "", 53 | "t_upvotes": 28, 54 | "t_upvotes_d": 25, 55 | "t_downvotes": 3, 56 | "t_downvotes_d": 0, 57 | "t_copies": 602, 58 | "t_follow_up_searches": 0, 59 | "t_no_follow_up_searches": 0, 60 | "t_other_answer_clicked": 498, 61 | "t_score": "0.3161161", 62 | "did_help_per": "0.0535000", 63 | "t_total_results": 4950, 64 | "t_users_count": 2228, 65 | "cluster_id": "javascript_29", 66 | "desp_for_ans": 0, 67 | "lang_prob": null, 68 | "humor_prob": "-0.162", 69 | "new_sa_count": 9, 70 | "t_scorecat1": null, 71 | "t_ttr_cat1": null, 72 | "t_scorecat2": null, 73 | "t_ttr_cat2": null, 74 | "t_scorecat3": null, 75 | "t_ttr_cat3": null, 76 | "t_scorecat4": null, 77 | "t_ttr_cat4": null, 78 | "t_scorecat5": null, 79 | "t_ttr_cat5": null, 80 | "t_comments": 1, 81 | "answer_md5": "59ef5987ebeb79643f87b14a1cb8872d", 82 | "fun_name": "MattDESTROYER", 83 | "profile_slug": "matthew-ukrjcjx42pm9", 84 | "search_answer_id": 284597, 85 | "donate_link": "", 86 | "term": "js for loop", 87 | "raw_score": "0.3161161", 88 | "score": "0.3161161", 89 | "total_results": 4950, 90 | "upvotes": 28, 91 | "downvotes": 3, 92 | "i_upvoted": null, 93 | "i_downvoted": null, 94 | "is_my_answer": 0, 95 | "search_answer_result_id": "103815156" 96 | } 97 | ], 98 | "grepcc_tips_left": 0 99 | } 100 | ``` 101 | 102 | | Param | Type | Required | Description | 103 | | ----- | ------------- | -------- | ----------------------------------------- | 104 | | `s` | String | **YES** | The query, whatever you want to search | 105 | | `v` | String/Number | **YES** | The version of API, 3 is the best option. | 106 | -------------------------------------------------------------------------------- /docs/answers/GETCOMMENTS.MD: -------------------------------------------------------------------------------- 1 | # Get Comments ✅ 2 | 3 | ```yaml 4 | # GET 5 | https://www.codegrepper.com/api/get_answers_comments.php 6 | ``` 7 | 8 | ```json 9 | { 10 | "comments": [ 11 | { 12 | "id": 467, 13 | "user_id": 98467, 14 | "comment": "testing 123 hello", 15 | "created_at": "2021-07-16 23:43:41", 16 | "profile_slug": "jareer", 17 | "fun_name": "Undefined", 18 | "t_upvotes": null, 19 | "t_downvotes": null, 20 | "i_upvoted": null, 21 | "i_downvoted": null 22 | } 23 | ] 24 | } 25 | ``` 26 | 27 | | Param | Type | Required | 28 | | ----- | ------------- | -------- | 29 | | `aid` | Number/String | **YES** | 30 | -------------------------------------------------------------------------------- /docs/answers/NEEDEDANSWERS.MD: -------------------------------------------------------------------------------- 1 | # Needed Answers 🔒 2 | 3 | ```yaml 4 | # GET 5 | https://www.codegrepper.com/api/get_terms_needing_answers.php 6 | ``` 7 | 8 | ```json 9 | [ 10 | { 11 | "id": 74776, 12 | "term": "error: the sandbox is not in sync with the podfile.lock. run 'pod install' or update your cocoapods installation.", 13 | "bonus_points": 500, 14 | "bonus": 0 15 | }, 16 | { 17 | "id": 54345, 18 | "term": "library: 'pem routines', function: 'get_name', reason: 'no start line', code: 'err_ossl_pem_no_start_line'", 19 | "bonus_points": 0, 20 | "bonus": 0 21 | } 22 | ] 23 | ``` 24 | -------------------------------------------------------------------------------- /docs/answers/PUBLISHANSWER.MD: -------------------------------------------------------------------------------- 1 | # Publish Answer 🔒 2 | 3 | ```yaml 4 | # POST 5 | https://www.codegrepper.com/api/save_answer.php 6 | ``` 7 | 8 | ```js 9 | // Example Javascript Request 10 | 11 | const token = String; 12 | const userId = Number; 13 | 14 | const data = { 15 | answer: String, 16 | user_id: Number, 17 | team_ids: Number, 18 | language: String, 19 | is_private: Boolean, 20 | source_url: String, 21 | codeSearch: { 22 | results: Array, 23 | search: String, 24 | }, 25 | }; 26 | 27 | return fetch(`https://www.codegrepper.com/api/save_answer.php`, { 28 | method: "POST", 29 | headers: { 30 | "Content-Type": "application/json", 31 | "x-auth-token": token, 32 | "x-auth-id": userId, 33 | }, 34 | body: JSON.stringify(data), 35 | }) 36 | .then((response) => { 37 | if (response.status !== 200) { 38 | return { 39 | Success: false, 40 | Message: `Server Returned an invalid response.`, 41 | }; 42 | } 43 | return response.json(); 44 | }) 45 | .then((response) => { 46 | console.log(response); 47 | }) 48 | .catch((err) => { 49 | console.log(err); 50 | }); 51 | ``` 52 | 53 | ```json 54 | // Response 55 | { 56 | "success": true, 57 | "grepper_gold": 0, 58 | "grepper_gold_total": 0 59 | } 60 | ``` 61 | 62 | | Param | Type | Required | 63 | | -------------------- | -------------- | -------- | 64 | | `answer` | String | **YES** | 65 | | `user_id` | Number | **YES** | 66 | | `langauge` | String | **NO** | 67 | | `is_private` | Number/Boolean | **YES** | 68 | | `source_url` | String | **NO** | 69 | | `codeSearch.results` | Array | **NO** | 70 | | `codeSearch.search` | String | **YES** | 71 | -------------------------------------------------------------------------------- /docs/answers/SEARCHANSWER.MD: -------------------------------------------------------------------------------- 1 | # Search Answer ✅ 2 | 3 | ```yaml 4 | # GET 5 | https://www.codegrepper.com/api/search.php 6 | ``` 7 | 8 | ```json 9 | { 10 | "answers": [ 11 | { 12 | "id": 295229, 13 | "search_id": null, 14 | "answer": "POV: you typed up grepper to see what grepper answers there were for grepper", 15 | "up_votes": 0, 16 | "down_votes": 0, 17 | "user_id": 417590, 18 | "nickname": null, 19 | "language": "whatever", 20 | "created_at": "2021-07-30 07:37:22", 21 | "updated_at": null, 22 | "bounty": null, 23 | "bounty_approved": null, 24 | "solution_urls": "https://www.google.com/", 25 | "source_id": 2, 26 | "is_deleted": 0, 27 | "source_url": "", 28 | "do_hide": 0, 29 | "do_hide_r": null, 30 | "do_hide2": 0, 31 | "do_hide2_r": null, 32 | "is_private": 0, 33 | "is_widget": 0, 34 | "video_name": "", 35 | "t_upvotes": 76, 36 | "t_upvotes_d": 54, 37 | "t_downvotes": 2, 38 | "t_downvotes_d": 2, 39 | "t_copies": 2, 40 | "t_follow_up_searches": 0, 41 | "t_no_follow_up_searches": 0, 42 | "t_other_answer_clicked": 656, 43 | "t_score": "0.5483636", 44 | "did_help_per": "0.1350000", 45 | "t_total_results": 1330, 46 | "t_users_count": 826, 47 | "cluster_id": "whatever_62", 48 | "desp_for_ans": 0, 49 | "lang_prob": null, 50 | "humor_prob": "0.869", 51 | "new_sa_count": 6, 52 | "t_scorecat1": null, 53 | "t_ttr_cat1": null, 54 | "t_scorecat2": null, 55 | "t_ttr_cat2": null, 56 | "t_scorecat3": null, 57 | "t_ttr_cat3": null, 58 | "t_scorecat4": null, 59 | "t_ttr_cat4": null, 60 | "t_scorecat5": null, 61 | "t_ttr_cat5": null, 62 | "t_comments": 0, 63 | "answer_md5": "416a9f17eb7677e5d9d6ef85bf9f96c7", 64 | "fun_name": "20SidedShape", 65 | "profile_slug": "20sidedshape", 66 | "search_answer_id": 292844, 67 | "donate_link": "", 68 | "term": "grepper", 69 | "raw_score": "0.5483636", 70 | "score": "0.5483636", 71 | "total_results": 1330, 72 | "upvotes": 76, 73 | "downvotes": 2 74 | } 75 | ] 76 | } 77 | ``` 78 | 79 | | Param | Type | Required | Description | 80 | | ---------------- | ------ | -------- | -------------------------------- | 81 | | `q` | String | **YES** | Query to search for. | 82 | | `search_options` | String | **YES** | `search_titles`, `search_answer` | 83 | -------------------------------------------------------------------------------- /docs/answers/SIMILIARQUERIES.MD: -------------------------------------------------------------------------------- 1 | ```yaml 2 | # GET 3 | https://www.codegrepper.com/api/search_term_alternatives.php 4 | ``` 5 | 6 | ```js 7 | const Query = String; 8 | 9 | return fetch( 10 | `https://www.codegrepper.com/api/search_term_alternatives.php?q=${Query}` 11 | ) 12 | .then((response) => { 13 | return response.json(); 14 | }) 15 | .then((data) => { 16 | console.log(data); 17 | }) 18 | .catch((err) => { 19 | console.log(err); 20 | }); 21 | ``` 22 | 23 | ```json 24 | { 25 | "related_terms": [ 26 | { 27 | "term": "jaascript loop", 28 | "score": 0.9628877639770508 29 | }, 30 | { 31 | "term": "javasript loop", 32 | "score": 0.9611862897872925 33 | }, 34 | { 35 | "term": "javascript loop statement", 36 | "score": 0.9602680206298828 37 | } 38 | ] 39 | } 40 | ``` 41 | 42 | | Param | Type | Required | Description | 43 | | ----- | ------ | -------- | -------------------------------------- | 44 | | `q` | String | **YES** | The query, whatever you want to search | 45 | -------------------------------------------------------------------------------- /docs/auth/LOGIN.MD: -------------------------------------------------------------------------------- 1 | # Login 🔒 2 | 3 | ```yaml 4 | # POST 5 | https://www.codegrepper.com/api/login.php 6 | ``` 7 | 8 | ```js 9 | const DataToSend = new FormData(); 10 | DataToSend.append("password", "example"); 11 | DataToSend.append("email", "example@example.com"); 12 | 13 | return fetch(`https://www.codegrepper.com/api/login.php`, { 14 | method: "POST", 15 | body: DataToSend, 16 | }) 17 | .then((response) => { 18 | return response.json(); 19 | }) 20 | .then((data) => { 21 | console.log(data); 22 | }) 23 | .catch((err) => { 24 | console.log(err); 25 | }); 26 | ``` 27 | 28 | ```json 29 | { 30 | "errors": [], 31 | "success": true, 32 | "access_token": "", 33 | "user_id": 98467, 34 | "email": "example@example.com", 35 | "hide_grepper_button": 0, 36 | "grepper_user_langs": [ 37 | { 38 | "lkey": "abap", 39 | "name": "Abap", 40 | "enabled": 1 41 | } 42 | ], 43 | "blacklists": [ 44 | { 45 | "id": 6615, 46 | "user_id": 98467, 47 | "url": "localhost", 48 | "blacklist_type": 4 49 | } 50 | ] 51 | } 52 | ``` 53 | 54 | | Param | Type | Required | 55 | | ---------- | ------ | -------- | 56 | | `username` | String | **YES** | 57 | | `password` | String | **YES** | 58 | -------------------------------------------------------------------------------- /docs/auth/LOGOUT.MD: -------------------------------------------------------------------------------- 1 | # Logout 🔓 2 | 3 | ```yaml 4 | # GET 5 | https://www.codegrepper.com/api/logout.php 6 | ``` 7 | -------------------------------------------------------------------------------- /docs/auth/REGISTER.MD: -------------------------------------------------------------------------------- 1 | # Register 🔒 2 | 3 | ```yaml 4 | # POST 5 | https://www.codegrepper.com/api/register.php 6 | ``` 7 | 8 | ```js 9 | const DataToSend = new FormData(); 10 | DataToSend.append("password", "example"); 11 | DataToSend.append("email", "example@example.com"); 12 | 13 | return fetch(`https://www.codegrepper.com/api/register.php`, { 14 | method: "POST", 15 | body: DataToSend, 16 | }) 17 | .then((response) => { 18 | return response.json(); 19 | }) 20 | .then((data) => { 21 | console.log(data); 22 | }) 23 | .catch((err) => { 24 | console.log(err); 25 | }); 26 | ``` 27 | 28 | ```json 29 | { 30 | "errors": [], 31 | "success": true, 32 | "access_token": "", 33 | "user_id": 98467, 34 | "email": "example@example.com", 35 | "hide_grepper_button": 0, 36 | "grepper_user_langs": [ 37 | { 38 | "lkey": "abap", 39 | "name": "Abap", 40 | "enabled": 1 41 | } 42 | ], 43 | "blacklists": [ 44 | { 45 | "id": 6615, 46 | "user_id": 98467, 47 | "url": "localhost", 48 | "blacklist_type": 4 49 | } 50 | ] 51 | } 52 | ``` 53 | 54 | | Param | Type | Required | 55 | | ---------- | ------ | -------- | 56 | | `username` | String | **YES** | 57 | | `password` | String | **YES** | 58 | -------------------------------------------------------------------------------- /docs/auth/RESETPASSWORD.MD: -------------------------------------------------------------------------------- 1 | # Reset Password ✅ 2 | 3 | ```yaml 4 | # POST 5 | https://www.codegrepper.com/api/reset_password.php 6 | ``` 7 | 8 | ```js 9 | const DataToSend = new FormData(); 10 | DataToSend.append("email", "example@example.com"); 11 | 12 | return fetch(`https://www.codegrepper.com/api/reset_password.php`, { 13 | method: "POST", 14 | body: DataToSend, 15 | }) 16 | .then((response) => { 17 | return response.json(); 18 | }) 19 | .then((data) => { 20 | console.log(data); 21 | }) 22 | .catch((err) => { 23 | console.log(err); 24 | }); 25 | ``` 26 | 27 | ```json 28 | { 29 | "success": true, 30 | "errors": [] 31 | } 32 | ``` 33 | 34 | | Param | Type | Required | Description | 35 | | ------- | ------ | -------- | ------------------------------------------ | 36 | | `email` | String | **YES** | Email to receive the password reset email. | 37 | -------------------------------------------------------------------------------- /docs/auth/TOKEN.MD: -------------------------------------------------------------------------------- 1 | # **Access Token** 2 | 3 | The `access_token` is easily accessible once you are logged in your account, there are different methods to access this token. 4 | 5 | ### Dev Tools 6 | 7 | - Open Dev tools, to open dev tools press `F12` while being on the codegrepper site(any page works). 8 | - Open **Application** tab and find `access_token`. 9 | - Copy the token, now you have your account's token. 10 | 11 | ### By Request 12 | 13 | You can send a `POST` request to the login api endpoint with the account username and password. This will return the `access_token` and `userId` in the body. Make sure you send FormData data and not any other type of data, application/json, etc. 14 | 15 | ```yaml 16 | ## POST 17 | https://www.codegrepper.com/api/login.php 18 | ``` 19 | 20 | ```js 21 | const DataToSend = new FormData(); 22 | DataToSend.append("password", "example"); 23 | DataToSend.append("email", "example@example.com"); 24 | 25 | return fetch(`https://www.codegrepper.com/api/login.php`, { 26 | method: "POST", 27 | body: DataToSend, 28 | }) 29 | .then((response) => { 30 | return response.json(); 31 | }) 32 | .then((data) => { 33 | console.log(data); 34 | }) 35 | .catch((err) => { 36 | console.log(err); 37 | }); 38 | ``` 39 | -------------------------------------------------------------------------------- /docs/other/FEEDBACK.MD: -------------------------------------------------------------------------------- 1 | # Feedback 🔒 2 | 3 | ```yaml 4 | # POST 5 | https://www.codegrepper.com/api/send_feedback.php 6 | ``` 7 | 8 | ```js 9 | // Unkown 10 | ``` 11 | 12 | ```yaml 13 | ## Unkown 14 | ``` 15 | -------------------------------------------------------------------------------- /docs/other/LEADERBOARD.MD: -------------------------------------------------------------------------------- 1 | # Leaderboard 🔒 2 | 3 | ```yaml 4 | # GET 5 | https://www.codegrepper.com/api/get_belt_users.php 6 | ``` 7 | 8 | | Param | Type | Required | Description | 9 | | -------- | ------ | -------- | --------------------------------------------- | 10 | | `limit` | Number | **YES** | How many users you want to retrieve at most. | 11 | | `offset` | Number | **YES** | Where to start. 5 means the top 5th and lower | 12 | -------------------------------------------------------------------------------- /docs/teams/INVITEUSER.MD: -------------------------------------------------------------------------------- 1 | # Invite User(s) To Team 🔒 2 | 3 | ```yaml 4 | # POST 5 | https://www.codegrepper.com/api/add_team_members.php 6 | ``` 7 | 8 | ```js 9 | const token = tokenData.token; 10 | const userId = tokenData.userId; 11 | 12 | const Data = [ 13 | { 14 | team_id: 1, 15 | user_id: 98467, 16 | }, 17 | ]; 18 | 19 | return fetch(`https://www.codegrepper.com/api/add_team_members.php`, { 20 | method: "POST", 21 | headers: { 22 | "Content-Type": "application/json", 23 | "x-auth-token": token, 24 | "x-auth-id": userId, 25 | }, 26 | body: JSON.stringify(Data), 27 | }) 28 | .then((response) => { 29 | return response.text(); 30 | }) 31 | .then((data) => { 32 | console.log(data); 33 | }) 34 | .catch((err) => { 35 | console.log(err); 36 | }); 37 | ``` 38 | 39 | ```yaml 40 | # Empty Response 41 | ``` 42 | -------------------------------------------------------------------------------- /docs/teams/TEAMANSWERS.MD: -------------------------------------------------------------------------------- 1 | # Get Team Answers ✅ 2 | 3 | ```yaml 4 | # GET 5 | https://www.codegrepper.com/api/get_team_answers.php 6 | ``` 7 | 8 | ### Query Params 9 | 10 | | Param | Type | Required | 11 | | --------- | ------------- | -------- | 12 | | `team_id` | String/Number | **YES** | 13 | | `offset` | String/Number | **YES** | 14 | | `sort_by` | String | **NO** | 15 | 16 | ```json 17 | { 18 | "answers": [ 19 | { 20 | "answer_user_id": 9895, 21 | "is_others_answer": 1, 22 | "search_answer_user_id": 9895, 23 | "fun_name": "ayaan", 24 | "i_upvoted": "0", 25 | "upvotes": "1", 26 | "downvotes": "0", 27 | "score": "0.7778", 28 | "total_answer_hits": 3, 29 | "term": "when does localstorage get cleared", 30 | "created_at": "05/30/2022", 31 | "bounty": null, 32 | "answer": "/* For Chrome, if your browsing data is cleared, then localStorage will expire and\nalso get cleared. If you delete cookies or temporary files, this may also\ncause localStorage to be cleared. */", 33 | "language": "javascript", 34 | "bounty_approved": null, 35 | "id": 493948 36 | } 37 | ], 38 | "total_count": 612 39 | } 40 | ``` 41 | -------------------------------------------------------------------------------- /docs/users/GETUSER.MD: -------------------------------------------------------------------------------- 1 | # Get User ✅ 2 | 3 | ```yaml 4 | # GET 5 | https://www.codegrepper.com/api/profile.php 6 | ``` 7 | 8 | ```json 9 | { 10 | "profile_image": "98467_hKuVkwhdUxieQAfc5lVurPuwSPTQFiVSnWEIS8l4gecLZdSa0g3vba4.gif", 11 | "fun_name": "Undefined", 12 | "real_name": "Jareer", 13 | "twitter_name": "", 14 | "donate_link": "https://paypal.me/jub0t", 15 | "how_to_help": "My Grepper Experience has been really POG, looking forward to collaborate. Rigby#6654(discord)", 16 | "location": "Mars", 17 | "is_rank_private": 0, 18 | "is_activity_private": 1, 19 | "is_expertise_private": 0, 20 | "is_daily_activity_private": 1, 21 | "enable_coding_activity": 1 22 | } 23 | ``` 24 | 25 | | Param | Type | Required | Description | 26 | | ----- | ------------- | -------- | ------------------ | 27 | | `id` | String/Number | **YES** | User's grepper Id. | 28 | -------------------------------------------------------------------------------- /docs/users/GETUSERBELT.MD: -------------------------------------------------------------------------------- 1 | # Get User Belt 🔓 2 | 3 | ```yaml 4 | # GET 5 | https://www.codegrepper.com/api/get_user_stats.php 6 | ``` 7 | 8 | ```json 9 | { 10 | "coding_belt": ["none", 0.0, "white"], 11 | "is_rank_private": "0", 12 | "success": true 13 | } 14 | ``` 15 | 16 | | Param | Type | Required | Description | 17 | | ----- | ------------- | -------- | ------------------- | 18 | | `uid` | String/Number | **YES** | Users's Grepper Id. | 19 | -------------------------------------------------------------------------------- /docs/users/GETUSERSTATS.MD: -------------------------------------------------------------------------------- 1 | # Get User 🔓 2 | 3 | ```yaml 4 | # GET 5 | https://www.codegrepper.com/api/profile_helped_stats.php 6 | ``` 7 | 8 | ```js 9 | const Id = 98467; // UserID 10 | 11 | fetch( 12 | `https://www.codegrepper.com/api/profile_helped_stats.php?id=${encodeURI(Id)}` 13 | ) 14 | .then((response) => { 15 | return response.json(); 16 | }) 17 | .then((data) => { 18 | console.log(data); 19 | }) 20 | .catch((err) => { 21 | console.log(err); 22 | }); 23 | ``` 24 | 25 | ```json 26 | { 27 | "developers_helped": "183882", 28 | "hits": "745634" 29 | } 30 | ``` 31 | 32 | | Param | Type | Required | Description | 33 | | ----- | ------ | -------- | ----------- | 34 | | `id` | String | **YES** | User's id. | 35 | -------------------------------------------------------------------------------- /docs/users/SEARCHUSERS.MD: -------------------------------------------------------------------------------- 1 | # Search User ✅ 2 | 3 | Since Grepper doesn't have any official API endpoints to search for users we'll use the autocomlpete API from team invite. 4 | 5 | ```yaml 6 | # GET 7 | https://www.codegrepper.com/api/autocomplete_users_search.php 8 | ``` 9 | 10 | ```js 11 | const Username = String; 12 | return fetch( 13 | `https://www.codegrepper.com/api/autocomplete_users_search.php?q=${encodeURI( 14 | Username 15 | )}` 16 | ) 17 | .then((response) => { 18 | return response.text(); 19 | }) 20 | .then((data) => { 21 | console.log(data); 22 | }) 23 | .catch((err) => { 24 | console.log(err); 25 | }); 26 | ``` 27 | 28 | ```json 29 | [ 30 | { 31 | "is_team_member": null, 32 | "fun_name": "Undefined", 33 | "id": 98467, 34 | "real_name": "Jareer", 35 | "profile_image": "98467_QQYVITZrlZf19i0SKj9YEbZaKOx627U1gyYL48O9C5yxrcODqE9MlrB.png" 36 | } 37 | ... 38 | ] 39 | ``` 40 | 41 | | Param | Type | Required | Description | 42 | | ----- | ------ | -------- | ---------------------------------------- | 43 | | `q` | String | **YES** | Username of the user you want to search. | 44 | -------------------------------------------------------------------------------- /docs/users/USERBYTOKEN.MD: -------------------------------------------------------------------------------- 1 | # Get My Info 🔒 2 | 3 | ```yaml 4 | # GET 5 | https://www.codegrepper.com/api/account.php 6 | ``` 7 | 8 | ```js 9 | const token = String; 10 | const UserID = Number; 11 | 12 | fetch(`https://www.codegrepper.com/api/account.php`, { 13 | headers: { 14 | "Content-Type": "application/json", 15 | "x-auth-token": String, 16 | "x-auth-id": Number, 17 | }, 18 | }) 19 | .then((response) => { 20 | return response.json(); 21 | }) 22 | .then((data) => { 23 | console.log(data); 24 | }) 25 | .catch((err) => { 26 | console.log(err); 27 | }); 28 | ``` 29 | 30 | ```json 31 | { 32 | "donate_link": "https://paypal.me/jareer12", 33 | "fun_name": "Undefined", 34 | "subscription_type": 3, 35 | "subscription_started_on": null, 36 | "subscription_expired": 0, 37 | "earnings_allowed": 0, 38 | "earnings_enabled": 0, 39 | "hide_grepper_button": 0, 40 | "email_feature_updates": 1, 41 | "shortcut_key": 0, 42 | "notify_on_comments": 1 43 | } 44 | ``` 45 | 46 | | Param | Type | Required | Description | 47 | | -------------- | ------ | -------- | --------------------------- | 48 | | `x-auth-token` | String | **YES** | Access token of the account | 49 | | `x-auth-id` | String | **YES** | UserID of the account | 50 | -------------------------------------------------------------------------------- /docs/users/WHOTOFOLLOW.md: -------------------------------------------------------------------------------- 1 | # Who To Follow 🔒 2 | 3 | ```yaml 4 | # POST 5 | https://www.codegrepper.com/api/get_who_to_follow.php 6 | ``` 7 | 8 | ```js 9 | const token = String; 10 | const userId = Number; 11 | 12 | return fetch(`https://www.codegrepper.com/api/get_who_to_follow.php`, { 13 | headers: { 14 | "Content-Type": "application/json", 15 | "x-auth-token": token, 16 | "x-auth-id": userId, 17 | }, 18 | }) 19 | .then((response) => { 20 | return response.json(); 21 | }) 22 | .then((data) => { 23 | console.log(data); 24 | }) 25 | .catch((err) => { 26 | console.log(err); 27 | }); 28 | ``` 29 | 30 | ```json 31 | { 32 | "users": [ 33 | { 34 | "fun_name": "Undefined", 35 | "profile_slug": "Undefined", 36 | "belt_score": null, 37 | "is_rank_private": 1, 38 | "user_id": 98467, 39 | "profile_image": null, 40 | "belt_rank": "no" 41 | } 42 | ] 43 | } 44 | ``` 45 | -------------------------------------------------------------------------------- /docs/vulnerabilities/LOGOUT.MD: -------------------------------------------------------------------------------- 1 | # Logout Vulnerability 2 | 3 | You can easily logout users by just making them click a link, you can hide this link in your dontaion link and once someone clicks it they will be logged out of their Code Grepper account. The link is the logout endpoint. 4 | 5 | ```yaml 6 | # GET 7 | https://www.codegrepper.com/api/logout.php 8 | ``` 9 | -------------------------------------------------------------------------------- /old.md: -------------------------------------------------------------------------------- 1 | # CodeGrepper API Docs[Unofficial] 2 | 3 | Also check out our Code Grepper npm modules at [NPM/YARN package](https://github.com/jareer12/grepper). 4 | 5 | ## Table of Contents 6 | 7 | - [Answers](#Answers) 8 | - [Users](#Users) 9 | 10 | ## [Application Pages][mainpage] 11 | 12 | Fetch answers. 13 | 14 | ```yaml 15 | # GET 16 | https://www.codegrepper.com/search.php?q={query} 17 | ``` 18 | 19 | View a user's profile with their username(slug_name) 20 | 21 | ```yaml 22 | # GET 23 | https://www.codegrepper.com/profile/jareer 24 | ``` 25 | 26 | View a user's profile with their userId. This API requires `id` parameter. 27 | 28 | ```yaml 29 | # GET 30 | https://www.codegrepper.com/app/profile.php 31 | ``` 32 | 33 | ## [Answers][mainpage] 34 | 35 | Publish a new answer. 36 | 37 | ```yaml 38 | # POST 39 | https://www.codegrepper.com/api/save_answer.php 40 | ``` 41 | 42 | This API is used to submit a reply to a comment. Payload example is below. If the request was successful `1` will be return as response else `0`. 43 | 44 | ```yaml 45 | # POST 46 | https://www.codegrepper.com/api/save_comment.php 47 | ``` 48 | 49 | ```json 50 | { 51 | "comment": "Really helpful i search times million times a day", 52 | "answer_id": 23, 53 | "user_id": 98467 54 | } 55 | ``` 56 | 57 | Updates the answer. 58 | 59 | ```yaml 60 | # POST 61 | https://www.codegrepper.com/api/update_answer.php 62 | ``` 63 | 64 | The get_terms_needing_answers shows what answers are needed, these answers can reward you with belt percentage. 65 | 66 | ```yaml 67 | # GET 68 | https://www.codegrepper.com/api/get_terms_needing_answers.php 69 | ``` 70 | 71 | ```json 72 | [ 73 | { 74 | "id": 74776, 75 | "term": "error: the sandbox is not in sync with the podfile.lock. run 'pod install' or update your cocoapods installation.", 76 | "bonus_points": 500, 77 | "bonus": 0 78 | }, 79 | { 80 | "id": 54345, 81 | "term": "library: 'pem routines', function: 'get_name', reason: 'no start line', code: 'err_ossl_pem_no_start_line'", 82 | "bonus_points": 0, 83 | "bonus": 0 84 | } 85 | ] 86 | ``` 87 | 88 | This API return all the comments from an answer. 89 | 90 | ```yaml 91 | https://www.codegrepper.com/api/get_answers_comments.php?aid=287391 🟢 92 | ``` 93 | 94 | ```yaml 95 | { 96 | "comments": 97 | [ 98 | { 99 | "id": 467, 100 | "user_id": 98467, 101 | "comment": "testing 123 hello", 102 | "created_at": "2021-07-16 23:43:41", 103 | "profile_slug": "jareer", 104 | "fun_name": "Undefined", 105 | "t_upvotes": null, 106 | "t_downvotes": null, 107 | "i_upvoted": null, 108 | "i_downvoted": null, 109 | }, 110 | ], 111 | } 112 | ``` 113 | 114 | This API returns answers for a query, the API has 3 versions, the `v1` returns a few answers(or somtimes none), while `v2` and `v3` return an extra array called `more_answers`. The `s` parameter is the search query and the. The `u` parameter is optional that identifies the user that used the API. 115 | 116 | ```yaml 117 | https://www.codegrepper.com/api/get_answers_1.php?v=3&s=grepper 🟢 118 | ``` 119 | 120 | ```yaml 121 | { 122 | "answers": [{}], 123 | "products": [], 124 | "language_guess": "whatever", 125 | "more_answers": [], 126 | } 127 | ``` 128 | 129 | Returns answers for a specific search. Uses the `q` & `search_options` parameters(`?q=grepper&search_options=search_titles`). 130 | 131 | ```yaml 132 | https://www.codegrepper.com/api/search.php 🟢 133 | ``` 134 | 135 | ## [Users][mainpage] 136 | 137 | Shows how many people did the user helped & and the ammount of problems solved and developers helped. 138 | 139 | ```yaml 140 | https://www.codegrepper.com/api/profile_helped_stats.php?id=98467 🟢 141 | ``` 142 | 143 | ```yaml 144 | { "developers_helped": "75294", "hits": "109101" } 145 | ``` 146 | 147 | Returns JSON data for a user's profile. Like `profile_image`, `fun_name`, `real_name`, `donate_link` etc. 148 | 149 | ```yaml 150 | https://www.codegrepper.com/api/profile.php?id=98467 🟢 151 | ``` 152 | 153 | ```yaml 154 | { 155 | "profile_image": "98467_hKuVkwhdUxieQAfc5lVurPuwSPTQFiVSnWEIS8l4gecLZdSa0g3vba4.gif", 156 | "fun_name": "Undefined", 157 | "real_name": "Jareer", 158 | "twitter_name": "", 159 | "donate_link": "https://jareer.xyz/donate", 160 | "how_to_help": "My Grepper Experience has been really POG, looking forward to collaborate. Rigby#6654(discord)", 161 | "location": "Mars", 162 | "is_rank_private": 0, 163 | "is_activity_private": 1, 164 | "is_expertise_private": 0, 165 | "is_daily_activity_private": 1, 166 | "enable_coding_activity": 1, 167 | } 168 | ``` 169 | 170 | Here is the user activity API, this api is ussed to make the Codegrepper heatmap chart(contribution board). 171 | 172 | ```yaml 173 | https://www.codegrepper.com/api/get_user_activity_stats.php?user_id=98467 🟢 174 | ``` 175 | 176 | ```yaml 177 | { 178 | "a": [{ "ymd": "2021-01-01" }], 179 | "s": [["whatever", 86, "Whatever"]], 180 | "f": [["Unity", 116, "unity"]], 181 | } 182 | ``` 183 | 184 | This API shows what Programming language(s) does the user use, returns an array in JSON. The Data includes `SucessCode`, `Name` etc. 185 | 186 | ```yaml 187 | https://www.codegrepper.com/api/get_user_code_languages.php 🟢 188 | ``` 189 | 190 | ```yaml 191 | { 192 | "success": true, 193 | "ucl": [{ "lkey": "String", "name": "String", "enabled": 0 }], 194 | } 195 | ``` 196 | 197 | Returns user's belt stats, this data includes Previous Belt, Next Belt & current belt percentage. 198 | 199 | ```yaml 200 | https://www.codegrepper.com/api/get_user_stats.php?uid=98467 🟢 201 | ``` 202 | 203 | ```yaml 204 | { 205 | "coding_belt": ["String", 0.000, "String"], 206 | "is_rank_private": "0", 207 | "success": true, 208 | } 209 | ``` 210 | 211 | Shows user's feed, requires auth 212 | 213 | ```yaml 214 | https://www.codegrepper.com/api/get_my_feed.php 🟢 215 | ``` 216 | 217 | ```yaml 218 | { 219 | "activity": 220 | [ 221 | { 222 | "feed_type": "recent_answer", 223 | "answer_created_at": "2021-10-01 04:52:16", 224 | "answer": "int a = 80;\nint b = 20;\nint addition(int number1, int number2)\n{\n\tint result = number1 + number2;\n\treturn result;\n}\nConsole.WriteLine(addition( a, b));", 225 | "user_id": "262702", 226 | "id": 333666, 227 | "answer_title": "function in c# to do addition", 228 | "fun_name": "Empire of programmers ", 229 | "profile_slug": "vishnu", 230 | "profile_image": "262702_IeIHn2AeTy0QlU1cf7V8LWlIMouvwH0PjZA4UVKk5gw8mw952eozbZN.gif", 231 | "answer_user_id": 262702, 232 | }, 233 | ], 234 | } 235 | ``` 236 | 237 | Shows all the users on the community page, requires auth. This data includes `UserId`, `Username`, `BeltScore`, `BeltRank` etc. 238 | 239 | ```yaml 240 | https://www.codegrepper.com/api/get_belt_users.php?offset=0&limit=500 🟢 241 | ``` 242 | 243 | ```yaml 244 | { 245 | "users": 246 | [ 247 | { 248 | "user_id": 0, 249 | "fun_name": "String", 250 | "is_rank_private": 0, 251 | "belt_score": 0, 252 | "profile_slug": "String", 253 | "profile_image": "String", 254 | "belt_rank": "String", 255 | }, 256 | ], 257 | } 258 | ``` 259 | 260 | This API is used to follow a user, you must be authenticated to do this. This API returns either `1` or `0`. 261 | 262 | ```yaml 263 | https://www.codegrepper.com/api/follow.php?follow_user_id=98467&follow=1 🟢 264 | ``` 265 | 266 | ```yaml 267 | 1 268 | ``` 269 | 270 | ## [Teams][mainpage] 271 | 272 | This API is used to join a team. 273 | 274 | ```yaml 275 | https://www.codegrepper.com/api/join_team.php 🔴 276 | ``` 277 | 278 | ```yaml 279 | { team_member_id: 0000 } 280 | ``` 281 | 282 | This API adds users to your team. 283 | 284 | ```yaml 285 | https://www.codegrepper.com/api/add_team_members.php 🔴 286 | ``` 287 | 288 | An auto completor for the team search users. This API can be used to get user's ID by their username. 289 | 290 | ```yaml 291 | https://www.codegrepper.com/api/autocomplete_users_search.php?team_id=1&q=Jareer 🟢 292 | ``` 293 | 294 | ```yaml 295 | [ 296 | { 297 | "is_team_member": null, 298 | "fun_name": "Undefined", 299 | "id": 98467, 300 | "real_name": "Jareer", 301 | "profile_image": "98467_hKuVkwhdUxieQAfc5lVurPuwSPTQFiVSnWEIS8l4gecLZdSa0g3vba4.gif", 302 | }, 303 | ] 304 | ``` 305 | 306 | Shows all the Team answers, you need to be authenticated & in the team to retreive proper data. 307 | 308 | ```yaml 309 | https://www.codegrepper.com/api/get_team_answers.php?&offset=0&sort_by=id_desc&team_id=348 🟢 310 | ``` 311 | 312 | ```yaml 313 | { 314 | "answers": 315 | [ 316 | { 317 | "answer_user_id": "String", 318 | "is_others_answer": 0, 319 | "search_answer_user_id": 0, 320 | "fun_name": "String", 321 | "i_upvoted": "String", 322 | "upvotes": "String", 323 | "downvotes": "String", 324 | "score": "String", 325 | "total_answer_hits": 19, 326 | "term": "Question", 327 | "created_at": "String", 328 | "bounty": null, 329 | "answer": "String", 330 | "language": "String", 331 | "bounty_approved": null, 332 | "id": 0, 333 | }, 334 | ], 335 | "total_count": 88, 336 | } 337 | ``` 338 | 339 | ## [Settings][mainpage] 340 | 341 | The update privacy API is used to update your privacy settings, you can either set it to `true` or `false`, 0 means false 1 means true. 342 | 343 | ```yaml 344 | https://www.codegrepper.com/api/update_extension_privacy.php 🔴 345 | ``` 346 | 347 | Updates your **[My programming language][settings]** settings. 348 | 349 | ```yaml 350 | https://www.codegrepper.com/api/update_my_code_languages.php?l=whatever&enabled=1 🟢 351 | ``` 352 | 353 | Updates your **[Notifications][settings]** settings. 354 | 355 | ```yaml 356 | https://www.codegrepper.com/api/update_notification_settings.php 🔴 357 | ``` 358 | 359 | ```json 360 | { 361 | "update_name": "notify_on_comments", 362 | "update_value": 1 // 0 for disable 363 | } 364 | ``` 365 | 366 | ## [Other][mainpage] 367 | 368 | API used while logging in. 369 | 370 | ```yaml 371 | https://www.codegrepper.com/api/login.php 🔴 372 | ``` 373 | 374 | ```yaml 375 | { 376 | "chrome_grepper_id": "", 377 | "user_id": "", 378 | "email": "Jareer@gmail.com", 379 | "password": "adwsawdsa", 380 | } 381 | ``` 382 | 383 | API to register users. 384 | 385 | ```yaml 386 | https://www.codegrepper.com/api/register.php 🔴 387 | ``` 388 | 389 | ```yaml 390 | { 391 | "chrome_grepper_id": "", 392 | "user_id": "", 393 | "email": "Jareer@gmail.com", 394 | "password": "adwsawdsa", 395 | } 396 | ``` 397 | 398 | API used to log users out 399 | 400 | ```yaml 401 | https://www.codegrepper.com/api/logout.php 🟢 402 | ``` 403 | 404 | The reset password API. 405 | 406 | ```yaml 407 | https://www.codegrepper.com/api/reset_password.php 🔴 408 | ``` 409 | 410 | ```yaml 411 | { "chrome_grepper_id": "", "user_id": "", "email": "Jareer@gmail.com" } 412 | ``` 413 | 414 | The feedback api, used to send feedback to the Code grepper devs. 415 | 416 | ```yaml 417 | https://www.codegrepper.com/api/send_feedback.php 🔴 418 | ``` 419 | 420 | Get who to follow, something that the algorithm mines from the database. Basically follow recommendation. 421 | 422 | ```yaml 423 | https://www.codegrepper.com/api/get_who_to_follow.php 🟢 424 | ``` 425 | 426 | ```yaml 427 | { 428 | "users": 429 | [ 430 | { 431 | "fun_name": "The Frenchy", 432 | "belt_score": 197824, 433 | "profile_slug": "al", 434 | "is_rank_private": 0, 435 | "user_id": 113653, 436 | "profile_image": null, 437 | "belt_rank": "blue", 438 | }, 439 | ], 440 | } 441 | ``` 442 | 443 | Shows top profile answers. 444 | 445 | ```yaml 446 | https://www.codegrepper.com/api/profile_top_answers.php?id=98467 🟢 447 | ``` 448 | 449 | ```yaml 450 | { 451 | "top_answers": 452 | [ 453 | { 454 | "id": 196274, 455 | "answer": "", 456 | "created_at": "2021-02-09 21:36:30", 457 | "total_results": 53, 458 | "search_term": "server info discord.js", 459 | "score": "5.1138000", 460 | "downvotes": 0, 461 | "upvotes": 5, 462 | }, 463 | ], 464 | } 465 | ``` 466 | 467 | An Auto-completor for the [**Search**](https://www.codegrepper.com/search.php) page. 468 | 469 | ```yaml 470 | https://www.codegrepper.com/api/search_autocomplete.php?q=js 🟢 471 | ``` 472 | 473 | Just a random route used as a CDN returns Images, these images are used in the meta tags of the search page. 474 | 475 | ```yaml 476 | https://www.codegrepper.com/codeimages/for-loop-javascript.png 🟢 477 | ``` 478 | 479 | This API shows all the users answer stats. 480 | 481 | ```yaml 482 | https://www.codegrepper.com/api/get_user_answer_stats.php?statstype=views&answer_id=null&daterange=null 🟢 483 | ``` 484 | 485 | ```yaml 486 | { 487 | "views": 488 | [{ "created_at": "2020-10-15", "views": 0, "copies": 0, "upvotes": 0 }], 489 | } 490 | ``` 491 | 492 | ## Dealing with Authorization(s) 493 | 494 | Every user on Code Grepper has a unique `PHPSSESID` which is used to authenticate users. Follow the steps below To retrieve this token. 495 | 496 | ### Usage 497 | 498 | - > Open Application from DevConsoles 499 | - > Open Cookies 500 | - > Copy The `PHPSESSID` 501 | - > The auth can then be used with POST request like `PHPSESSID=${Cookie}` 502 | 503 | ```js 504 | fetch(`https://www.codegrepper.com/`, { 505 | method: "POST", 506 | headers: { 507 | "Content-Type": "application/json", 508 | cookie: `PHPSESSID=${Cookie}`, 509 | }, 510 | body: JSON.stringify({ 511 | Data: "Payload", 512 | }), 513 | }) 514 | .then((res) => res.json()) 515 | .then((data) => { 516 | try { 517 | console.log(data); 518 | } catch { 519 | console.log(`No Data Returned`); 520 | } 521 | }) 522 | .catch((err) => console.log(err)); 523 | ``` 524 | 525 | ### Token Authorization 526 | 527 | There is a token-based authorization that I just found out about 528 | 529 | ```js 530 | fetch(`https://www.codegrepper.com/api/account.php`, { 531 | headers: { 532 | "Content-Type": "application/json", 533 | "x-auth-token": token, // Secret token, get it from localStorage. Or use https://www.npmjs.com/package/grepper for node.js 534 | "x-auth-id": userId, // 98467 535 | }, 536 | }) 537 | .then((response) => { 538 | return response.text(); 539 | }) 540 | .then((myJson) => { 541 | try { 542 | Data = JSON.parse(myJson); 543 | console.log(Data); 544 | if (Data) { 545 | } else { 546 | console.log(`No Data Fetched`); 547 | } 548 | } catch { 549 | console.log(`No Data Fetched`); 550 | } 551 | }) 552 | .catch((err) => { 553 | return { 554 | Success: false, 555 | Message: err, 556 | }; 557 | }); 558 | ``` 559 | 560 | [mainpage]: https://jubot.site/ 561 | [taylorprofile]: https://github.com/TaylorHawkes 562 | [profile]: https://www.codegrepper.com/app/profile.php?id=98467 563 | [settings]: https://www.codegrepper.com/app/settings-code-languages.php 564 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # ⚡ **Code Grepper API Documentation** 2 | 3 | 4 | 5 | **NOTE:** You can find the older documentation [here](./old.md). 6 | 7 | [Code Grepper][cgurl] also known as Grepper is a platform to help developers solve technical problems. [Grepper][cgurl] is powered by an amazing community of 200k(and growing fast) developers. Developers within the community contribute answers to technical problems primarily through the [Grepper][cgurl] browser extension which allows a user to quickly add a “code snippet” as an answer to a problem they ran into and recently solved. At present the community has put in 318k answers, which together have been viewed over 62 million times. 8 | 9 | [cgurl]: https://codegrepper.com 10 | 11 | ## **Table Of Contents** 12 | 13 | - [NPM Package](https://www.npmjs.com/package/grepper) 14 | - [Users](./docs/users/) 15 | - [Get User](./docs/users/GETUSER.MD) 16 | - [Get User Belt](./docs/users/GETUSERBELT.MD) 17 | - [Get User Stats](./docs/users/GETUSERSTATS.MD) 18 | - [Get My Info](./docs/users/USERBYTOKEN.MD) 19 | - [Search Users](./docs/users/SEARCHUSERS.MD) 20 | - [Get Who To Follow](./docs/users/WHOTOFOLLOW.md) 21 | - [Answers](./docs/answers) 22 | - [Get Answers](./docs/answers/GETANSWERS.MD) 23 | - [Get Comments](./docs/answers/GETCOMMENTS.MD) 24 | - [Search Answers](./docs/answers/SEARCHANSWER.MD) 25 | - [Needed Answers](./docs/answers/NEEDEDANSWERS.MD) 26 | - [Publish Answer](./docs/answers/PUBLISHANSWER.MD) 27 | - [Similiar Queries](./docs/answers/SIMILIARQUERIES.MD) 28 | - [Teams](./docs/teams) 29 | - [Invite User](./docs/teams/INVITEUSER.MD) 30 | - [Team Answers](./docs/teams/TEAMANSWERS.MD) 31 | - [Auth](./docs/auth) 32 | - [Login](./docs/auth/LOGIN.MD) 33 | - [Register](./docs/auth/REGISTER.MD) 34 | - [Reset Password](./docs/auth/RESETPASSWORD.MD) 35 | - [Logout](./docs/auth/LOGOUT.MD) 36 | - [Access Token](./docs/auth/TOKEN.MD) 37 | - [Vulnerabilities](./docs/vulnerabilities) 38 | - [Logout On Click](./docs/vulnerabilities/LOGOUT.MD) 39 | - [Other](./docs/other) 40 | - [Feedback](./docs/other/FEEDBACK.MD) 41 | - [Leaderboard](./docs/other/LEADERBOARD.MD) 42 | 43 | ## Authorization 44 | 45 | | Icon | Description | 46 | | ---- | ---------------------------------------------------------------------------------------------- | 47 | | ✅ | No authorization required. | 48 | | 🔒 | This API endpoint requires [Authorization](./docs/auth/TOKEN.MD). | 49 | | 🔓 | Partially requires [Authorization](./docs/auth/TOKEN.MD). Different output when auth provided. | 50 | 51 | ## Developer Note 52 | 53 | If you find any outdated, missing, or inaccurate content on this repository and would like to alter it, you can open an [Issue](https://github.com/jareer12/Code-Grepper-API-Documentation/issues) or send a [Pull Request](https://github.com/jareer12/Code-Grepper-API-Documentation/pulls). Typos, grammatical mistakes, etc are also expected to be corrected. 54 | --------------------------------------------------------------------------------