1<!DOCTYPE html> 2 <html lang="en" 3 data-theme="light"> 4 5<head> 6 7 <meta charset="UTF-8"> 8<meta name="viewport" content="width=device-width, initial-scale=1.0"> 9<meta http-equiv="X-UA-Compatible" content="ie=edge"> 10<link rel="icon" type="image/x-icon" href="https://www.grammarcheck.ai/favicon.svg?v=56"> 11<meta name="_token" content="dQ8lxDQEUBbk3hvStHCZgA0vokSjrIpljr4q6ivc" /> 12<title>API Docs</title> 13<meta name="description" content="API Docs" /> 14 15<link rel="canonical" href="https://www.grammarcheck.ai/api-docs" /> 16 <link rel="preconnect" href="https://fonts.googleapis.com"> 17<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 18<link href="https://fonts.googleapis.com/css2?family=Noto+Serif:wght@400;500;700&display=swap" rel="stylesheet"> 19<link rel="stylesheet" 20 href="https://www.grammarcheck.ai/web_assets/frontend/css/style.css?v=56"> 21 <link rel="stylesheet" 22 href="https://www.grammarcheck.ai/web_assets/frontend/css/api-docs.min.css?v=56"> 23 24 </head> 25 26<body class=""> 27 28 29 <div class="gc-main"> 30 <div class="gc-header-container"> 31 <div class="gc-container gc-nav-head large_screen_menu"> 32 <div class="gc-row gc-justify-space-between gc-align-items-center "> 33 <div class="header_logo_div"> 34 <a href="https://www.grammarcheck.ai"> 35 <img data-src-light="https://www.grammarcheck.ai/web_assets/frontend/img/logo.svg?v=56" 36 data-src-dark="https://www.grammarcheck.ai/web_assets/frontend/img/logo_dark.svg?v=56" 37 src="https://www.grammarcheck.ai/web_assets/frontend/img/logo.svg?v=56" 38 alt="logo" id="header_logo" width="120"> 39 </a> 40 </div> 41 42 <div class="topnav" id="myTopnav"> 43 <a href="https://www.grammarcheck.ai/ai-humanizer" class="menu-item"> 44 <span class="punc_checker ">AI 45 Humanizer 46 </span> 47 <span class="imp_text_green">IMPROVED</span> 48 </a> 49 <a href="https://www.grammarcheck.ai/ai-checker" class="menu-item"> 50 <span class="punc_checker "> 51 AI Checker 52 </span> 53 <span class="new_text_yellow">NEW</span> 54 </a> 55 <a href="https://www.grammarcheck.ai/plagiarism-checker" class="menu-item"> 56 <span class="punc_checker "> 57 Plagiarism Checker 58 </span> 59 <span class="new_text_yellow">NEW</span> 60 </a> 61 62 <ul class="other-tools-dropdown"> 63 <li class="dropdown-container menu-item "> 64 Other Tools <img class="arrow_header" 65 src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/arrow_small.svg" alt="arrow"> 66 <ul class="dropdown-menu"> 67 <li class="dropdown-item"> 68 <a href="https://www.grammarcheck.ai" class="menu-item"> 69 <div class="tool-link"> 70 <span>Grammar Checker</span> 71 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/carret-icon.svg" alt="arrow"> 72 </div> 73 <div class="tool-content"> 74 Correct all grammatical mistakes in one click. 75 </div> 76 </a> 77 </li> 78 <li class="dropdown-item"> 79 <a href="https://www.grammarcheck.ai/ai-summarizer" 80 class="menu-item"> 81 <div class="tool-link">
82 <span class=" ">AI Summarizer</span> 83 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/carret-icon.svg" alt="arrow"> 84 </div> 85 <div class="tool-content"> 86 Create concise summaries without losing context. 87 </div> 88 </a> 89 </li> 90 <li class="dropdown-item"> 91 <a href="https://www.grammarcheck.ai/paraphrase-tool" class="menu-item"> 92 <div class="tool-link"> 93 <span 94 class="punc_checker ">AI 95 Paraphraser</span> 96 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/carret-icon.svg" alt="arrow"> 97 </div> 98 <div class="tool-content"> 99 Rephrase text for improved structure and clarity. 100 </div> 101 </a> 102 </li> 103 104 <li class="dropdown-item"> 105 <a href="https://www.onlinenotepad.io/" target="_blank" class="menu-item"> 106 <span class="online-notepad"> 107 <div class="text"> 108 Online Notepad 109 </div> 110 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/online-notepad.svg" alt="online-notepad"> 111 </span> 112 <span class="img-container"> 113 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/carret-icon.svg" alt="arrow"> 114 </span> 115 116 <div class="tool-content"> 117 Write, edit, & save your notes online. 118 </div> 119 </a> 120 </li> 121 </ul> 122 </li> 123 </ul> 124 <a href="https://www.grammarcheck.ai/pricing" class="menu-item eTrack" e-track="navbar pricing"> 125 <span class=""> 126 Pricing </span> 127 </a> 128 </div> 129 130 <div class="user_buttons_nevbar"> 131 <div class="pointer dark_mode_icon"> 132 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/moon.svg" 133 alt="sun" id="dark_mode_icon" width="24"> 134 </div> 135 <div class="chat_icon" id="live-chat-open"> 136 <img class="chat-icon" src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/chat.svg" alt="Chat"> 137 <img class="loader-icon gc-d-none" src="https://www.grammarcheck.ai/web_assets/frontend/gif/chat-laoder1.svg" alt="Chat Loader"> 138 </div> 139 <div class="dropdown-wrapper relative"> 140 <button class="login_bg_none gc-d-flex gc-align-items-center " id="account-dropdown"> 141 <span>Account</span> 142 <img class="account_arrow_img" 143 src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/account_arrow.svg" alt="arrow"> 144 </button> 145 <div class="dropdown-menu-navbar gc-d-none gc-f-d-column account-dropdown"> 146 <a href="https://www.grammarcheck.ai/login" class="login"> 147 Login 148 </a> 149 <a href="https://www.grammarcheck.ai/register" class="signup"> 150 Sign up 151 </a> 152 </div> 153 </div> 154 </div> 155 </div> 156 </div> 157 158 <div class="gc-container gc-nav-head small_screen_menu"> 159 <div class="mobile-container"> 160 <div class="mobile_topnav relative"> 161 <div class="mobile_header_bar"> 162 <a href="https://www.grammarcheck.ai" class="active cp-text-m"> 163 <img data-src-light="https://www.grammarcheck.ai/web_assets/frontend/img/logo.svg?v=56" 164 data-src-dark="https://www.grammarcheck.ai/web_assets/frontend/img/logo_dark.svg?v=56" 165 src="https://www.grammarcheck.ai/web_assets/frontend/img/logo.svg?v=56" 166 alt="logo" id="header_logo_mobile" width="120"> 167 </a> 168 <div class="d-flex-gap-8"> 169 <div class="pointer dark_mode_icon"> 170 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/su
170n.svg?v=56" 171 alt="sun" width="24"> 172 </div> 173 <!-- Menu Trigger --> 174 <span onclick="toggleMobileMenu()" class="icon pointer gc-d-flex gc-align-items-center" 175 id="mobileMenuTrigger"> 176 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/Menu.svg?v=56" 177 alt="menu icon" id="hamburgerIcon"> 178 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/cross.svg" class="gc-d-none" 179 alt="cross" id="closeIcon"> 180 </span> 181 </div> 182 </div> 183 184 <!-- Overlay Mobile Menu --> 185 <div id="mobilgnuOverlay" class="mobile-menu-overlay"> 186 <div class="mobile-menu-content"> 187 <a href="https://www.grammarcheck.ai/ai-humanizer" class="mobile-menu-item"> 188 AI Humanizer <span class="imp_text_green">IMPROVED</span> 189 </a> 190 <a href="https://www.grammarcheck.ai/ai-checker" class="mobile-menu-item"> 191 AI Checker <span class="new_text_yellow">NEW</span> 192 </a> 193 <a href="https://www.grammarcheck.ai/plagiarism-checker" class="mobile-menu-item"> 194 Plagiarism Checker <span class="new_text_yellow">NEW</span> 195 </a> 196 <a href="https://www.grammarcheck.ai/pricing" class="mobile-menu-item"> 197 Pricing 198 </a> 199 200 <div class="mobile-menu-dropdown"> 201 <div class="mobile-dropdown-toggle pointer" onclick="toggleMobileDropdown(this)"> 202 Other Tools 203 <img class="arrow_header arrow_up" 204 src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/arrow_small.svg" alt="arrow"> 205 </div> 206 <div class="mobile-dropdown-menu"> 207 <a href="https://www.grammarcheck.ai" class="mobile-sub-item">Grammar Checker</a> 208 <a href="https://www.grammarcheck.ai/ai-summarizer" class="mobile-sub-item">AI Summarizer</a> 209 <a href="https://www.grammarcheck.ai/paraphrase-tool" class="mobile-sub-item">AI Paraphraser</a> 210 211 <a href="https://www.onlinenotepad.io/" class="mobile-sub-item"> 212 Online Notepad 213 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/online-notepad.svg" alt="online-notepad"> 214 </a> 215 216 </div> 217 </div> 218 219 <div class="mobile-auth-buttons"> 220 <a href="https://www.grammarcheck.ai/register" class="btn-mobile-signup">Sign up</a> 221 <a href="https://www.grammarcheck.ai/login" class="btn-mobile-login">Login</a> 222 </div> 223 </div> 224 </div> 225 </div> 226 </div> 227 </div> 228 229 </div> 230</div> 231 232 233 234 235 <section class="api-docs-section"> 236 <div class="api-docs-layout"> 237 <!-- Sidebar --> 238 <aside class="api-sidebar"> 239 <nav class="sidebar-nav"> 240 <div class="sidebar-group"> 241 <span class="sidebar-label">Introduction</span> 242 <ul> 243 <li><a href="#welcome" class="nav-link active">Getting Started</a></li> 244 <li><a href="#authentication" class="nav-link">Authentication</a></li> 245 <li><a href="#limitation" class="nav-link">Limitation Page</a></li> 246 </ul> 247 </div> 248 <div class="sidebar-group">
249 <span class="sidebar-label">Endpoints</span> 250 <ul> 251 <li><a href="#grammar-check" class="nav-link">Grammar Check</a></li> 252 253 </ul> 254 </div> 255 <div class="sidebar-group"> 256 <span class="sidebar-label">Support</span> 257 <ul> 258 <li><a href="#rate-limits" class="nav-link">Rate Limits</a></li> 259 <li><a href="#error-codes" class="nav-link">Error Codes</a></li> 260 </ul> 261 </div> 262 </nav> 263 </aside> 264 265 <!-- Main Content --> 266 <main class="api-content"> 267 <div id="welcome" class="content-section"> 268 <h1 class="main-title">API Documentation</h1> 269 <h2 class="section-title">Getting Started</h2> 270 <p>Welcome to the GrammarCheck.ai API. Our API provides developers with high-performance text processing 271 tools, including real-time grammar checking, intelligent paraphrasing, and plagiarism detection.</p> 272 <p>To start using the API, you first need to generate an API Key from your Access Credentials tab. Once 273 you have a key, you can authenticate your requests by including it in your HTTP headers.</p> 274 </div> 275 276 <div id="authentication" class="content-section"> 277 <h2 class="section-title">Authentication</h2> 278 <p>GrammarCheck.ai uses API keys to authenticate requests. All API requests should be made over HTTPS. 279 Unauthorized requests will return a 401 Unauthorized error.</p> 280 281 <div class="code-wrapper"> 282 <div class="code-header"> 283 <span>API Key</span> 284 <button class="copy-btn" 285 data-copy="YOUR_SECRET_KEY"> 286 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/copy-icon.svg" alt="Copy"> 287 </button> 288 </div> 289 <div class="code-block"> 290 <pre><code class="language-http"><span class="header-key">Authorization:</span> <span class="header-value">Bearer YOUR_SECRET_KEY</span></code></pre> 291 </div> 292 </div> 293 </div> 294 295 <div id="limitation" class="content-section"> 296 <h2 class="section-title">Limitation Page</h2> 297 <p>Our API has certain limitations based on your subscription plan. These include word limits per 298 request and rate limits per minute.</p> 299 <p>For most plans, the maximum word limit per request is 1000 words. If you need higher limits, please 300 contact our support team or upgrade your plan.</p> 301 </div> 302 303 <div id="grammar-check" class="content-section"> 304 <h2 class="section-title">Grammar Check</h2> 305 <p>Analyze text for grammatical errors, spelling mistakes, and punctuation issues.</p> 306 307 <div class="code-wrapper light"> 308 <div class="code-block single-line"> 309 <pre><code>curl -X POST "https://www.grammarcheck.ai/api/user/grammarcheck-api" \ 310 -H "Authorization: Bearer YOUR_SECRET_KEY" \ 311 -H "Content-Type: application/json" \ 312 -d '{"text": "Your text here"}'</code></pre> 313 <button class="copy-btn" 314 data-copy='curl -X POST "https://www.grammarcheck.ai/api/user/grammarcheck-api" \ 315 -H "Authorization: Bearer YOUR_SECRET_KEY" \ 316 -H "Content-Type: application/json" \ 317 -d "{\"text\": \"Your text here\"}"'> 318 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/copy-icon.svg" alt="Copy"> 319 </button> 320 </div> 321 </div> 322 323 <h3 class="section-title">Parameters</h3> 324 <div class="table-wrapper"> 325 <table class="api-table"> 326 <thead> 327 <tr> 328 <th>Parameter</th> 329 <th>Type</th> 330 <th>Description</th> 331 </tr> 332 </thead> 333 <tbody> 334 <tr> 335 <td><code>text</code></td> 336 <td>string</td> 337 <td>The text you want to check for grammar.</td> 338 </tr> 339 <tr> 340 <td><code>lang</code></td> 341 <td>string</td> 342 <td>Optional. Currently only available in English ('en'). Default: 'en'</td> 343 </tr> 344 </tbody> 345 </table> 346 </div> 347 348 <h3 class="section-title">Examples</h3> 349 <div class="code-wrapper"> 350 <div class="code-header">
351 <span>Basic Grammar Check Request</span> 352 <button class="copy-btn" data-copy='{ 353 "text": "Your long text here..." 354}'> 355 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/copy-icon.svg" alt="Copy"> 356 </button> 357 </div> 358 <div class="code-block"> 359 <div class="line-numbers"> 360 <span>1</span><span>2</span><span>3</span> 361 </div> 362 <pre><code class="language-json">{ 363 <span class="json-key">"text"</span>: <span class="json-value">"Your long text here...",</span> 364 <span class="json-key">"lang"</span>: <span class="json-value">"en" // default: en</span> 365}</code></pre> 366 </div> 367 </div> 368 369 <div class="code-wrapper"> 370 <div class="code-header"> 371 <span>Example Response</span> 372 <button class="copy-btn" 373 data-copy='{ 374 "status": true, 375 "data": { 376 "message": "Success", 377 "original": "This is a example.", 378 "corrected": "This is an example.", 379 "tagged": "This is \u003cspan class=\"grammarCheck_api\"\u003ean\u003c/span\u003e example." 380 }, 381 "emd_query_detect_limit": 4 382}'> 383 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/copy-icon.svg" alt="Copy"> 384 </button> 385 </div> 386 <div class="code-block"> 387 <div class="line-numbers"> 388 <span>1</span><span>2</span><span>3</span><span>4</span><span>5</span><span>6</span><span>7</span><span>8</span><span>9</span> 389 </div> 390 <pre><code class="language-json">{ 391 <span class="json-key">"status"</span>: <span class="json-value">true</span>, 392 <span class="json-key">"data"</span>: { 393 <span class="json-key">"message"</span>: <span class="json-value">"Success"</span>, 394 <span class="json-key">"original"</span>: <span class="json-value">"This is a example."</span>, 395 <span class="json-key">"corrected"</span>: <span class="json-value">"This is an example."</span>, 396 <span class="json-key">"tagged"</span>: <span class="json-value">"This is <span class=\"grammarCheck_api\">an</span> example."</span> 397 }, 398}</code></pre> 399 </div> 400 </div> 401 </div> 402 403 404 405 <div id="rate-limits" class="content-section"> 406 <h2 class="section-title">Rate Limits</h2> 407 <p>To ensure fair usage and system stability, we implement rate limiting on all API endpoints. The 408 number of allowed requests depends on your plan.</p> 409 <p>Standard plans typically allow 20 requests per minute. Exceeding this limit will result in a 429 Too 410 Many Requests error.</p> 411 </div> 412 413 <div id="error-codes" class="content-section"> 414 <h2 class="section-title">Error Codes</h2> 415 <p>Grammarcheck.ai uses standard HTTP status codes to indicate the success or failure of an API request. 416 </p> 417 418 <h3 class="section-title">Common Errors</h3> 419 <div class="table-wrapper"> 420 <table class="api-table"> 421 <thead> 422 <tr> 423 <th>STATUS</th> 424 <th>ERROR</th> 425 <th>DESCRIPTION</th> 426 </tr> 427 </thead> 428 <tbody> 429 <tr> 430 <td>400</td> 431 <td>Bad Request</td> 432 <td> 433 Unsupported language input. 434 </td> 435 </tr> 436 <tr> 437 <td>401</td> 438 <td>Unauthorized</td> 439 <td> 440 1. API key is required.<br> 441 2. Incorrect API key provided. 442 </td> 443 </tr> 444 <tr> 445 <td>413</td> 446 <td>Payload Too Large</td> 447 <td>
447The text may not be greater than allowed words.</td> 448 </tr> 449 <tr> 450 <td>417</td> 451 <td>Expectation Failed</td> 452 <td> 453 1. An internal error occurred while processing the request.<br> 454 2. Unable to paraphrase the text.<br> 455 3. Unable to check plagiarism.<br> 456 4. An unexpected error occurred. 457 </td> 458 </tr> 459 <tr> 460 <td>422</td> 461 <td>Unprocessable Entity</td> 462 <td>One or more request parameters are invalid or missing.</td> 463 </tr> 464 <tr> 465 <td>429</td> 466 <td>Too Many Requests</td> 467 <td>The rate limit of requests per minute depends on your plan.</td> 468 </tr> 469 </tbody> 470 </table> 471 </div> 472 </div> 473 </main> 474 </div> 475 </section> 476 477 478 479 480 <div id="ccpa" style="text-align:center;cursor:pointer;display: none;">Do not share my Personal Information.</div> 481<div class="gc-main"> 482 <section class="gc-section noto_font footer-section gc-pb-0"> 483 <div class="gc-main-container"> 484 <div class="gc-container"> 485 <div class="gc-row footer-row"> 486 <div class="gc-col"> 487 <a href="https://www.grammarcheck.ai"> 488 <img loading="lazy" 489 data-src-light="https://www.grammarcheck.ai/web_assets/frontend/img/logo.svg?v=56" 490 data-src-dark="https://www.grammarcheck.ai/web_assets/frontend/img/logo_dark.svg?v=56" 491 src="https://www.grammarcheck.ai/web_assets/frontend/img/logo.svg?v=56" 492 alt="logo-footer" id="footer_logo"> 493 </a> 494 <div> 495 <p class="footer_text"> 496 Best Free Online Grammar Checker to Improve the Quality of Your Content Using AI 497 Technology. 498 </p> 499 </div> 500 </div> 501 <div class="gc-col"> 502 <div class="footer-tools-sec"> 503 <div class="heading">Resources</div> 504 <a href="https://www.grammarcheck.ai/api-docs"> 505 API Docs 506 </a> 507 <a href="https://www.grammarcheck.ai/blog"> 508 Blog 509 </a> 510 <a href="https://www.grammarcheck.ai/terms-and-conditions"> 511 Terms & Condition 512 </a> 513 <a href="https://www.grammarcheck.ai/privacy-policy"> 514 Privacy Policy 515 </a> 516 <a href="https://www.grammarcheck.ai/refund-policy"> 517 Refund Policy 518 </a> 519 <a href="https://www.grammarcheck.ai/contact-us"> 520 Contact Us 521 </a> 522 </div> 523 </div> 524 <div class="gc-col"> 525 <div class="footer-tools-sec"> 526 <div class="heading">Tools</div> 527 <a href="https://www.grammarcheck.ai" class="menu-item">
528 <span> 529 Grammar Checker 530 </span> 531 </a> 532 <a href="https://www.grammarcheck.ai/plagiarism-checker" class="menu-item"> 533 <span> 534 Plagiarism Checker 535 </span> 536 </a> 537 538 <a href="https://www.grammarcheck.ai/paraphrase-tool" class="menu-item"> 539 <span> 540 Paraphrase Tool 541 </span> 542 </a> 543 <a href="https://www.grammarcheck.ai/ai-humanizer" class="menu-item"> 544 <span> 545 AI Humanizer 546 </span> 547 </a> 548 <a href="https://www.grammarcheck.ai/punctuation-checker" class="menu-item"> 549 <span> 550 Punctuation Checker 551 </span> 552 </a> 553 <a href="https://www.summarizer.org" rel="sponsored" target="_blank" class="menu-item"> 554 <span>AI Summarizer</span> 555 </a> 556 </div> 557 </div> 558 <div class="gc-col language-sec" > 559 <div class="lang-section"> 560 </div> 561 <div class="gc-apps-section"> 562 <div class="lang-heading">Grammarcheck.ai Apps</div> 563 <div class="apps-section-container"> 564 <a target="_blank" href="https://play.google.com/store/apps/details?id=com.enzipe.grammarcheck" class="app-container"> 565 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/playstore.svg" alt="Google play" loading="lazy" class="app-logo"> 566 <p class="app-title"> 567 Google Play 568 </p> 569 </a> 570 <a target="_blank" href="https://apps.apple.com/us/app/grammar-check-ai/id1632607331" class="app-container"> 571 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/apple-logo.svg" alt="App Store" loading="lazy" class="app-logo apple-app-logo"> 572 <p class="app-title"> 573 App Store 574 </p> 575 </a> 576 <a target="_blank" href="https://snapcraft.io/grammarcheck" class="app-container"> 577 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/linux_app.svg" alt="Linux" loading="lazy" class="app-logo"> 578 <p class="app-title"> 579 Linux 580 </p> 581 </a> 582 </div> 583 </div> 584 </div> 585 </div> 586 </div> 587 </div> 588 <div class="footer-copyright" style="border-top: 1px solid #333333;"> 589 <div class="gc-main-container"> 590 <div class="gc-container"> 591 <div class="copyright-row"> 592 <div> 593 © <a class="footer-site-link" href="https://www.grammarcheck.ai">Grammarcheck.ai</a> 594 2026. All rights reserved. 595 </div> 596 <div> 597 <a href="https://www.facebook.com/GrammarcheckAI"> 598 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/social_icons/facebook.svg?v=56" 599 alt="fb-icon" loading="lazy" /> 600 </a> 601 <a href="https://www.linkedin.com/company/grammarcheck/"> 602 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/social_icons/linkedin.svg?v=56" 603 alt="linkedin-icon" loading="lazy" /> 604 </a> 605 <a href="https://x.com/aigrammarcheck"> 606 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/social_icons/twitter.svg?v=56" 607 alt="twitter-icon" loading="lazy" /> 608 </a> 609 <a href="https://www.pinterest.com/grammarcheckofficial/"> 610 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/social_icons/pinterest.svg?v=56" 611 alt="pinterest-icon" loading="lazy" /> 612 </a> 613 </div> 614 </div> 615 </div> 616 </div> 617 </div> 618 619 </section> 620 <dialog id="error_Modal" class="popup_model">
621 <div class="error_modal-content popup_modal-content"> 622 <img src="" id="popup_image"> 623 <p id="errorModelHeading"></p> 624 <p id="errorModelDetail"></p> 625 <button class="popup_model_close" onclick="this.closest('dialog').close()">Close</button> 626 </div> 627 </dialog> 628 <dialog class="limit-modal" id="limitModal"> 629 <div class="modal-content modal-content-popups"> 630 <button class="close-button" onclick="this.closest('dialog').close()"> 631 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/popup_cross.svg" alt="close"> 632 </button> 633 <div class="modal-body"> 634 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/popup_icon.svg" alt="popup icon" class="popup_icon"> 635 <span class="title">Limit reached!</span> 636 <p class="subtext">Sorry, Guest user can only use 3 submission per min.</p> 637 </div> 638 <a href="https://www.grammarcheck.ai/contact-us" class="register-btn">Contact us</a> 639 </div> 640</dialog> 641 642<style> 643 #limitModal.limit-modal:not(dialog) { 644 display: none; 645 position: fixed; 646 top: 0; 647 left: 0; 648 width: 100%; 649 height: 100%; 650 background: rgba(0, 0, 0, 0.15); 651 align-items: center; 652 justify-content: center; 653 z-index: 9999; 654 } 655 656 dialog#limitModal.limit-modal[open] { 657 display: flex; 658 align-items: center; 659 justify-content: center; 660 width: 100%; 661 height: 100%; 662 z-index: 9999; 663 } 664 665 dialog#limitModal::backdrop { 666 background: rgba(0, 0, 0, 0.15); 667 } 668 669 #limitModal .modal-content { 670 background: var(--color-white); 671 padding: 20px; 672 width: 340px; 673 position: relative; 674 box-shadow: 4px 4px 0px 0px var(--color-green); 675 } 676 .popup_icon{ 677 display: block; 678 width:34px; 679 height: 32px; 680 } 681 682 #limitModal .close-button { 683 position: absolute; 684 top: 0px; 685 right: 0px; 686 background: none; 687 border: none; 688 font-size: 22px; 689 cursor: pointer; 690 } 691 #limitModal .modal-body { 692 display: flex; 693 flex-direction: column; 694 gap: 8px; 695 padding-bottom: 20px; 696 } 697 #limitModal .title { 698 font-size: 18px; 699 line-height: 24px; 700 font-weight: 500; 701 /* margin-bottom: 8px; */ 702 color: var(--color-headings); 703 } 704 705 #limitModal .subtext { 706 font-size: 14px; 707 line-height: 20px; 708 font-weight: 400; 709 color: var(--color-paragraphs); 710 /* margin-bottom: 16px; */ 711 } 712 713 #limitModal .register-btn { 714 padding: 4px 12px; 715 background-color: #9EEBCA; 716 border: 1px solid #000000; 717 font-weight: 500; 718 text-decoration: none; 719 color: #000; 720 box-shadow: 2px 2px 0px 0px #333333; 721 /* width: 100%; */ 722 /* display: block; */ 723 font-size: 14px; 724 margin-left: calc(100% - 100px); 725 text-align: center; 726 cursor: pointer; 727 } 728 729 #limitModal .register-btn:hover { 730 background: #77DEB2; 731 } 732</style> 733 <dialog class="limit-modal" id="premiumModal"> 734 <div class="modal-content modal-content-popups"> 735 <button class="close-button" onclick="this.closest('dialog').close()"> 736 <img src="https://www.grammarcheck.ai/web_assets/frontend/img/icons/close_arrow_limit.svg" alt="close" width="100"> 737 </button> 738 739 <div class="modal-header"> 740 <div class="description"> 741 <span class="title">Limit Exceed</span> 742 <p class="subtext">Choose plan to upgrade</p> 743 </div> 744 <div class="toggle-container"> 745 <label for="pricingTogglePopup" class="toggle-label monthly-label">Monthly</label> 746 <label class="switch"> 747 <input type="checkbox" id="pricingTogglePopup"> 748 <span class="slider round"></span> 749 </label> 750 <label for="pricingTogglePopup" class="toggle-label yearly-label active">Yearly</label> 751 </div> 752 </div> 753 754 <div class="plans"> 755 756 757 <label class="plan monthly "> 758 <input type="radio" name="plan" value="17" 759 checked> 760
761 <div class="plan-details"> 762 <span class="plan-title 1"> 763 All in One 764 </span> 765 766 <span class="plan-description"> 767 Monthly 768 </span> 769 </div> 770 771 <span class="plan-price">$4</span> 772 </label> 773 774 <label class="plan yearly gc-d-none "> 775 <input type="radio" name="plan" value="18" 776 > 777 778 <div class="plan-details"> 779 <span class="plan-title 2"> 780 All in One 781 </span> 782 783 <span class="plan-description"> 784 Billed yearly $30 785 </span> 786 </div> 787 788 <span class="plan-price">$2.50</span> 789 </label> 790 791 <label class="plan monthly "> 792 <input type="radio" name="plan" value="19" 793 > 794 795 <div class="plan-details"> 796 <span class="plan-title 3"> 797 All in One 798 </span> 799 800 <span class="plan-description"> 801 Monthly 802 </span> 803 </div> 804 805 <span class="plan-price">$7</span> 806 </label> 807 808 <label class="plan yearly gc-d-none "> 809 <input type="radio" name="plan" value="20" 810 > 811 812 <div class="plan-details"> 813 <span class="plan-title 4"> 814 All in One 815 </span> 816 817 <span class="plan-description"> 818 Billed yearly $48 819 </span> 820 </div> 821 822 <span class="plan-price">$4.00</span> 823 </label> 824 825 </div> 826 827 <div class="benefits-section"> 828 <span class="benefits-title">Benefits</span> 829 <ul class="benefits" id="benefitsList"> 830 </ul> 831 </div> 832 833 <div class="modal-footer"> 834 <a href="https://www.grammarcheck.ai/signup" class="continue-btn eTrack" 835 e-track="Signup page button on popup">Continue as free</a> 836 <a href="#" class="upgrade-btn-popup eTrack" e-track="Upgrade button on premium popup" 837 data-plans='[{"id":14,"paypro_product_id":132172,"checkout_link":"https:\/\/store.payproglobal.com\/checkout?products[1][id]=132172\u0026page-template=20599\u0026x-pid=14"},{"id":15,"paypro_product_id":132173,"checkout_link":"https:\/\/store.payproglobal.com\/checkout?products[1][id]=132173\u0026page-template=20599\u0026x-pid=15"},{"id":16,"paypro_product_id":132174,"checkout_link":"https:\/\/store.payproglobal.com\/checkout?products[1][id]=132174\u0026page-template=20599\u0026x-pid=16"},{"id":17,"paypro_product_id":118027,"checkout_link":"https:\/\/store.payproglobal.com\/checkout?products[1][id]=118027\u0026page-template=20599\u0026x-pid=17"},{"id":18,"paypro_product_id":118028,"checkout_link":"https:\/\/store.payproglobal.com\/checkout?products[1][id]=118028\u0026page-template=20599\u0026x-pid=18"},{"id":19,"paypro_product_id":118029,"checkout_link":"https:\/\/store.payproglobal.com\/checkout?products[1][id]=118029\u0026page-template=20599\u0026x-pid=19"},{"id":20,"paypro_product_id":118026,"checkout_link":"https:\/\/store.payproglobal.com\/checkout?products[1][id]=118026\u0026page-template=20599\u0026x-pid=20"}]' data-is-guest="true"> 838 Upgrade to Pro 839 </a> 840 841 </div> 842 </div> 843</dialog> 844 845<style>
846 /* #premiumModal.limit-modal:not(dialog) { 847 display: none; 848 position: fixed; 849 top: 0; 850 left: 0; 851 width: 100%; 852 height: 100%; 853 background: rgba(0, 0, 0, 0.4); 854 align-items: center; 855 justify-content: center; 856 z-index: 9999; 857 } */ 858 859 dialog#premiumModal.limit-modal[open] { 860 display: flex; 861 align-items: center; 862 justify-content: center; 863 width: 100%; 864 height: 100%; 865 z-index: 9999; 866 } 867 868 dialog#premiumModal::backdrop { 869 background: rgba(0, 0, 0, 0.4); 870 } 871 872 #premiumModal .modal-content { 873 background: var(--color-white); 874 width: 420px; 875 padding: unset; 876 position: relative; 877 box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.1); 878 /* border-radius: 8px; */ 879 } 880 881 #premiumModal .close-button { 882 position: absolute; 883 top: 0px; 884 right: 0px; 885 width: 32px; 886 height: 32px; 887 background: none; 888 border: none; 889 cursor: pointer; 890 padding: 0; 891 } 892 893 #premiumModal .modal-header { 894 text-align: left; 895 border-bottom: 1px solid #E2E4E6; 896 padding: 24px 20px; 897 display: flex; 898 justify-content: space-between; 899 align-items: flex-end; 900 } 901 #premiumModal .description { 902 display: flex; 903 flex-direction: column; 904 gap: 6px; 905 } 906 907 908 909 #premiumModal .title { 910 font-size: 18px; 911 line-height: 24px !important; 912 font-weight: 500; 913 color: var(--color-headings); 914 } 915 916 #premiumModal .subtext { 917 font-size: 14px; 918 line-height: 20px; 919 font-weight: 500; 920 color: #8C949B; 921 /* margin-top: 6px; */ 922 /* margin-bottom: 16px; */ 923 } 924 925 #premiumModal .plans { 926 display: flex; 927 flex-direction: column; 928 margin-bottom: 16px; 929 border-bottom: 1px solid #E2E4E6; 930 } 931 932 #premiumModal .plan { 933 display: flex; 934 gap: 16px; 935 align-items: center; 936 padding: 16px 20px; 937 border-radius: 6px; 938 cursor: pointer; 939 transition: border-color 0.2s ease-in-out; 940 } 941 942 /******************* Pricing Toggler Css start *******************/ 943 944 .toggle-container { 945 display: flex; 946 align-items: center; 947 justify-content: center; 948 gap: 6px; 949 } 950 951 .toggle-label { 952 font-weight: 500; 953 font-size: 12px; 954 line-height: 20px; 955 color: var(--color-all-black); 956 transition: color 0.3s ease; 957 cursor: pointer; 958 text-transform: uppercase; 959 } 960 961 /* .toggle-label.yearly-label { 962 color: #8C949B; 963 } */ 964 965 .switch { 966 position: relative; 967 display: inline-block; 968 width: 36px; 969 height: 20px; 970 padding: 3px; 971 } 972 973 .switch input { 974 opacity: 0; 975 width: 0; 976 height: 0; 977 } 978 979 .slider { 980 position: absolute; 981 cursor: pointer; 982 top: 0; 983 left: 0; 984 right: 0; 985 bottom: 0; 986 background-color: #fff; 987 transition: 0.4s; 988 border-radius: 9564.26px; 989 border: 0.92px solid #000; 990 box-sizing: content-box; 991 display: flex; 992 align-items: center; 993 padding: 3px; 994 } 995 996 .slider:before { 997 position: absolute; 998 content: ""; 999 height: 14px; 1000 width: 14px; 1001 left: unset; 1002 bottom: unset; 1003 background-color: #f2f7fb; 1004 box-shadow: inset 0 0 0 1px #000; 1005 transition: 0.4s; 1006 border-radius: 50%; 1007 box-sizing: content-box; 1008 } 1009 1010 input:checked+.slider { 1011 background-color: #fff; 1012 } 1013 1014 input:focus+.slider { 1015 box-shadow: 0 0 1px #fff; 1016 } 1017 1018 input:checked+.slider:before { 1019 transform: translateX(calc(100%)); 1020 background-color: #9eebca; 1021 } 1022 1023 /******************* Pricing Toggler Css End *******************/ 1024 1025 1026 #premiumModal .plan:has(input[type="radio"]:checked) { 1027 background-color: var(--color-table-odd); 1028 } 1029 1030 #premiumModal .plan input[type="radio"] { 1031 -webkit-appearance: none; 1032 appearance: none; 1033 background-color: #fff; 1034 margin: 0; 1035 font: inherit; 1036 color: currentColor; 1037 width: 18px; 1038 height: 18px; 1039 border: 3px solid #8C949B; 1040 border-radius: 50%; 1041 place-content: center; 1042 flex-shrink: 0; 1043 } 1044
1045 #premiumModal .plan input[type="radio"]::before { 1046 content: ""; 1047 width: 10px; 1048 height: 10px; 1049 border-radius: 50%; 1050 transform: scale(0); 1051 transition: 120ms transform ease-in-out; 1052 box-shadow: inset 1em 1em #00A679; 1053 } 1054 1055 #premiumModal .plan input[type="radio"]:checked { 1056 border: 5px solid #09AA84; 1057 } 1058 1059 #premiumModal .plan input[type="radio"]:checked::before { 1060 transform: scale(1); 1061 } 1062 1063 #premiumModal .plan-details { 1064 flex-grow: 1; 1065 } 1066 1067 #premiumModal .plan-title { 1068 font-size: 16px; 1069 line-height: 20px; 1070 font-weight: 400; 1071 color: var(--color-headings); 1072 display: block; 1073 } 1074 1075 #premiumModal .plan-description { 1076 font-size: 12px; 1077 line-height: 20px; 1078 font-weight: 400; 1079 color: #808080; 1080 } 1081 1082 #premiumModal .plan-price { 1083 font-size: 24px; 1084 line-height: 28px; 1085 font-weight: 400; 1086 color: var(--color-headings); 1087 } 1088 1089 #premiumModal .benefits-title { 1090 font-size: 14px; 1091 line-height: 20px; 1092 font-weight: 400; 1093 color: #808080; 1094 } 1095 1096 #premiumModal .benefits-section { 1097 padding: 0 20px; 1098 display: flex; 1099 flex-direction: column; 1100 gap: 8px; 1101 } 1102 1103 #premiumModal .modal-footer { 1104 padding: 20px ; 1105 } 1106 1107 #premiumModal .benefits { 1108 list-style: none; 1109 padding: 0; 1110 margin: 0; 1111 font-size: 16px; 1112 color: #374151; 1113 } 1114 1115 #premiumModal .benefits li { 1116 padding: 4px 0; 1117 display: flex; 1118 align-items: center; 1119 gap: 8px; 1120 line-height: 20px; 1121 font-size: 14px; 1122 } 1123 1124 #premiumModal .benefits li::before { 1125 content: ""; 1126 width: 18px; 1127 height: 16px; 1128 background-repeat: no-repeat; 1129 background-image: url("/web_assets/frontend/img/icons/tick_pricing.svg"); 1130 } 1131 1132 #premiumModal .modal-footer { 1133 display: flex; 1134 justify-content: space-between; 1135 gap: 16px; 1136 } 1137 1138 #premiumModal .continue-btn, 1139 #premiumModal .upgrade-btn-popup { 1140 flex: 1; 1141 padding: 10px 8px; 1142 font-size: 16px; 1143 line-height: 22px; 1144 font-weight: 500; 1145 text-align: center; 1146 cursor: pointer; 1147 text-decoration: none; 1148 } 1149 1150 #premiumModal .continue-btn { 1151 background-color: var(--color-white); 1152 border: 1px solid #E2E4E6; 1153 color: var(--color-lightgray); 1154 } 1155 1156 #premiumModal .continue-btn:hover { 1157 background-color: #F9FAFB; 1158 } 1159 1160 #premiumModal .upgrade-btn-popup { 1161 background: var(--color-headings); 1162 color: var(--color-white); 1163 border: 1px solid var(--color-white); 1164 } 1165 #premiumModal .upgrade-btn-popup, 1166 #premiumModal .continue-btn { 1167 white-space: nowrap !important; 1168 } 1169 @media screen and (max-width: 768px){ 1170 /* #premiumModal .continue-btn, #premiumModal .upgrade-btn-popup { 1171 flex: none !important; 1172 } */ 1173 #premiumModal .modal-header{ 1174 flex-wrap: wrap; 1175 gap: 16px; 1176 } 1177 #premiumModal .modal-content { 1178 width: 343px; 1179 } 1180 1181 } 1182 @media (max-width:360px){ 1183 #premiumModal .upgrade-btn-popup, 1184 #premiumModal .continue-btn { 1185 padding: 10px 6px; 1186 } 1187 } 1188</style>
1189<script> 1190 const setFreePlan_popup = (plan_id, paypro_id) => { 1191 $.post("https://www.grammarcheck.ai/set-plan", { 1192 plan_id: plan_id, 1193 paypro_id: paypro_id, 1194 _token: "dQ8lxDQEUBbk3hvStHCZgA0vokSjrIpljr4q6ivc", 1195 }) 1196 .done(function(response) { 1197 if (response.success) { 1198 window.location.href = "https://www.grammarcheck.ai/signup"; 1199 } 1200 }) 1201 .fail(function(xhr) { 1202 console.error("Error setting session:", xhr); 1203 }); 1204 }; 1205</script>
1205 1206
1207<script> 1208 const planBenefits = {"17":["History","Advanced Grammar Checks","Check Longer Texts","AI Rephraser for Better Clarity"],"18":["History","Advanced Grammar Checks","Check Longer Texts","AI Rephraser for Better Clarity"],"19":["History","Advanced Grammar Checks","Check Longer Texts","AI Rephraser for Better Clarity"],"20":["History","Advanced Grammar Checks","Check Longer Texts","AI Rephraser for Better Clarity"]}; 1209 const benefitsList = document.getElementById('benefitsList'); 1210 const toolQueryLimits = {"17":null,"18":null,"19":null,"20":null}; 1211 1212 1213 function updateBenefits() { 1214 const selectedPlan = document.querySelector('input[name="plan"]:checked'); 1215 1216 if (selectedPlan) { 1217 const planId = selectedPlan.value; 1218 const features = [...planBenefits[planId]]; 1219 const credits = toolQueryLimits[planId]; 1220 1221 // Replace feature 2 (Advanced Grammar Checks) with credits 1222 if (credits !== null && credits !== undefined) { 1223 features[1] = `${credits} Tool Credits`; 1224 if (credits === 1 || credits === '1') { 1225 features[1] = 'Unlimited Credits'; 1226 } else if (credits !== null && credits !== undefined) { 1227 features[1] = `${credits} Tool Credits`; 1228 } 1229 } 1230 1231 benefitsList.innerHTML = ''; 1232 1233 features.forEach((feature, index) => { 1234 1235 if (index === 1) { 1236 if (!credits) return; // Skip the Tool Credits <li> 1237 1238 feature = credits == 1 1239 ? 'Unlimited Credits' 1240 : `${credits} Tool Credits`; 1241 } 1242 1243 benefitsList.insertAdjacentHTML( 1244 'beforeend', 1245 `<li${index === 1 ? ' class="tool-credits"' : ''}>${feature}</li>` 1246 ); 1247 }); 1248 1249 } else { 1250 1251 benefitsList.innerHTML = ` 1252 <li>History</li> 1253 <li class="tool-credits"> 1254 Tool Credits 1255 </li> 1256 <li>Check Longer Texts</li> 1257 <li>AI Rephraser for Better Clarity</li> 1258 `; 1259 } 1260} 1261 1262 document.addEventListener('DOMContentLoaded', function() { 1263 document.querySelector('#pricingTogglePopup').addEventListener("click", function() { 1264 if ($(this).is(":checked")) { 1265 // Yearly selected 1266 $("label.plan.monthly").addClass("gc-d-none"); 1267 $("label.plan.yearly").removeClass("gc-d-none"); 1268 $('label.plan.yearly input[type="radio"]').first().prop("checked", true); 1269 } else { 1270 // Monthly selected 1271 $("label.plan.yearly").addClass("gc-d-none"); 1272 $("label.plan.monthly").removeClass("gc-d-none"); 1273 $('label.plan.monthly input[type="radio"]').first().prop("checked", true); 1274 } 1275 updateBenefits(); // Call updateBenefits after toggle 1276 }); 1277 1278 const planRadios = document.querySelectorAll('input[name="plan"]'); 1279 planRadios.forEach(radio => { 1280 radio.addEventListener('change', updateBenefits); 1281 }); 1282 1283 // Initial update when the page loads 1284 updateBenefits(); 1285 }); 1286</script>
1286 1287</div> 1288 1289
1289<script src="https://www.grammarcheck.ai/web_assets/frontend/script/jquery.min.js"></script>
vendor: 1 bytes, line 1289
1289
1290<script> 1291 const is_tool_premium = 0; 1292 const is_user_premium = 0 1293 let page_lang = $("html").attr("lang"); 1294 let tool_specific_lang_ai = page_lang; 1295 let words = ""; 1296 const toolSubmitBtn = "Processing..."; 1297 const ignoreIsThis = ""; 1298 const copiedDataTitle = ""; 1299 const copyDataTitle = ""; 1300 const maxCharacterHeading = "Text Limit Exceed"; 1301 const maxCharacterwarning = "Add some text in the input box"; 1302 const inputTextRequiredHeading = "Error"; 1303 const inputTextRequiredDetail = "Add Atleast 10 words in the input box"; 1304 let maxcharacterMessage = 1305 "Only @words words allowed. Extra Words will be removed"; 1306 const invalidFileMessage = "Please upload a valid file"; 1307 const noErrorFoundHeading = ""; 1308 const noErrorFoundDetail = ""; 1309 const feedback_already_submitted = ""; 1310 const feedback_thanks = ""; 1311 let sampleText = "Sample Text for the Page"; 1312 let sampleTextMulti = ""; 1313 const rightArrow = 1314 "<img src='https://www.grammarcheck.ai/web_assets/frontend/img/arrow-right-toltip.svg?v=56' alt='right-arrow'>"; 1315 const ignore_cross = 1316 "<img src='https://www.grammarcheck.ai/web_assets/frontend/img/icons/cross-ignore.svg?v=56' alt='ignore_cross'>"; 1317 const parent_id = 0; 1318 const tool_slug = ""; 1319 const tool_id = 0; 1320 const synonym_tool_id = ""; 1321 const UserName = 'Guest User'; 1322 var IS_MOBILE = 0; 1323 // New Result Keys 1324 const grammar_mistake_text = "Grammar Mistake"; 1325 const punct_mistake_text = "Punctuation Mistake"; 1326 const spelling_mistake_text = "Spelling Mistake"; 1327 const limit_throttle_heading = "Limit Exceeded!"; 1328 let limit_throttle_text = 1329 "You have reached the @limit_count limit for this tool. Please try again later."; 1330 const mobile_check_text = 1331 "Try more ways to check grammar in the Grammar Check app"; 1332 const open_app_text = "Open Grammar Check App"; 1333 const stay_browser_text = "Stay on this page"; 1334 const history_popup_heading = "Unauthorized"; 1335 const history_popup_detail = "You need to be a premium user to access this feature."; 1336 const sessionExpiredHeading = "Session Expired"; 1337 const sessionExpiredDetail = "Your session has expired. Please refresh the page."; 1338 const rephrasing_popup_button_text = "Improvement"; 1339 window.assetVersion = "?v=56" || '?v=1.0.0'; 1340 1341 const moon_image = "https://www.grammarcheck.ai/web_assets/frontend/img/icons/moon.svg?v=1.3"; 1342 const sun_image = "https://www.grammarcheck.ai/web_assets/frontend/img/icons/sun.svg?v=1.3"; 1343</script>
1343 1344
1345<script src="https://www.grammarcheck.ai/web_assets/frontend/script/custom.min.js?v=56"> 1346</script>
1346 1347
1347<script src="https://www.grammarcheck.ai/web_assets/frontend/script/api-docs.min.js?v=56"> 1348 </script>
1348 1349
1349<script> 1350 function toggleMobileMenu() { 1351 var overlay = document.getElementById('mobilgnuOverlay'); 1352 var hamburger = document.getElementById('hamburgerIcon'); 1353 var close = document.getElementById('closeIcon'); 1354 1355 if (overlay.classList.contains('active')) { 1356 // Close Menu 1357 overlay.classList.remove('active'); 1358 hamburger.style.display = 'block'; 1359 close.classList.add('gc-d-none'); 1360 } else { 1361 // Open Menu 1362 overlay.classList.add('active'); 1363 hamburger.style.display = 'none'; 1364 close.classList.remove('gc-d-none'); 1365 } 1366 } 1367 1368 function toggleMobileDropdown(element) { 1369 const menu = element.nextElementSibling; 1370 const arrow = element.querySelector('img'); 1371 if (menu.style.display === 'none' || menu.style.display === '') { 1372 menu.style.display = 'flex'; 1373 arrow.classList.remove('arrow_up'); 1374 } else { 1375 menu.style.display = 'none'; 1376 arrow.classList.add('arrow_up'); 1377 } 1378 } 1379 </script>
1379 1380
1380<script> 1381 window.EMD_USER = { 1382 logged_in: false, 1383 name: null, 1384 email: null, 1385 email_verified: false, 1386 is_premium: false, 1387 // 0 = Free, 1 = Premium, 2 = Free Plan â see EmdWebUser::PREMIUM_TYPE 1388 // 'Guest' when logged out, otherwise the PREMIUM_TYPE label 1389 user_type: "Guest", 1390 website: "grammarcheck.ai", 1391 }; 1392 1393 Object.defineProperty(window.EMD_USER, 'user_key', { 1394 enumerable: true, 1395 get: function () { 1396 try { 1397 return localStorage.getItem('user-key') || localStorage.getItem('e-track-key') || ''; 1398 } catch (e) { 1399 return ''; 1400 } 1401 }, 1402 }); 1403</script>
1403 1404 1405 1406 1407
1407<script src="https://www.grammarcheck.ai/web_assets/frontend/script/emd/script.js?v1.0.1"></script>
1407 1408 1409
1409<script 1410 async 1411 src="https://chat.enzipe.com/widget/w.js?v=v2.0.2" 1412 data-key="pk_live_cbteiujqdzbaybnkzeaxoty1" 1413 ></script>
1413 1414 <!-- Google tag (gtag.js) -->
vendor: 72 bytes, lines 1414-1415
1414 1415 <script async src="https://www.googletagmanager.com/gtag/js?id=
1415G-EF5TYDVJ0P
vendor: 20 bytes, lines 1415-1416
1415"></script> 1416
1416<script> 1417
vendor: 195 bytes, lines 1417-1423
1417window.dataLayer = window.dataLayer || []; 1418 1419 function gtag() { 1420 dataLayer.push(arguments); 1421 } 1422 gtag('js', new Date()); 1423 gtag('config', '
1423G-EF5TYDVJ0P
vendor: 12 bytes, lines 1423-1424
1423'); 1424
1424</script>
1424 1425 1426 1427
1427<script async defer src="https://www.grammarcheck.ai/web_assets/frontend/script/emd/etrack.js?v1.0.2"></script>
1427 1428
1428<script> 1429 window.WebsiteTrackerConfig = { 1430 endpoint: '\/emd\/tracker-click', 1431 inactivity_delay_ms: 5000 1432 }; 1433 </script>
1433 1434
1434<script async defer src="https://www.grammarcheck.ai/web_assets/frontend/script/emd/tracker.js?v1.1.0"></script>
1434 1435 1436 1437 1438
1438<script src="https://www.gstatic.com/firebasejs/9.22.0/firebase-app-compat.js"></script>
1438 1439
1439<script src="https://www.gstatic.com/firebasejs/9.22.0/firebase-messaging-compat.js"></script>
1439 1440
1440<script> 1441 window.EMD_FIREBASE_CONFIG = JSON.parse('{\u0022apiKey\u0022:\u0022AIzaSyAkHU36rSwUvIM_HYMt1zRwjAHLIeFXR2s\u0022,\u0022authDomain\u0022:\u0022grammarcheck-ai-website.firebaseapp.com\u0022,\u0022projectId\u0022:\u0022grammarcheck-ai-website\u0022,\u0022storageBucket\u0022:\u0022grammarcheck-ai-website.firebasestorage.app\u0022,\u0022messagingSenderId\u0022:\u0022175926130272\u0022,\u0022appId\u0022:\u00221:175926130272:web:fdb9c7e272e1210b803505\u0022}'); 1442 window.EMD_FIREBASE_VAPID_KEY = "BN5F-M9YZsPZ7qh1MjP9PBb83P93CU7odv3BPY34FOBRViAveB0FzQlu8tGGJQ0xTAegLrUoDVn0-WLlD3Xq0s4"; 1443 </script>
1443 1444
1444<script src="https://www.grammarcheck.ai/web_assets/frontend/script/emd/firebase-push-notification.js?v1.0.0"></script>
1444 1445
1446<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"4c9c23e955a4498cb27c80f2d973db76","r":1,"spa":2}' crossorigin="anonymous"></script>
1446 1447</body> 1448 1449</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.