{"jsonapi":{"version":"1.0","meta":{"links":{"self":{"href":"http:\/\/jsonapi.org\/format\/1.0\/"}}}},"data":[{"type":"node--project_module","id":"382b0e03-5b05-4681-9eea-1b845157f1a3","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/382b0e03-5b05-4681-9eea-1b845157f1a3?resourceVersion=id%3A20005162"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/382b0e03-5b05-4681-9eea-1b845157f1a3?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":8404,"status":true,"title":"CAPTCHA","created":"2004-06-09T18:31:31+00:00","changed":"2026-04-09T09:57:31+00:00","moderation_state":null,"body":{"value":"\u003Cem\u003EAdd challenge-response tests to user-facing forms on your site to protect against spambot submissions. Other CAPTCHA types are supported via additional modules.\u003C\/em\u003E\r\n\r\nA CAPTCHA is a challenge-response test most often placed within web forms to determine whether the user is human. The purpose of CAPTCHA is to block form submissions by spambots, which are automated scripts that post spam content everywhere they can. The CAPTCHA module provides this feature to virtually any user facing web form on a Drupal site.  \r\n\r\n\u003C!--break--\u003E\r\n\u003Ch3\u003EAdditional CAPTCHA Modules\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/friendlycaptcha\u0022\u003EFriendly Captcha\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/altcha\u0022\u003EALTCHA Captcha\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/turnstile\u0022 rel=\u0022nofollow\u0022\u003ECloudflare turnstile\u003C\/a\u003E\r\n\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/recaptcha\u0022 rel=\u0022nofollow\u0022\u003EreCAPTCHA\u003C\/a\u003E\r\n\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/riddler\u0022 rel=\u0022nofollow\u0022\u003ECaptcha Riddler\u003C\/a\u003E\r\n\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/captcha_after\u0022 rel=\u0022nofollow\u0022\u003ECAPTCHA after\u003C\/a\u003E\r\n\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/nocaptcha_recaptcha\u0022 rel=\u0022nofollow\u0022\u003ENocaptcha Recaptcha\u003C\/a\u003E\r\n\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/draggable_captcha\u0022 rel=\u0022nofollow\u0022\u003EDraggable CAPTCHA\u003C\/a\u003E\r\n\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/captcha_pack\u0022 rel=\u0022nofollow\u0022\u003ECAPTCHA Pack\u003C\/a\u003E Only for Drupal 7 and Not maintained after 23 October 2011.\r\n\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/textcaptcha\u0022 rel=\u0022nofollow\u0022\u003EText CAPTCHA\u003C\/a\u003E Only for Drupal 7 and Not maintained after 24 November 2014.\r\n\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/hidden_captcha\u0022 rel=\u0022nofollow\u0022\u003EHidden CAPTCHA\u003C\/a\u003E Only for Drupal 7 and Not maintained after 29 Mar 2018.\r\n\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/keycaptcha\u0022 rel=\u0022nofollow\u0022\u003EKeyCAPTCHA\u003C\/a\u003E Only for Drupal 7 and Not maintained after 5 May 2012.\r\n\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/image_captcha_refresh\u0022 rel=\u0022nofollow\u0022\u003EImage CAPTCHA refresh\u003C\/a\u003E Only for Drupal 7 and Not maintained after 9 November 2015.\r\n\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/egglue_captcha\u0022 rel=\u0022nofollow\u0022\u003EEgglue Semantic CAPTCHA\u003C\/a\u003E Only for Drupal 6 and Not maintained after 19 April 2017.\r\n\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Csmall\u003E(Last update: 2025-09-23)\u003C\/small\u003E\r\n\r\n\u003Ch2\u003EVersion Information\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EBranch 2.x\u003C\/strong\u003E: Actively maintained version with bug fixes and general improvements, e.g. twig templates). Drupal 9.4+ only! Upgrade path from 8.x-1.x, but please check your output and move custom template overwrites into twig.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EBranch 8.x-1.x\u003C\/strong\u003E. Legacy branch and a mirror of the 2.x branch. Last version to support Drupal 8 is 8.x-1.10.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Cstrong\u003EBranch 7.x-1.x\u003C\/strong\u003E: \u003Cstrong\u003EDrupal 7 only\u003C\/strong\u003E, replaced by Branch 8.x-1.x for Drupal 9 compatibility - no further development.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2\u003EAlternative modules\u003C\/h2\u003E\r\nYou could also consider spam filtering or hybrid solutions like:\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/antispam\u0022\u003EThe AntiSpam module\u003C\/a\u003E, is the successor of the Akismet module, and it provides spam protection to your Drupal site using external antispam service like Akismet, TypePad and Defensio.\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/spam\u0022\u003EThe spam module\u003C\/a\u003E provides spam filtering and related tools\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/honeypot\u0022\u003EThe honeypot module\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003E\u003Cem\u003EAdd challenge-response tests to user-facing forms on your site to protect against spambot submissions. Other CAPTCHA types are supported via additional modules.\u003C\/em\u003E\u003C\/p\u003E\n\u003Cp\u003EA CAPTCHA is a challenge-response test most often placed within web forms to determine whether the user is human. The purpose of CAPTCHA is to block form submissions by spambots, which are automated scripts that post spam content everywhere they can. The CAPTCHA module provides this feature to virtually any user facing web form on a Drupal site.  \u003C\/p\u003E\n\u003Ch3 id=\u0022additional-captcha-modules\u0022\u003EAdditional CAPTCHA Modules\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/friendlycaptcha\u0022 rel=\u0022nofollow\u0022\u003EFriendly Captcha\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/altcha\u0022 rel=\u0022nofollow\u0022\u003EALTCHA Captcha\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/turnstile\u0022 rel=\u0022nofollow\u0022\u003ECloudflare turnstile\u003C\/a\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/recaptcha\u0022 rel=\u0022nofollow\u0022\u003EreCAPTCHA\u003C\/a\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/riddler\u0022 rel=\u0022nofollow\u0022\u003ECaptcha Riddler\u003C\/a\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/captcha_after\u0022 rel=\u0022nofollow\u0022\u003ECAPTCHA after\u003C\/a\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/nocaptcha_recaptcha\u0022 rel=\u0022nofollow\u0022\u003ENocaptcha Recaptcha\u003C\/a\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/draggable_captcha\u0022 rel=\u0022nofollow\u0022\u003EDraggable CAPTCHA\u003C\/a\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/captcha_pack\u0022 rel=\u0022nofollow\u0022\u003ECAPTCHA Pack\u003C\/a\u003E Only for Drupal 7 and Not maintained after 23 October 2011.\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/textcaptcha\u0022 rel=\u0022nofollow\u0022\u003EText CAPTCHA\u003C\/a\u003E Only for Drupal 7 and Not maintained after 24 November 2014.\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/hidden_captcha\u0022 rel=\u0022nofollow\u0022\u003EHidden CAPTCHA\u003C\/a\u003E Only for Drupal 7 and Not maintained after 29 Mar 2018.\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/keycaptcha\u0022 rel=\u0022nofollow\u0022\u003EKeyCAPTCHA\u003C\/a\u003E Only for Drupal 7 and Not maintained after 5 May 2012.\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/image_captcha_refresh\u0022 rel=\u0022nofollow\u0022\u003EImage CAPTCHA refresh\u003C\/a\u003E Only for Drupal 7 and Not maintained after 9 November 2015.\n\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/egglue_captcha\u0022 rel=\u0022nofollow\u0022\u003EEgglue Semantic CAPTCHA\u003C\/a\u003E Only for Drupal 6 and Not maintained after 19 April 2017.\n\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u003Csmall\u003E(Last update: 2025-09-23)\u003C\/small\u003E\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022version-information\u0022\u003EVersion Information\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003EBranch 2.x\u003C\/strong\u003E: Actively maintained version with bug fixes and general improvements, e.g. twig templates). Drupal 9.4+ only! Upgrade path from 8.x-1.x, but please check your output and move custom template overwrites into twig.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EBranch 8.x-1.x\u003C\/strong\u003E. Legacy branch and a mirror of the 2.x branch. Last version to support Drupal 8 is 8.x-1.10.\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EBranch 7.x-1.x\u003C\/strong\u003E: \u003Cstrong\u003EDrupal 7 only\u003C\/strong\u003E, replaced by Branch 8.x-1.x for Drupal 9 compatibility - no further development.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022alternative-modules\u0022\u003EAlternative modules\u003C\/h2\u003E\n\u003Cp\u003EYou could also consider spam filtering or hybrid solutions like:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/antispam\u0022 rel=\u0022nofollow\u0022\u003EThe AntiSpam module\u003C\/a\u003E, is the successor of the Akismet module, and it provides spam protection to your Drupal site using external antispam service like Akismet, TypePad and Defensio.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/spam\u0022 rel=\u0022nofollow\u0022\u003EThe spam module\u003C\/a\u003E provides spam filtering and related tools\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022http:\/\/drupal.org\/project\/honeypot\u0022 rel=\u0022nofollow\u0022\u003EThe honeypot module\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Add challenge-response tests to user-facing forms on your site to protect against spambot submissions. Further CAPTCHA types are supported via contrib modules."},"field_active_installs":"{\u00228.x-1.x\u0022:45908,\u00222.x\u0022:58,\u00222.0.x\u0022:120536}","field_active_installs_total":166502,"field_composer_namespace":"drupal\/captcha","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/captcha\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"captcha","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"c7047c8f-c3cc-4139-bee4-6561bce7eb73","meta":{"drupal_internal__target_id":25523}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/382b0e03-5b05-4681-9eea-1b845157f1a3\/uid?resourceVersion=id%3A20005162"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/382b0e03-5b05-4681-9eea-1b845157f1a3\/relationships\/uid?resourceVersion=id%3A20005162"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"219c1cf2-dd7f-474b-9dd5-a26643fbc699","meta":{"drupal_internal__target_id":27276}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/382b0e03-5b05-4681-9eea-1b845157f1a3\/field_development_status?resourceVersion=id%3A20005162"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/382b0e03-5b05-4681-9eea-1b845157f1a3\/relationships\/field_development_status?resourceVersion=id%3A20005162"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"cee844e2-68b5-489d-bafa-6a0ade2b6dfd","meta":{"drupal_internal__target_id":27273}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/382b0e03-5b05-4681-9eea-1b845157f1a3\/field_maintenance_status?resourceVersion=id%3A20005162"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/382b0e03-5b05-4681-9eea-1b845157f1a3\/relationships\/field_maintenance_status?resourceVersion=id%3A20005162"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"24830916-5c07-4446-89de-960915f87bf6","meta":{"drupal_internal__target_id":199}},{"type":"taxonomy_term--module_categories","id":"8117d8b0-f171-414d-b384-0bafa81bef9f","meta":{"drupal_internal__target_id":193}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/382b0e03-5b05-4681-9eea-1b845157f1a3\/field_module_categories?resourceVersion=id%3A20005162"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/382b0e03-5b05-4681-9eea-1b845157f1a3\/relationships\/field_module_categories?resourceVersion=id%3A20005162"}}},"field_project_images":{"data":[{"type":"file--file","id":"01777060-f8c3-44bc-84e3-46383fd85c9e","meta":{"alt":"Drupal CAPTCHA module","title":null,"width":512,"height":512,"drupal_internal__target_id":16801}},{"type":"file--file","id":"d6c4296c-a6be-44bb-9932-2bc46ef698ba","meta":{"alt":"Image CAPTCHA example","title":null,"width":239,"height":290,"drupal_internal__target_id":1904}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/382b0e03-5b05-4681-9eea-1b845157f1a3\/field_project_images?resourceVersion=id%3A20005162"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/382b0e03-5b05-4681-9eea-1b845157f1a3\/relationships\/field_project_images?resourceVersion=id%3A20005162"}}}}},{"type":"node--project_module","id":"b99d3921-8160-4361-8455-cddacf9a60ba","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b99d3921-8160-4361-8455-cddacf9a60ba?resourceVersion=id%3A20010257"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b99d3921-8160-4361-8455-cddacf9a60ba?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":640962,"status":true,"title":"Better Exposed Filters","created":"2009-11-23T22:19:09+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"The Better Exposed Filters module replaces the Views\u0027 default single- or multi-select boxes with radio buttons or checkboxes, respectively. Description fields and Select All\/None links can be added to exposed filters to make for a better user experience.\r\nViews Filters is a powerful tool to refine the results returned by a given view. When you expose a filter, you allow the user to interact with the view making it easy to build a customized, advanced search. For example, exposing the node type field as a filter lets your site visitor limit their search queries to just blog entries. Better Exposed Filters gives you greater control over the rendering of exposed filters.\r\n\r\nWhy use this module? Because it provides a better user experience than the default option. Try telling a client that they should click on an option, then scroll to the next option and ctrl+click on it. Don\u0027t just click \u0027cause you\u0027ll lose your first selection. Oh, and ctrl+click again to unselect an option... Yeah, not user-friendly.\r\n\r\n\u003Cstrong\u003EPeople understand checkboxes and radio buttons.\u003C\/strong\u003E\r\n\r\nPLEASE RUN THIS ON A LOCAL\/TEST ENVIRONMENT FIRST.\r\n\r\n\u003Ch3\u003EBranch support\u003C\/h3\u003E\r\n\u003Cdiv class=\u0022note-warning\u0022\u003E\r\n\u003Cp\u003E7.1.x = Active development branch, all fixes need to land here first\u003C\/p\u003E\r\n\u003Cp\u003E7.0.x = Still supported, bug fixes mainly\u003C\/p\u003E\r\n\u003Cp\u003E6.0.x = Security fixes only\u003C\/p\u003E\r\n\u003C\/div\u003E\r\n\r\n\u003Ch3\u003EIntegrations\u003C\/h3\u003E\r\nModules that provide additional BEF widgets or support for exposed filters in general:\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/select2\u0022\u003ESelect2\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/selective_better_exposed_filters\u0022\u003ESelect Better Exposed Filters\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/configurable_views_filter_block\u0022\u003EConfigurable Views Filter Block\u003C\/a\u003E\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/views_dependent_filters\u0022\u003EViews Dependent Filters\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2\u003EWhat else can I do with BEF?\u003C\/h2\u003E\r\nThe BEF handbook page provides some basic recipes making exposed filters a much better user experience.\r\n\u003Cul\u003E\r\n  \u003Cli\u003EAdd help text for each exposed filter\u003C\/li\u003E\r\n  \u003Cli\u003ETame long lists with scrollable checkbox\/radio button lists or select all\/none links\u003C\/li\u003E\r\n  \u003Cli\u003EProvide instant feedback by updating the View using AJAX whenever an exposed filter is changed\u003C\/li\u003E\r\n  \u003Cli\u003EUse the jQuery Slider widget for greater-than, less-than or in-between types of filters\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nIf you\u0027ve got any ideas not covered on the handbook page, add a feature request to the issue queue. You can also rate this module on DrupalModules.\r\n\r\n\r\n\u003Ch2\u003E\u003Ca name =\u0022note\u0022 \/\u003ERemembering mikeker - A note on module ownership \u0026 maintenance.\u003C\/h2\u003E\r\nIn November of 2017, the original author and long-time maintainer of the Better Exposed Filters module Mike Keran (mikeker) was diagnosed with inoperable cancer. He died on January 1st, 2018. Mike was an amazing human, and his death is a great loss to us all. He gave selflessly of his time to several communities including Drupal, and he brought his joy and passion with him everywhere. In honor of his memory, and in order to ensure that Mike\u2019s contributions to Drupal are maintained, several members of the Seattle Drupal community have gotten together and offered to be the maintainers of BEF. We intend to advance the D8 branch where we can and to manage bug fixes and security patches for D7 as needed. Please be patient with us while we work to understand Mike\u2019s intent and the code he left behind.\r\n","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EThe Better Exposed Filters module replaces the Views\u0027 default single- or multi-select boxes with radio buttons or checkboxes, respectively. Description fields and Select All\/None links can be added to exposed filters to make for a better user experience.\u003Cbr\u003E\nViews Filters is a powerful tool to refine the results returned by a given view. When you expose a filter, you allow the user to interact with the view making it easy to build a customized, advanced search. For example, exposing the node type field as a filter lets your site visitor limit their search queries to just blog entries. Better Exposed Filters gives you greater control over the rendering of exposed filters.\u003C\/p\u003E\n\u003Cp\u003EWhy use this module? Because it provides a better user experience than the default option. Try telling a client that they should click on an option, then scroll to the next option and ctrl+click on it. Don\u0027t just click \u0027cause you\u0027ll lose your first selection. Oh, and ctrl+click again to unselect an option... Yeah, not user-friendly.\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EPeople understand checkboxes and radio buttons.\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cp\u003EPLEASE RUN THIS ON A LOCAL\/TEST ENVIRONMENT FIRST.\u003C\/p\u003E\n\u003Ch3 id=\u0022branch-support\u0022\u003EBranch support\u003C\/h3\u003E\n\u003Cdiv class=\u0022note-warning\u0022\u003E\n\u003Cp\u003E7.1.x = Active development branch, all fixes need to land here first\u003C\/p\u003E\n\u003Cp\u003E7.0.x = Still supported, bug fixes mainly\u003C\/p\u003E\n\u003Cp\u003E6.0.x = Security fixes only\u003C\/p\u003E\n\u003C\/div\u003E\n\u003Ch3 id=\u0022integrations\u0022\u003EIntegrations\u003C\/h3\u003E\n\u003Cp\u003EModules that provide additional BEF widgets or support for exposed filters in general:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/select2\u0022 rel=\u0022nofollow\u0022\u003ESelect2\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/selective_better_exposed_filters\u0022 rel=\u0022nofollow\u0022\u003ESelect Better Exposed Filters\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/configurable_views_filter_block\u0022 rel=\u0022nofollow\u0022\u003EConfigurable Views Filter Block\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/views_dependent_filters\u0022 rel=\u0022nofollow\u0022\u003EViews Dependent Filters\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022what-else-can-i-do-with-bef\u0022\u003EWhat else can I do with BEF?\u003C\/h2\u003E\n\u003Cp\u003EThe BEF handbook page provides some basic recipes making exposed filters a much better user experience.\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EAdd help text for each exposed filter\u003C\/li\u003E\n\u003Cli\u003ETame long lists with scrollable checkbox\/radio button lists or select all\/none links\u003C\/li\u003E\n\u003Cli\u003EProvide instant feedback by updating the View using AJAX whenever an exposed filter is changed\u003C\/li\u003E\n\u003Cli\u003EUse the jQuery Slider widget for greater-than, less-than or in-between types of filters\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EIf you\u0027ve got any ideas not covered on the handbook page, add a feature request to the issue queue. You can also rate this module on DrupalModules.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022remembering-mikeker-a-note-on-module-ownership-amp-maintenance\u0022\u003ERemembering mikeker - A note on module ownership \u0026amp; maintenance.\u003C\/h2\u003E\n\u003Cp\u003EIn November of 2017, the original author and long-time maintainer of the Better Exposed Filters module Mike Keran (mikeker) was diagnosed with inoperable cancer. He died on January 1st, 2018. Mike was an amazing human, and his death is a great loss to us all. He gave selflessly of his time to several communities including Drupal, and he brought his joy and passion with him everywhere. In honor of his memory, and in order to ensure that Mike\u2019s contributions to Drupal are maintained, several members of the Seattle Drupal community have gotten together and offered to be the maintainers of BEF. We intend to advance the D8 branch where we can and to manage bug fixes and security patches for D7 as needed. Please be patient with us while we work to understand Mike\u2019s intent and the code he left behind.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Replaces Views\u0027 default single\/multi-select boxes with radio buttons or checkboxes, respectively. You can add fields to the exposed filters to improve the user experience."},"field_active_installs":"{\u00228.x-3.x\u0022:3581,\u00228.x-4.x\u0022:1905,\u00228.x-5.x\u0022:12180,\u00226.0.x\u0022:53865,\u00227.0.x\u0022:24573,\u00227.1.x\u0022:52836}","field_active_installs_total":148940,"field_composer_namespace":"drupal\/better_exposed_filters","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/better_exposed_filters\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"better_exposed_filters","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"697a4f51-935c-4e22-9998-0b9e77f384b6","meta":{"drupal_internal__target_id":352283}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b99d3921-8160-4361-8455-cddacf9a60ba\/uid?resourceVersion=id%3A20010257"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b99d3921-8160-4361-8455-cddacf9a60ba\/relationships\/uid?resourceVersion=id%3A20010257"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b99d3921-8160-4361-8455-cddacf9a60ba\/field_development_status?resourceVersion=id%3A20010257"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b99d3921-8160-4361-8455-cddacf9a60ba\/relationships\/field_development_status?resourceVersion=id%3A20010257"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b99d3921-8160-4361-8455-cddacf9a60ba\/field_maintenance_status?resourceVersion=id%3A20010257"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b99d3921-8160-4361-8455-cddacf9a60ba\/relationships\/field_maintenance_status?resourceVersion=id%3A20010257"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"abf23828-f269-4d39-8589-b731209eb154","meta":{"drupal_internal__target_id":186}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b99d3921-8160-4361-8455-cddacf9a60ba\/field_module_categories?resourceVersion=id%3A20010257"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b99d3921-8160-4361-8455-cddacf9a60ba\/relationships\/field_module_categories?resourceVersion=id%3A20010257"}}},"field_project_images":{"data":[{"type":"file--file","id":"d681bbe2-89b1-40e8-95aa-20d65a39c685","meta":{"alt":"BEF Basic Settings","title":null,"width":2560,"height":1374,"drupal_internal__target_id":20184}},{"type":"file--file","id":"c656b479-878c-43dc-a76f-9928edcd6fcd","meta":{"alt":"BEF Form Settings","title":null,"width":2560,"height":1373,"drupal_internal__target_id":20185}},{"type":"file--file","id":"8525328c-d554-4d16-9250-03f84e4269ca","meta":{"alt":"BEF Filter Settings","title":null,"width":2560,"height":1374,"drupal_internal__target_id":20186}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b99d3921-8160-4361-8455-cddacf9a60ba\/field_project_images?resourceVersion=id%3A20010257"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b99d3921-8160-4361-8455-cddacf9a60ba\/relationships\/field_project_images?resourceVersion=id%3A20010257"}}}}},{"type":"node--project_module","id":"3757709f-8c87-4abf-8006-d943834102f9","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9?resourceVersion=id%3A20033103"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":2376659,"status":true,"title":"Crop API","created":"2014-11-17T15:21:17+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"Provides basic API for image cropping. This module won\u0027t do much by itself. Users should pick one of UI modules that utilize this API:\r\n\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022\/project\/image_widget_crop\u0022\u003EImage widget crop\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022\/project\/focal_point\u0022\u003EFocal point\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003ETechnical details\u003C\/h3\u003E\r\n\r\nInitial discussion can be found on \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2368945\u0022\u003Emanual crop issue queue\u003C\/a\u003E.\r\n\r\nCrop API logo was created by \u003Ca href=\u0022http:\/\/drupal.org\/u\/woprrr\u0022\u003E@woprrr\u003C\/a\u003E.","format":"1","processed":"\u003Cp\u003EProvides basic API for image cropping. This module won\u0027t do much by itself. Users should pick one of UI modules that utilize this API:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/image_widget_crop\u0022 rel=\u0022nofollow\u0022\u003EImage widget crop\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/project\/focal_point\u0022 rel=\u0022nofollow\u0022\u003EFocal point\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3\u003ETechnical details\u003C\/h3\u003E\n\u003Cp\u003EInitial discussion can be found on \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2368945\u0022 rel=\u0022nofollow\u0022\u003Emanual crop issue queue\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cp\u003ECrop API logo was created by \u003Ca href=\u0022http:\/\/drupal.org\/u\/woprrr\u0022 rel=\u0022nofollow\u0022\u003E@woprrr\u003C\/a\u003E.\u003C\/p\u003E","summary":""},"field_active_installs":"{\u00228.x-1.x\u0022:3306,\u00228.x-2.x\u0022:140979}","field_active_installs_total":144285,"field_composer_namespace":"drupal\/crop","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/crop\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"crop","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"45aa7efc-40a7-4cd3-a412-723ef2d49285","meta":{"drupal_internal__target_id":3260690}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/uid?resourceVersion=id%3A20033103"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/relationships\/uid?resourceVersion=id%3A20033103"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/field_development_status?resourceVersion=id%3A20033103"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/relationships\/field_development_status?resourceVersion=id%3A20033103"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"09a378d2-fd35-41f3-bff0-10d9801741a4","meta":{"drupal_internal__target_id":27269}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/field_maintenance_status?resourceVersion=id%3A20033103"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/relationships\/field_maintenance_status?resourceVersion=id%3A20033103"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","meta":{"drupal_internal__target_id":187}},{"type":"taxonomy_term--module_categories","id":"086cebcf-200f-4c34-886e-f9921919b292","meta":{"drupal_internal__target_id":189}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","meta":{"drupal_internal__target_id":192}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/field_module_categories?resourceVersion=id%3A20033103"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/relationships\/field_module_categories?resourceVersion=id%3A20033103"}}},"field_project_images":{"data":[{"type":"file--file","id":"ad73639c-9a26-4617-8877-4e5e64583277","meta":{"alt":"Crop API logo.","title":null,"width":512,"height":512,"drupal_internal__target_id":17452}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/field_project_images?resourceVersion=id%3A20033103"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/3757709f-8c87-4abf-8006-d943834102f9\/relationships\/field_project_images?resourceVersion=id%3A20033103"}}}}},{"type":"node--project_module","id":"359488d8-e98b-4e47-8905-3bb59a217567","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/359488d8-e98b-4e47-8905-3bb59a217567?resourceVersion=id%3A20011003"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/359488d8-e98b-4e47-8905-3bb59a217567?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":790418,"status":true,"title":"Search API","created":"2010-05-05T13:10:16+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"\u003Ch2\u003EWhat does it do?\u003C\/h2\u003E\r\n\r\nThis module provides a framework for easily creating searches on any entity known to Drupal, using any kind of search engine. For site administrators, it is a great alternative to other search solutions, since it already incorporates facetting support and the ability to use the \u003Ca href=\u0022\/project\/views\u0022\u003EViews module\u003C\/a\u003E for displaying search results, filters, etc. Also, with the \u003Ca href=\u0022\/project\/search_api_solr\u0022\u003EApache Solr integration\u003C\/a\u003E, a high-performance search engine is available for this module.\r\n\r\nDevelopers, on the other hand, will be impressed by the large flexibility and numerous ways of extension the module provides. Hence, the growing number of \u003Ca href=\u0022\/docs\/contributed-modules\/search-api\/extension-modules\u0022\u003Eadditional contrib modules\u003C\/a\u003E, providing additional functionality or helping users customize some aspects of the search process.\r\n\r\n\u003Ch2\u003EExamples \u0026 Demo\u003C\/h2\u003E\r\nThe prime example of a site using this module is \u003Ca href=\u0022\/\u0022\u003Edrupal.org\u003C\/a\u003E itself \u2013 the Search API, along with the \u003Ca href=\u0022\/project\/search_api_db\u0022\u003Edatabase backend\u003C\/a\u003E and \u003Ca href=\u0022\/project\/views\u0022\u003EViews\u003C\/a\u003E, is used to generate the issue queue listings.\r\n\r\n\u003C!--break--\u003E\r\n\r\n\u003Ch2\u003ENote on security\u003C\/h2\u003E\r\nIn general, the Search API doesn\u0027t provide any kind of access restrictions (as this cannot be done on a generic level). It is therefore your responsibility to take care that only accessible items are indexed or results displayed (e.g., by using appropriate filters).\r\nThere is, however, built-in support for node access checks via the \u003Ca href=\u0022\/node\/1254452#search_api_node_access\u0022\u003ENode access\u003C\/a\u003E data alteration (q.v. for details). Also, the \u003Cem\u003ESearch views\u003C\/em\u003E module contains an option to do additional access checks on all entities in search views.\r\n\r\n\u003Ch2\u003EAdditional modules\u003C\/h2\u003E\r\nAt the moment, this project contains, apart from the core API module, the following extension module (in the version for Drupal 8+):\r\n\r\n\u003Ch3\u003EDatabase search\u003C\/h3\u003E\r\nThis module provides a ready-to-use search backend that indexes and searches content using Drupal\u0027s own database. It is mainly meant for testing purposes and for smaller sites, larger sites will usually want to use a more powerful backend (like Solr or Elasticsearch). Also provided is the \u0022Database Search Defaults\u0022 module which provides a complete pre-configured content search when installed.\r\n\r\n\u003Ch2\u003ETutorials and screencasts\u003C\/h2\u003E\r\nThe \u003Ca href=\u0022\/docs\/8\/modules\/search-api\/getting-started\u0022\u003EGetting started\u003C\/a\u003E documentation page and the \u003Ca href=\u0022\/docs\/8\/modules\/search-api\/presentations-and-external-material\u0022\u003Eexternal material available\u003C\/a\u003E (screencasts, etc.) might provide a good introduction to the module.\r\n\r\n\u003Ch2\u003EOther available backends and extensions\u003C\/h2\u003E\r\n\r\nPlease see the list of \u003Ca href=\u0022\/project\/search_api\/ecosystem\u0022\u003ESearch API Ecosystem modules\u003C\/a\u003E and curated list of \u003Ca href=\u0022\/docs\/contributed-modules\/search-api\/extension-modules\u0022\u003EExtension modules\u003C\/a\u003E. If you maintain or encounter a great Search API module, feel free to add it.\r\n\r\n\u003Ch2\u003ERequirements\u003C\/h2\u003E\r\nTo use the Views integration, you\u0027ll (of course) also need the \u003Ca href=\u0022\/project\/entity\u0022\u003EViews\u003C\/a\u003E module. For facets, you\u0027ll need the \u003Ca href=\u0022\/project\/facets\u0022\u003EFacets\u003C\/a\u003E module.\r\nFurthermore, you\u0027ll need to enable at least one \u003Ca href=\u0022\/docs\/contributed-modules\/search-api\/extension-modules#service-classes\u0022\u003Emodule that provides a search backend\u003C\/a\u003E.\r\n\r\n\u003Ch2\u003EInformation for developers\u003C\/h2\u003E\r\nExtensive documentation for other developers, who might want to extend the framework\u0027s capabilities themselves, is available. It is partly included in the module itself (in \u003Ccode\u003Esearch_api.api.php\u003C\/code\u003E, in \u003Ccode\u003EREADME.txt\u003C\/code\u003E and directly in the relevant classes and interfaces) and partly in the online documentation (linked in the sidebar).\r\nIf you are trying to implement some extension and are stuck, please don\u0027t hesitate to ask in the module\u0027s issue queue. Please also add your module to the \u003Ca href=\u0022\/docs\/contributed-modules\/search-api\/extension-modules\u0022\u003Elist of extension modules\u003C\/a\u003E once it\u0027s finished, if it is generally useful.\r\n\r\nAll developers working in the Search API ecosystem are advised to keep an eye on [#1188562] and \u003Ca href=\u0022\/list-changes\/search_api\u0022\u003Ethe module\u0027s change records\u003C\/a\u003E for important updates. (Could also contain useful information for site builders.)\r\nAlso, you can find us in the \u003Ca href=\u0022https:\/\/app.slack.com\/client\/T06GX3JTS\/C3E9QDZ5M\u0022\u003E#search\u003C\/a\u003E channel on Slack.\r\n\r\n\u003Ch2\u003ESponsors\u003C\/h2\u003E\r\n\r\nIf you are interested in sponsoring a particular feature or new related module, please \u003Ca href=\u0022\/user\/205582\/contact\u0022\u003Econtact drunken_monkey\u003C\/a\u003E. He is also available for consulting and custom development.","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022what-does-it-do\u0022\u003EWhat does it do?\u003C\/h2\u003E\n\u003Cp\u003EThis module provides a framework for easily creating searches on any entity known to Drupal, using any kind of search engine. For site administrators, it is a great alternative to other search solutions, since it already incorporates facetting support and the ability to use the \u003Ca href=\u0022\/project\/views\u0022 rel=\u0022nofollow\u0022\u003EViews module\u003C\/a\u003E for displaying search results, filters, etc. Also, with the \u003Ca href=\u0022\/project\/search_api_solr\u0022 rel=\u0022nofollow\u0022\u003EApache Solr integration\u003C\/a\u003E, a high-performance search engine is available for this module.\u003C\/p\u003E\n\u003Cp\u003EDevelopers, on the other hand, will be impressed by the large flexibility and numerous ways of extension the module provides. Hence, the growing number of \u003Ca href=\u0022\/docs\/contributed-modules\/search-api\/extension-modules\u0022 rel=\u0022nofollow\u0022\u003Eadditional contrib modules\u003C\/a\u003E, providing additional functionality or helping users customize some aspects of the search process.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022examples-amp-demo\u0022\u003EExamples \u0026amp; Demo\u003C\/h2\u003E\n\u003Cp\u003EThe prime example of a site using this module is \u003Ca href=\u0022\/\u0022 rel=\u0022nofollow\u0022\u003Edrupal.org\u003C\/a\u003E itself \u2013 the Search API, along with the \u003Ca href=\u0022\/project\/search_api_db\u0022 rel=\u0022nofollow\u0022\u003Edatabase backend\u003C\/a\u003E and \u003Ca href=\u0022\/project\/views\u0022 rel=\u0022nofollow\u0022\u003EViews\u003C\/a\u003E, is used to generate the issue queue listings.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022note-on-security\u0022\u003ENote on security\u003C\/h2\u003E\n\u003Cp\u003EIn general, the Search API doesn\u0027t provide any kind of access restrictions (as this cannot be done on a generic level). It is therefore your responsibility to take care that only accessible items are indexed or results displayed (e.g., by using appropriate filters).\u003Cbr\u003E\nThere is, however, built-in support for node access checks via the \u003Ca href=\u0022\/node\/1254452#search_api_node_access\u0022 rel=\u0022nofollow\u0022\u003ENode access\u003C\/a\u003E data alteration (q.v. for details). Also, the \u003Cem\u003ESearch views\u003C\/em\u003E module contains an option to do additional access checks on all entities in search views.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022additional-modules\u0022\u003EAdditional modules\u003C\/h2\u003E\n\u003Cp\u003EAt the moment, this project contains, apart from the core API module, the following extension module (in the version for Drupal 8+):\u003C\/p\u003E\n\u003Ch3 id=\u0022database-search\u0022\u003EDatabase search\u003C\/h3\u003E\n\u003Cp\u003EThis module provides a ready-to-use search backend that indexes and searches content using Drupal\u0027s own database. It is mainly meant for testing purposes and for smaller sites, larger sites will usually want to use a more powerful backend (like Solr or Elasticsearch). Also provided is the \u0022Database Search Defaults\u0022 module which provides a complete pre-configured content search when installed.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022tutorials-and-screencasts\u0022\u003ETutorials and screencasts\u003C\/h2\u003E\n\u003Cp\u003EThe \u003Ca href=\u0022\/docs\/8\/modules\/search-api\/getting-started\u0022 rel=\u0022nofollow\u0022\u003EGetting started\u003C\/a\u003E documentation page and the \u003Ca href=\u0022\/docs\/8\/modules\/search-api\/presentations-and-external-material\u0022 rel=\u0022nofollow\u0022\u003Eexternal material available\u003C\/a\u003E (screencasts, etc.) might provide a good introduction to the module.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022other-available-backends-and-extensions\u0022\u003EOther available backends and extensions\u003C\/h2\u003E\n\u003Cp\u003EPlease see the list of \u003Ca href=\u0022\/project\/search_api\/ecosystem\u0022 rel=\u0022nofollow\u0022\u003ESearch API Ecosystem modules\u003C\/a\u003E and curated list of \u003Ca href=\u0022\/docs\/contributed-modules\/search-api\/extension-modules\u0022 rel=\u0022nofollow\u0022\u003EExtension modules\u003C\/a\u003E. If you maintain or encounter a great Search API module, feel free to add it.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022requirements\u0022\u003ERequirements\u003C\/h2\u003E\n\u003Cp\u003ETo use the Views integration, you\u0027ll (of course) also need the \u003Ca href=\u0022\/project\/entity\u0022 rel=\u0022nofollow\u0022\u003EViews\u003C\/a\u003E module. For facets, you\u0027ll need the \u003Ca href=\u0022\/project\/facets\u0022 rel=\u0022nofollow\u0022\u003EFacets\u003C\/a\u003E module.\u003Cbr\u003E\nFurthermore, you\u0027ll need to enable at least one \u003Ca href=\u0022\/docs\/contributed-modules\/search-api\/extension-modules#service-classes\u0022 rel=\u0022nofollow\u0022\u003Emodule that provides a search backend\u003C\/a\u003E.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022information-for-developers\u0022\u003EInformation for developers\u003C\/h2\u003E\n\u003Cp\u003EExtensive documentation for other developers, who might want to extend the framework\u0027s capabilities themselves, is available. It is partly included in the module itself (in \u003Ccode\u003Esearch_api.api.php\u003C\/code\u003E, in \u003Ccode\u003EREADME.txt\u003C\/code\u003E and directly in the relevant classes and interfaces) and partly in the online documentation (linked in the sidebar).\u003Cbr\u003E\nIf you are trying to implement some extension and are stuck, please don\u0027t hesitate to ask in the module\u0027s issue queue. Please also add your module to the \u003Ca href=\u0022\/docs\/contributed-modules\/search-api\/extension-modules\u0022 rel=\u0022nofollow\u0022\u003Elist of extension modules\u003C\/a\u003E once it\u0027s finished, if it is generally useful.\u003C\/p\u003E\n\u003Cp\u003EAll developers working in the Search API ecosystem are advised to keep an eye on [#1188562] and \u003Ca href=\u0022\/list-changes\/search_api\u0022 rel=\u0022nofollow\u0022\u003Ethe module\u0027s change records\u003C\/a\u003E for important updates. (Could also contain useful information for site builders.)\u003Cbr\u003E\nAlso, you can find us in the \u003Ca href=\u0022https:\/\/app.slack.com\/client\/T06GX3JTS\/C3E9QDZ5M\u0022 rel=\u0022nofollow\u0022\u003E#search\u003C\/a\u003E channel on Slack.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022sponsors\u0022\u003ESponsors\u003C\/h2\u003E\n\u003Cp\u003EIf you are interested in sponsoring a particular feature or new related module, please \u003Ca href=\u0022\/user\/205582\/contact\u0022 rel=\u0022nofollow\u0022\u003Econtact drunken_monkey\u003C\/a\u003E. He is also available for consulting and custom development.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Go beyond core\u0027s search functionality for content, users, and other entities. Display search results and integrate with external search backends (Solr, ElasticSearch, Algolia) via additional modules."},"field_active_installs":"{\u00228.x-1.x\u0022:136562}","field_active_installs_total":136562,"field_composer_namespace":"drupal\/search_api","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":{"value":"\u003Ch3 id=\u0022summary-problem-motivation\u0022\u003EProblem\/Motivation\u003C\/h3\u003E\r\n\r\n\r\n\u003Ch4 id=\u0022summary-steps-reproduce\u0022\u003ESteps to reproduce\u003C\/h4\u003E\r\n\r\n\r\n\u003Ch3 id=\u0022summary-proposed-resolution\u0022\u003EProposed resolution\u003C\/h3\u003E\r\n\r\n\r\n\u003Ch3 id=\u0022summary-remaining-tasks\u0022\u003ERemaining tasks\u003C\/h3\u003E\r\n\r\n","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Ch3 id=\u0022summary-problem-motivation-01\u0022\u003EProblem\/Motivation\u003C\/h3\u003E\n\u003Ch4 id=\u0022summary-steps-reproduce-01\u0022\u003ESteps to reproduce\u003C\/h4\u003E\n\u003Ch3 id=\u0022summary-proposed-resolution-01\u0022\u003EProposed resolution\u003C\/h3\u003E\n\u003Ch3 id=\u0022summary-remaining-tasks-01\u0022\u003ERemaining tasks\u003C\/h3\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E"},"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/search_api\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"search_api","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"1bdec67e-37de-4c05-90b0-a70ef5152697","meta":{"drupal_internal__target_id":205582}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/359488d8-e98b-4e47-8905-3bb59a217567\/uid?resourceVersion=id%3A20011003"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/359488d8-e98b-4e47-8905-3bb59a217567\/relationships\/uid?resourceVersion=id%3A20011003"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/359488d8-e98b-4e47-8905-3bb59a217567\/field_development_status?resourceVersion=id%3A20011003"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/359488d8-e98b-4e47-8905-3bb59a217567\/relationships\/field_development_status?resourceVersion=id%3A20011003"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/359488d8-e98b-4e47-8905-3bb59a217567\/field_maintenance_status?resourceVersion=id%3A20011003"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/359488d8-e98b-4e47-8905-3bb59a217567\/relationships\/field_maintenance_status?resourceVersion=id%3A20011003"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"8d7b9b34-6ae2-4e9b-b3a2-f0bb3109500a","meta":{"drupal_internal__target_id":196}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/359488d8-e98b-4e47-8905-3bb59a217567\/field_module_categories?resourceVersion=id%3A20011003"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/359488d8-e98b-4e47-8905-3bb59a217567\/relationships\/field_module_categories?resourceVersion=id%3A20011003"}}},"field_project_images":{"data":[{"type":"file--file","id":"27598096-d0fc-4b5f-bc26-3693e6d0e4af","meta":{"alt":"","title":null,"width":1024,"height":608,"drupal_internal__target_id":3047}},{"type":"file--file","id":"74efd6e2-fe40-40b8-87ed-3484204a72ba","meta":{"alt":"","title":null,"width":1268,"height":958,"drupal_internal__target_id":20679}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/359488d8-e98b-4e47-8905-3bb59a217567\/field_project_images?resourceVersion=id%3A20011003"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/359488d8-e98b-4e47-8905-3bb59a217567\/relationships\/field_project_images?resourceVersion=id%3A20011003"}}}}},{"type":"node--project_module","id":"32033d52-4895-4b2f-9615-8d588b171640","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/32033d52-4895-4b2f-9615-8d588b171640?resourceVersion=id%3A20036255"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/32033d52-4895-4b2f-9615-8d588b171640?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":2561489,"status":true,"title":"Simple XML sitemap","created":"2015-09-02T02:32:31+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"Every webpage needs an automatic \u003Ca href=\u0022https:\/\/en.wikipedia.org\/wiki\/Sitemaps\u0022 target=\u0027_blank\u0027\u003EXML sitemap generator\u003C\/a\u003E for SEO reasons. Sitemaps generated by this module adhere to the new Google standard regarding multilingual content by creating \u003Ca href=\u0022https:\/\/developers.google.com\/search\/docs\/specialty\/international\/localized-versions#sitemap\u0022 target=\u0027_blank\u0027\u003Ehreflang sitemaps\u003C\/a\u003E and \u003Ca href=\u0022https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/image-sitemaps\u0022\u003Eimage sitemaps\u003C\/a\u003E - Googlebots will thank you later.\r\n\r\nIn addition to the default hreflang sitemaps, the module\u0027s API allows creating and publishing of custom sitemaps with arbitrary content, as well as submitting those sitemaps to search engines like Google. For instant indexation of content, the \u003Ca href=\u0022https:\/\/www.indexnow.org\/\u0022\u003EIndexNow protocol\u003C\/a\u003E (supported by Bing and Yandex) has been implemented in 4.x (\u003Cem\u003Esimple_sitemap_engines\u003C\/em\u003E submodule).\r\n\r\n\u003C!--break--\u003E\r\n\r\n\u003Ch2\u003EOverview\u003C\/h2\u003E\r\nThe module generates multilingual sitemaps for entities, views and custom links. Out of the box it supports most of Drupal\u0027s content entity types including:\r\n\u003Cul\u003E\r\n  \u003Cli\u003Enodes\u003C\/li\u003E\r\n  \u003Cli\u003Etaxonomy terms\u003C\/li\u003E\r\n  \u003Cli\u003Emenu links\u003C\/li\u003E\r\n  \u003Cli\u003Eusers\u003C\/li\u003E\r\n  \u003Cli\u003E...\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\nContributed entity types like commerce products can be indexed as well. Various inclusion settings can be set for bundles and overridden on a per-entity basis. Sitemap generation can be altered through custom URL \u0026 sitemap generator plugins and hooks. Sitemaps can be automatically submitted to search engines, content changes can also be directly submitted via the \u003Ca href=\u0022https:\/\/gbyte.dev\/blog\/index-drupal-9-pages-indexnow-using-simple-xml-sitemap\u0022\u003EIndexNow integration\u003C\/a\u003E.\r\n\r\n\u003Ca href=\u0022http:\/\/gbyte.dev\/sitemap.xml\u0022\u003EHere\u003C\/a\u003E is a sample of the markup it generates (press ctrl+u to view the source).\r\n\r\n\u003Ch3\u003EFunctionality\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EAbility to create any type of sitemap via plugins\u003C\/li\u003E\r\n  \u003Cli\u003EAbility to create a sitemap index of other sitemaps\u003C\/li\u003E\r\n  \u003Cli\u003EPeriodic submission to search engines\u003C\/li\u003E\r\n  \u003Cli\u003ESubmission to IndexNow on content changes\u003C\/li\u003E\r\n  \u003Cli\u003EViews and views arguments support\u003C\/li\u003E\r\n  \u003Cli\u003EXSL stylesheets for human visitors\u003C\/li\u003E\r\n  \u003Cli\u003EPerformance test script included\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003E4.x\u003C\/h3\u003E\r\n\u003Ch4\u003EModule rewrite with developers\/integrators in mind\u003C\/h4\u003E\r\n\u003Cem\u003E4.x\u003C\/em\u003E makes much greater use of Drupal\u0027s entity API dropping some of its very specific chaining API. See [#3219383]. See \u003Ca href=\u0022https:\/\/gbyte.dev\/projects\/simple-xml-sitemap\u0022\u003Ethese posts\u003C\/a\u003E for more details on the \u003Cem\u003E4.x\u003C\/em\u003E branch.\r\n \r\n\u003Ch4\u003EShould you use this over 3.x?\u003C\/h4\u003E\r\nYes. 3.x has is not supported.\r\n\r\n\u003Ch2\u003EUpgrade path\u003C\/h2\u003E\r\nPlease do not forget to run \u003Ccode\u003Edrush updb\u003C\/code\u003E or \u003Ca href=\u0022https:\/\/www.drupal.org\/upgrade\/running-update-php\u0022\u003Eupdate.php\u003C\/a\u003E after every update. If you get an error, run \u003Cem\u003Ecore\/rebuild.php\u003C\/em\u003E before the above.\r\n\r\nYou can upgrade from any \u003Cem\u003E8.x-2.x\u003C\/em\u003E or \u003Cem\u003E8.x-3.x\u003C\/em\u003E verison to \u003Cem\u003E4.x\u003C\/em\u003E. Keep in mind, the module APIs change between major releases.\r\n\r\n\u003Ch2\u003EOther\u003C\/h2\u003E\r\nSimilar modules: \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/xmlsitemap\u0022\u003EXML Sitemap\u003C\/a\u003E was the de facto XML sitemap generator prior to Drupal 8 and a stable version for D8 has just been released.\r\n\r\nIf you would like to say thanks and support the development of this module, a \u003Ca href=\u0022https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_s-xclick\u0026hosted_button_id=5AFYRSBLGSC3W\u0022\u003Edonation\u003C\/a\u003E will be much appreciated.","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EEvery webpage needs an automatic \u003Ca href=\u0022https:\/\/en.wikipedia.org\/wiki\/Sitemaps\u0022 rel=\u0022nofollow\u0022\u003EXML sitemap generator\u003C\/a\u003E for SEO reasons. Sitemaps generated by this module adhere to the new Google standard regarding multilingual content by creating \u003Ca href=\u0022https:\/\/developers.google.com\/search\/docs\/specialty\/international\/localized-versions#sitemap\u0022 rel=\u0022nofollow\u0022\u003Ehreflang sitemaps\u003C\/a\u003E and \u003Ca href=\u0022https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/image-sitemaps\u0022 rel=\u0022nofollow\u0022\u003Eimage sitemaps\u003C\/a\u003E - Googlebots will thank you later.\u003C\/p\u003E\n\u003Cp\u003EIn addition to the default hreflang sitemaps, the module\u0027s API allows creating and publishing of custom sitemaps with arbitrary content, as well as submitting those sitemaps to search engines like Google. For instant indexation of content, the \u003Ca href=\u0022https:\/\/www.indexnow.org\/\u0022 rel=\u0022nofollow\u0022\u003EIndexNow protocol\u003C\/a\u003E (supported by Bing and Yandex) has been implemented in 4.x (\u003Cem\u003Esimple_sitemap_engines\u003C\/em\u003E submodule).\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022overview\u0022\u003EOverview\u003C\/h2\u003E\n\u003Cp\u003EThe module generates multilingual sitemaps for entities, views and custom links. Out of the box it supports most of Drupal\u0027s content entity types including:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003Enodes\u003C\/li\u003E\n\u003Cli\u003Etaxonomy terms\u003C\/li\u003E\n\u003Cli\u003Emenu links\u003C\/li\u003E\n\u003Cli\u003Eusers\u003C\/li\u003E\n\u003Cli\u003E...\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EContributed entity types like commerce products can be indexed as well. Various inclusion settings can be set for bundles and overridden on a per-entity basis. Sitemap generation can be altered through custom URL \u0026amp; sitemap generator plugins and hooks. Sitemaps can be automatically submitted to search engines, content changes can also be directly submitted via the \u003Ca href=\u0022https:\/\/gbyte.dev\/blog\/index-drupal-9-pages-indexnow-using-simple-xml-sitemap\u0022 rel=\u0022nofollow\u0022\u003EIndexNow integration\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cp\u003E\u003Ca href=\u0022http:\/\/gbyte.dev\/sitemap.xml\u0022 rel=\u0022nofollow\u0022\u003EHere\u003C\/a\u003E is a sample of the markup it generates (press ctrl+u to view the source).\u003C\/p\u003E\n\u003Ch3 id=\u0022functionality\u0022\u003EFunctionality\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003EAbility to create any type of sitemap via plugins\u003C\/li\u003E\n\u003Cli\u003EAbility to create a sitemap index of other sitemaps\u003C\/li\u003E\n\u003Cli\u003EPeriodic submission to search engines\u003C\/li\u003E\n\u003Cli\u003ESubmission to IndexNow on content changes\u003C\/li\u003E\n\u003Cli\u003EViews and views arguments support\u003C\/li\u003E\n\u003Cli\u003EXSL stylesheets for human visitors\u003C\/li\u003E\n\u003Cli\u003EPerformance test script included\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022x\u0022\u003E4.x\u003C\/h3\u003E\n\u003Ch4 id=\u0022module-rewrite-with-developers-integrators-in-mind\u0022\u003EModule rewrite with developers\/integrators in mind\u003C\/h4\u003E\n\u003Cp\u003E\u003Cem\u003E4.x\u003C\/em\u003E makes much greater use of Drupal\u0027s entity API dropping some of its very specific chaining API. See [#3219383]. See \u003Ca href=\u0022https:\/\/gbyte.dev\/projects\/simple-xml-sitemap\u0022 rel=\u0022nofollow\u0022\u003Ethese posts\u003C\/a\u003E for more details on the \u003Cem\u003E4.x\u003C\/em\u003E branch.\u003C\/p\u003E\n\u003Ch4 id=\u0022should-you-use-this-over-3-x\u0022\u003EShould you use this over 3.x?\u003C\/h4\u003E\n\u003Cp\u003EYes. 3.x has is not supported.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022upgrade-path\u0022\u003EUpgrade path\u003C\/h2\u003E\n\u003Cp\u003EPlease do not forget to run \u003Ccode\u003Edrush updb\u003C\/code\u003E or \u003Ca href=\u0022https:\/\/www.drupal.org\/upgrade\/running-update-php\u0022 rel=\u0022nofollow\u0022\u003Eupdate.php\u003C\/a\u003E after every update. If you get an error, run \u003Cem\u003Ecore\/rebuild.php\u003C\/em\u003E before the above.\u003C\/p\u003E\n\u003Cp\u003EYou can upgrade from any \u003Cem\u003E8.x-2.x\u003C\/em\u003E or \u003Cem\u003E8.x-3.x\u003C\/em\u003E verison to \u003Cem\u003E4.x\u003C\/em\u003E. Keep in mind, the module APIs change between major releases.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022other\u0022\u003EOther\u003C\/h2\u003E\n\u003Cp\u003ESimilar modules: \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/xmlsitemap\u0022 rel=\u0022nofollow\u0022\u003EXML Sitemap\u003C\/a\u003E was the de facto XML sitemap generator prior to Drupal 8 and a stable version for D8 has just been released.\u003C\/p\u003E\n\u003Cp\u003EIf you would like to say thanks and support the development of this module, a \u003Ca href=\u0022https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_s-xclick\u0026amp;hosted_button_id=5AFYRSBLGSC3W\u0022 rel=\u0022nofollow\u0022\u003Edonation\u003C\/a\u003E will be much appreciated.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Generates standard-compliant hreflang XML sitemaps to enhance your site\u0027s SEO, notifies search engines of website changes via IndexNow and sitemap ping protocols, and provides a framework for developing other sitemap types."},"field_active_installs":"{\u00228.x-1.x\u0022:7,\u00228.x-2.x\u0022:1900,\u00228.x-3.x\u0022:10487,\u00224.x\u0022:137,\u00224.0.x\u0022:265,\u00224.1.x\u0022:13393,\u00224.2.x\u0022:101446}","field_active_installs_total":127635,"field_composer_namespace":"drupal\/simple_sitemap","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/simple_sitemap\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"simple_sitemap","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"55b0368f-e284-450a-9b1d-63f71951fe22","meta":{"drupal_internal__target_id":2381352}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/32033d52-4895-4b2f-9615-8d588b171640\/uid?resourceVersion=id%3A20036255"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/32033d52-4895-4b2f-9615-8d588b171640\/relationships\/uid?resourceVersion=id%3A20036255"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/32033d52-4895-4b2f-9615-8d588b171640\/field_development_status?resourceVersion=id%3A20036255"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/32033d52-4895-4b2f-9615-8d588b171640\/relationships\/field_development_status?resourceVersion=id%3A20036255"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/32033d52-4895-4b2f-9615-8d588b171640\/field_maintenance_status?resourceVersion=id%3A20036255"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/32033d52-4895-4b2f-9615-8d588b171640\/relationships\/field_maintenance_status?resourceVersion=id%3A20036255"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"3cf38e0a-d4b1-426d-9b8e-008e7a41cf8d","meta":{"drupal_internal__target_id":194}},{"type":"taxonomy_term--module_categories","id":"01df2105-2397-4a0e-b34c-80da1c3b1208","meta":{"drupal_internal__target_id":201}},{"type":"taxonomy_term--module_categories","id":"8d7b9b34-6ae2-4e9b-b3a2-f0bb3109500a","meta":{"drupal_internal__target_id":196}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/32033d52-4895-4b2f-9615-8d588b171640\/field_module_categories?resourceVersion=id%3A20036255"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/32033d52-4895-4b2f-9615-8d588b171640\/relationships\/field_module_categories?resourceVersion=id%3A20036255"}}},"field_project_images":{"data":[{"type":"file--file","id":"d73c100b-81f7-4b56-afa7-e17c741c72be","meta":{"alt":"","title":null,"width":1225,"height":873,"drupal_internal__target_id":32429}},{"type":"file--file","id":"71f70248-22b1-4e56-a5da-d690e372ca2b","meta":{"alt":"","title":null,"width":1212,"height":1066,"drupal_internal__target_id":32430}},{"type":"file--file","id":"40db45d5-b026-4f8b-9c1a-276abe5263c6","meta":{"alt":"","title":null,"width":1212,"height":976,"drupal_internal__target_id":32431}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/32033d52-4895-4b2f-9615-8d588b171640\/field_project_images?resourceVersion=id%3A20036255"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/32033d52-4895-4b2f-9615-8d588b171640\/relationships\/field_project_images?resourceVersion=id%3A20036255"}}}}},{"type":"node--project_module","id":"6c7bf776-ca5c-4b71-b56f-9f5e909e3d01","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6c7bf776-ca5c-4b71-b56f-9f5e909e3d01?resourceVersion=id%3A20010602"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6c7bf776-ca5c-4b71-b56f-9f5e909e3d01?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":719864,"status":true,"title":"Linkit","created":"2010-02-19T23:11:04+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"\u003Cdiv class=\u0022note\u0022\u003E\u003Ch3\u003ESummary\u003C\/h3\u003E\u003Cem\u003ELinkit\u003C\/em\u003E provides an autocomplete interface for internal and external linking in rich-text editors. Linkit supports nodes, users, taxonomy terms, files, comments and basic support for all types of entities that define a canonical link template.\u003C\/div\u003E\r\n\r\n\u003Cdiv class=\u0022note-warning\u0022\u003E\u003Cp\u003EAs of version 11.3, Drupal core provides link autocomplete suggestions in CKEditor similar to what this module does. Sites using or considering using Linkit should evaluate whether they can use the core solution instead of Linkit. Here is a list of features Linkit has that aren\u0027t currently included in Drupal core\u0027s version:\r\n\r\n  \u003Cul\u003E\r\n  \u003Cli\u003EAbility to configure which types of links will be shown in autocomplete suggestions, and how to group them\u003C\/li\u003E\r\n  \u003Cli\u003EAbility to create multiple Linkit \u0022profiles\u0022 to be used on different text formats\u003C\/li\u003E\r\n\u003Cli\u003ELinkit-styled autocomplete suggestions for link fields (core already has this, but it\u0027s entity suggestions don\u0027t have the configuration options below)\u003C\/li\u003E\r\n  \u003Cli\u003EAbility to configure metadata (with token support) for autcomplete suggestions; for example, showing the authoring information, published state for each suggestion\u003C\/li\u003E\r\n  \u003Cli\u003EAbility to configure the number of suggestions shown\u003C\/li\u003E\r\n  \u003Cli\u003EAbility to toggle published\/unpublished entities in suggestions\u003C\/li\u003E\r\n\u003Cli\u003EA Drupal form element for hyperlinks, allowing developers to use autocomplete functionality in custom Field Widgets\u003C\/li\u003E\r\n  \u003Cli\u003EAn extendable plugin type for \u0022Matchers,\u0022 which determine what types of links can be suggested. Linkit includes a front page matcher, external link matcher, email address matcher, as well as matchers for user, taxonomy, media, and contact form entities.\u003C\/li\u003E\r\n  \u003Cli\u003EAn extendable plugin type for \u0022Substitutions\u0022 to customize what a match should render as\u003C\/li\u003E\r\n  \u003Cli\u003EFor media entities, the ability to configure whether to link to the media entity URL or direct download\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\r\n\u003C\/div\u003E \r\n\r\n\u003Cimg src=\u0022\/files\/linkit-cke5.png\u0022 alt=\u0022Screenshot of Linkit autocomplete using CKEditor 5\u0022\u003E\r\n\r\n\u003Ch2\u003EConfiguration\u003C\/h2\u003E\r\n\u003Col\u003E\r\n  \u003Cli\u003EAfter installation, create a Linkit profile. The profile will contain information about which plugins to use. Profiles can be created at \u003Ccode\u003E\/admin\/config\/content\/linkit\u003C\/code\u003E.\u003C\/li\u003E\r\n  \u003Cli\u003EEnable the Linkit plugin on the text format you want to use. Formats are found at \u003Ccode\u003Eadmin\/config\/content\/formats\u003C\/code\u003E.\u003C\/li\u003E\r\n\r\n\u003Cli\u003E\u003Ca href=\u0022\/docs\/extending-drupal\/contributed-modules\/contributed-module-documentation\/linkit\/link-media-directly-to-the-actual-file-not-the-media-route\u0022\u003ELink media to the actual file\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022\/docs\/extending-drupal\/contributed-modules\/contributed-module-documentation\/linkit\/remove-links-to-unpublished-or-non-existent-pages\u0022\u003ERemove links to unpublished or non-existent pages\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022\/docs\/extending-drupal\/contributed-modules\/contributed-module-documentation\/linkit\/use-linkit-with-core-menu-links\u0022\u003EUse Linkit with menu links\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022\/docs\/extending-drupal\/contributed-modules\/contributed-module-documentation\/linkit\/use-linkit-with-link-fields\u0022\u003EUse Linkit with link fields\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\r\n\u003Ch2\u003ERelated modules\u003C\/h2\u003E\r\n\u003Cul\u003E\u003Cli\u003ETo add link attributes (rel, target), see \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/editor_advanced_link\u0022\u003EEditor Advanced link\u003C\/a\u003E.\r\n\u003C\/li\u003E\u003C\/ul\u003E\r\n\r\n\u003Ch2\u003EVersion Status\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E7.0.x (Drupal \u003E10.1 and Drupal 11; drops CKEditor 4 support)\u003C\/li\u003E\r\n\u003Cli\u003E6.1.x (Drupal 10.1-10.4; note: a packaging issue caused 6.1.7 to allow installation with Drupal 10.5.x; do not use version 6.1.7!: Supported until November 2025)\u003C\/li\u003E\r\n\u003Cli\u003E6.0.x (Drupal 9.5.x and 10.0): No further development\u003C\/li\u003E\r\n\u003Cli\u003E8.x-5.x: No further development.\u003C\/li\u003E\r\n\u003Cli\u003E8.x-4.x: No further development.\u003C\/li\u003E\r\n\u003Cli\u003E7.x-3.x: Drupal 7 compatible. Maintenance only.\u003C\/li\u003E\r\n\u003C\/ul\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cdiv class=\u0022note\u0022\u003E\n\u003Ch3 id=\u0022summary\u0022\u003ESummary\u003C\/h3\u003E\n\u003Cp\u003E\u003Cem\u003ELinkit\u003C\/em\u003E provides an autocomplete interface for internal and external linking in rich-text editors. Linkit supports nodes, users, taxonomy terms, files, comments and basic support for all types of entities that define a canonical link template.\u003C\/p\u003E\u003C\/div\u003E\n\u003Cdiv class=\u0022note-warning\u0022\u003E\n\u003Cp\u003EAs of version 11.3, Drupal core provides link autocomplete suggestions in CKEditor similar to what this module does. Sites using or considering using Linkit should evaluate whether they can use the core solution instead of Linkit. Here is a list of features Linkit has that aren\u0027t currently included in Drupal core\u0027s version:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EAbility to configure which types of links will be shown in autocomplete suggestions, and how to group them\u003C\/li\u003E\n\u003Cli\u003EAbility to create multiple Linkit \u0022profiles\u0022 to be used on different text formats\u003C\/li\u003E\n\u003Cli\u003ELinkit-styled autocomplete suggestions for link fields (core already has this, but it\u0027s entity suggestions don\u0027t have the configuration options below)\u003C\/li\u003E\n\u003Cli\u003EAbility to configure metadata (with token support) for autcomplete suggestions; for example, showing the authoring information, published state for each suggestion\u003C\/li\u003E\n\u003Cli\u003EAbility to configure the number of suggestions shown\u003C\/li\u003E\n\u003Cli\u003EAbility to toggle published\/unpublished entities in suggestions\u003C\/li\u003E\n\u003Cli\u003EA Drupal form element for hyperlinks, allowing developers to use autocomplete functionality in custom Field Widgets\u003C\/li\u003E\n\u003Cli\u003EAn extendable plugin type for \u0022Matchers,\u0022 which determine what types of links can be suggested. Linkit includes a front page matcher, external link matcher, email address matcher, as well as matchers for user, taxonomy, media, and contact form entities.\u003C\/li\u003E\n\u003Cli\u003EAn extendable plugin type for \u0022Substitutions\u0022 to customize what a match should render as\u003C\/li\u003E\n\u003Cli\u003EFor media entities, the ability to configure whether to link to the media entity URL or direct download\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/div\u003E\n\u003Cp\u003E\u003Cimg src=\u0022\/core\/misc\/icons\/e32700\/error.svg\u0022 alt=\u0022Image removed.\u0022 title=\u0022This image has been removed. For security reasons, only images from the local domain are allowed.\u0022 height=\u002216\u0022 width=\u002216\u0022 class=\u0022filter-image-invalid\u0022\u003E\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022configuration\u0022\u003EConfiguration\u003C\/h2\u003E\n\u003Col\u003E\n\u003Cli\u003EAfter installation, create a Linkit profile. The profile will contain information about which plugins to use. Profiles can be created at \u003Ccode\u003E\/admin\/config\/content\/linkit\u003C\/code\u003E.\u003C\/li\u003E\n\u003Cli\u003EEnable the Linkit plugin on the text format you want to use. Formats are found at \u003Ccode\u003Eadmin\/config\/content\/formats\u003C\/code\u003E.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/docs\/extending-drupal\/contributed-modules\/contributed-module-documentation\/linkit\/link-media-directly-to-the-actual-file-not-the-media-route\u0022 rel=\u0022nofollow\u0022\u003ELink media to the actual file\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/docs\/extending-drupal\/contributed-modules\/contributed-module-documentation\/linkit\/remove-links-to-unpublished-or-non-existent-pages\u0022 rel=\u0022nofollow\u0022\u003ERemove links to unpublished or non-existent pages\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/docs\/extending-drupal\/contributed-modules\/contributed-module-documentation\/linkit\/use-linkit-with-core-menu-links\u0022 rel=\u0022nofollow\u0022\u003EUse Linkit with menu links\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022\/docs\/extending-drupal\/contributed-modules\/contributed-module-documentation\/linkit\/use-linkit-with-link-fields\u0022 rel=\u0022nofollow\u0022\u003EUse Linkit with link fields\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022related-modules\u0022\u003ERelated modules\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003ETo add link attributes (rel, target), see \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/editor_advanced_link\u0022 rel=\u0022nofollow\u0022\u003EEditor Advanced link\u003C\/a\u003E.\n\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022version-status\u0022\u003EVersion Status\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E7.0.x (Drupal \u0026gt;10.1 and Drupal 11; drops CKEditor 4 support)\u003C\/li\u003E\n\u003Cli\u003E6.1.x (Drupal 10.1-10.4; note: a packaging issue caused 6.1.7 to allow installation with Drupal 10.5.x; do not use version 6.1.7!: Supported until November 2025)\u003C\/li\u003E\n\u003Cli\u003E6.0.x (Drupal 9.5.x and 10.0): No further development\u003C\/li\u003E\n\u003Cli\u003E8.x-5.x: No further development.\u003C\/li\u003E\n\u003Cli\u003E8.x-4.x: No further development.\u003C\/li\u003E\n\u003Cli\u003E7.x-3.x: Drupal 7 compatible. Maintenance only.\u003C\/li\u003E\n\u003C\/ul\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"\u003Cem\u003ELinkit\u003C\/em\u003E provides an autocomplete functionality for Drupal link interfaces. Linkit supports nodes, users, taxonomy, files\/media, and basic support for all types of entities that define a canonical link template."},"field_active_installs":"{\u00228.x-4.x\u0022:2974,\u00228.x-5.x\u0022:3047,\u00226.0.x\u0022:8330,\u00226.1.x\u0022:17549,\u00227.x\u0022:4,\u00227.0.x\u0022:94742,\u00227.1.x\u0022:6}","field_active_installs_total":126652,"field_composer_namespace":"drupal\/linkit","field_core_semver_maximum":12999999,"field_core_semver_minimum":8000000,"field_issue_summary_template":{"value":"\u003Ch3 id=\u0022summary-problem-motivation\u0022\u003EProblem\/motivation\u003C\/h3\u003E\r\n\r\n\u003Ch3 id=\u0022summary-steps-reproduce\u0022\u003ESteps to reproduce\u003C\/h3\u003E\r\n\u003Col\u003E\r\n  \u003Cli\u003EGo to...\u003C\/li\u003E\r\n  \u003Cli\u003EClick on...\u003C\/li\u003E\r\n  \u003Cli\u003EObserve [describe the expected and actual output]\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n        \r\n\u003Ch3 id=\u0022summary-proposed-resolution\u0022\u003EProposed resolution\u003C\/h3\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Ch3 id=\u0022summary-problem-motivation-01\u0022\u003EProblem\/motivation\u003C\/h3\u003E\n\u003Ch3 id=\u0022summary-steps-reproduce-01\u0022\u003ESteps to reproduce\u003C\/h3\u003E\n\u003Col\u003E\n\u003Cli\u003EGo to...\u003C\/li\u003E\n\u003Cli\u003EClick on...\u003C\/li\u003E\n\u003Cli\u003EObserve [describe the expected and actual output]\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Ch3 id=\u0022summary-proposed-resolution-01\u0022\u003EProposed resolution\u003C\/h3\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E"},"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/linkit\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"linkit","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"2d65edfe-729c-46f7-9c2d-b3d1b5bbe619","meta":{"drupal_internal__target_id":464598}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6c7bf776-ca5c-4b71-b56f-9f5e909e3d01\/uid?resourceVersion=id%3A20010602"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6c7bf776-ca5c-4b71-b56f-9f5e909e3d01\/relationships\/uid?resourceVersion=id%3A20010602"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6c7bf776-ca5c-4b71-b56f-9f5e909e3d01\/field_development_status?resourceVersion=id%3A20010602"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6c7bf776-ca5c-4b71-b56f-9f5e909e3d01\/relationships\/field_development_status?resourceVersion=id%3A20010602"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"09a378d2-fd35-41f3-bff0-10d9801741a4","meta":{"drupal_internal__target_id":27269}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6c7bf776-ca5c-4b71-b56f-9f5e909e3d01\/field_maintenance_status?resourceVersion=id%3A20010602"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6c7bf776-ca5c-4b71-b56f-9f5e909e3d01\/relationships\/field_maintenance_status?resourceVersion=id%3A20010602"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"abf23828-f269-4d39-8589-b731209eb154","meta":{"drupal_internal__target_id":186}},{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","meta":{"drupal_internal__target_id":187}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6c7bf776-ca5c-4b71-b56f-9f5e909e3d01\/field_module_categories?resourceVersion=id%3A20010602"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6c7bf776-ca5c-4b71-b56f-9f5e909e3d01\/relationships\/field_module_categories?resourceVersion=id%3A20010602"}}},"field_project_images":{"data":[],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6c7bf776-ca5c-4b71-b56f-9f5e909e3d01\/field_project_images?resourceVersion=id%3A20010602"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/6c7bf776-ca5c-4b71-b56f-9f5e909e3d01\/relationships\/field_project_images?resourceVersion=id%3A20010602"}}}}},{"type":"node--project_module","id":"b491f852-5f63-4971-86d0-b23836422bfb","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b491f852-5f63-4971-86d0-b23836422bfb?resourceVersion=id%3A20014803"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b491f852-5f63-4971-86d0-b23836422bfb?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":1181848,"status":true,"title":"Inline Entity Form","created":"2011-06-07T23:47:58+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"\u003Ch2\u003ESupported versions: 1.x \/ 3.x\u003C\/h2\u003E\r\n\r\nApologies! There are problems with the 2.x branch - we strongly recommend not using it. This is currently cleaned up in [#3401656]. Help is appreciated.\r\n\r\nIf you are on 1.x, you can safely upgrade to 3.x, IF no other contrib module still requires 1.x only. In this case open an issue on that project, see [#3407711].\r\n\r\nIf you are on 2.x, you can either downgrade to 1.x, or upgrade to 3.x, IF no other contrib module still requires 1.x only. In this case open an issue on that project, see [#3407711] \r\nReporting back to [#3407407] is appreciated. (Note that the you WILL lose all the non-quality-assured features from 2.x. To any complainers: Feel free to write or pay a test for your favorite feature, or maintain a fork with lower maintenance standard yourself.)\r\n\r\n\u003Ch3\u003EModule authors, please update requirements\u003C\/h3\u003E\r\nSee [#3407711].\r\n\r\n\u003Ch2\u003EAbout IEF\u003C\/h2\u003E\r\n\r\nProvides a widget for inline management (creation, modification, removal) of referenced entities. \r\nThe primary use case is the parent -\u003E children one (product display -\u003E products, order -\u003E line items, etc.), where the child entities are never managed outside the parent form.\r\nExisting entities can also be referenced.\r\n\r\nSupports commerce_product_reference, commerce_line_item_reference and entityreference fields.\r\nRequires integration code to be provided for each entity type that can be referenced.\r\nSupports the commerce_product (including \u003Ca href=\u0022http:\/\/drupal.org\/project\/commerce_autosku\u0022\u003ECommerce AutoSKU\u003C\/a\u003E integration) and commerce_line_item, node, taxonomy_term entity types out of the box.\r\nIntegration for other entity types has not yet been written, patches welcome.\r\n\r\nSee the \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/inline_entity_form\/blob\/7.x-1.x\/README\u0022\u003E7.x README\u003C\/a\u003E or the \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/inline_entity_form\/blob\/8.x-1.x\/README\u0022\u003E8.x README\u003C\/a\u003E for information about getting started and integrating other entity types.\r\n\r\nThis module was covered on \u003Ca href=\u0022https:\/\/www.lullabot.com\/articles\/module-monday-inline-entity-form\u0022\u003ELullabot Module Monday\u003C\/a\u003E and \u003Ca href=\u0022http:\/\/commerceguys.com\/blog\/commerce-module-tuesday-inline-entity-form\u0022\u003ECommerce Module Tuesday\u003C\/a\u003E.\r\n\r\nRequires the \u003Ca href=\u0022http:\/\/drupal.org\/project\/entity\u0022\u003EEntity API\u003C\/a\u003E module.\r\nRequires Drupal 7.15 or newer.","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022supported-versions-1-x-3-x\u0022\u003ESupported versions: 1.x \/ 3.x\u003C\/h2\u003E\n\u003Cp\u003EApologies! There are problems with the 2.x branch - we strongly recommend not using it. This is currently cleaned up in [#3401656]. Help is appreciated.\u003C\/p\u003E\n\u003Cp\u003EIf you are on 1.x, you can safely upgrade to 3.x, IF no other contrib module still requires 1.x only. In this case open an issue on that project, see [#3407711].\u003C\/p\u003E\n\u003Cp\u003EIf you are on 2.x, you can either downgrade to 1.x, or upgrade to 3.x, IF no other contrib module still requires 1.x only. In this case open an issue on that project, see [#3407711]\u003Cbr\u003E\nReporting back to [#3407407] is appreciated. (Note that the you WILL lose all the non-quality-assured features from 2.x. To any complainers: Feel free to write or pay a test for your favorite feature, or maintain a fork with lower maintenance standard yourself.)\u003C\/p\u003E\n\u003Ch3 id=\u0022module-authors-please-update-requirements\u0022\u003EModule authors, please update requirements\u003C\/h3\u003E\n\u003Cp\u003ESee [#3407711].\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022about-ief\u0022\u003EAbout IEF\u003C\/h2\u003E\n\u003Cp\u003EProvides a widget for inline management (creation, modification, removal) of referenced entities.\u003Cbr\u003E\nThe primary use case is the parent -\u0026gt; children one (product display -\u0026gt; products, order -\u0026gt; line items, etc.), where the child entities are never managed outside the parent form.\u003Cbr\u003E\nExisting entities can also be referenced.\u003C\/p\u003E\n\u003Cp\u003ESupports commerce_product_reference, commerce_line_item_reference and entityreference fields.\u003Cbr\u003E\nRequires integration code to be provided for each entity type that can be referenced.\u003Cbr\u003E\nSupports the commerce_product (including \u003Ca href=\u0022http:\/\/drupal.org\/project\/commerce_autosku\u0022 rel=\u0022nofollow\u0022\u003ECommerce AutoSKU\u003C\/a\u003E integration) and commerce_line_item, node, taxonomy_term entity types out of the box.\u003Cbr\u003E\nIntegration for other entity types has not yet been written, patches welcome.\u003C\/p\u003E\n\u003Cp\u003ESee the \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/inline_entity_form\/blob\/7.x-1.x\/README\u0022 rel=\u0022nofollow\u0022\u003E7.x README\u003C\/a\u003E or the \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/inline_entity_form\/blob\/8.x-1.x\/README\u0022 rel=\u0022nofollow\u0022\u003E8.x README\u003C\/a\u003E for information about getting started and integrating other entity types.\u003C\/p\u003E\n\u003Cp\u003EThis module was covered on \u003Ca href=\u0022https:\/\/www.lullabot.com\/articles\/module-monday-inline-entity-form\u0022 rel=\u0022nofollow\u0022\u003ELullabot Module Monday\u003C\/a\u003E and \u003Ca href=\u0022http:\/\/commerceguys.com\/blog\/commerce-module-tuesday-inline-entity-form\u0022 rel=\u0022nofollow\u0022\u003ECommerce Module Tuesday\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cp\u003ERequires the \u003Ca href=\u0022http:\/\/drupal.org\/project\/entity\u0022 rel=\u0022nofollow\u0022\u003EEntity API\u003C\/a\u003E module.\u003Cbr\u003E\nRequires Drupal 7.15 or newer.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"\u003Ch2\u003ESupported Versions\u003C\/h2\u003E\r\n\r\nA 2.x Version has been released erroneously, containing multiple regressions and unreviewed commits. This is currently cleaned up in [#]. Help is appreciated.\r\n\r\n\u003Ch2\u003EAbout IEF\u003C\/h2\u003E\r\n\r\nProvides a widget for inline management (creation, modification, removal) of referenced entities. \r\nThe primary use case is the parent -\u003E children one (product display -\u003E products, order -\u003E line items, etc.), where the child entities are never managed outside the parent form.\r\nExisting entities can also be referenced.\r\n\r\nSupports commerce_product_reference, commerce_line_item_reference and entityreference fields.\r\nRequires integration code to be provided for each entity type that can be referenced.\r\nSupports the commerce_product (including \u003Ca href=\u0022http:\/\/drupal.org\/project\/commerce_autosku\u0022\u003ECommerce AutoSKU\u003C\/a\u003E integration) and commerce_line_item, node, taxonomy_term entity types out of the box.\r\nIntegration for other entity types has not yet been written, patches welcome.\r\n\r\nSee the \u003Ca href=\u0022http:\/\/drupalcode.org\/project\/inline_entity_form.git\/blob\/a0f8bf8c59b5aa35d03383ec6a0b77791a8c149f:\/README\u0022\u003EREADME\u003C\/a\u003E for information about getting started and integrating other entity types.\r\n\r\nThis module was covered on \u003Ca href=\u0022https:\/\/www.lullabot.com\/articles\/module-monday-inline-entity-form\u0022\u003ELullabot Module Monday\u003C\/a\u003E and \u003Ca href=\u0022http:\/\/commerceguys.com\/blog\/commerce-module-tuesday-inline-entity-form\u0022\u003ECommerce Module Tuesday\u003C\/a\u003E.\r\n\r\nRequires the \u003Ca href=\u0022http:\/\/drupal.org\/project\/entity\u0022\u003EEntity API\u003C\/a\u003E module.\r\nRequires Drupal 7.15 or newer.\r\n\r\n"},"field_active_installs":"{\u00228.x-1.x\u0022:53042,\u00222.0.x\u0022:1305,\u00223.0.x\u0022:63604,\u00223.x\u0022:9}","field_active_installs_total":117960,"field_composer_namespace":"drupal\/inline_entity_form","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"inline_entity_form","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"45dce456-4ddf-4269-9cd4-2e46bb0760ed","meta":{"drupal_internal__target_id":3661446}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b491f852-5f63-4971-86d0-b23836422bfb\/uid?resourceVersion=id%3A20014803"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b491f852-5f63-4971-86d0-b23836422bfb\/relationships\/uid?resourceVersion=id%3A20014803"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b491f852-5f63-4971-86d0-b23836422bfb\/field_development_status?resourceVersion=id%3A20014803"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b491f852-5f63-4971-86d0-b23836422bfb\/relationships\/field_development_status?resourceVersion=id%3A20014803"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b491f852-5f63-4971-86d0-b23836422bfb\/field_maintenance_status?resourceVersion=id%3A20014803"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b491f852-5f63-4971-86d0-b23836422bfb\/relationships\/field_maintenance_status?resourceVersion=id%3A20014803"}}},"field_module_categories":{"data":[],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b491f852-5f63-4971-86d0-b23836422bfb\/field_module_categories?resourceVersion=id%3A20014803"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b491f852-5f63-4971-86d0-b23836422bfb\/relationships\/field_module_categories?resourceVersion=id%3A20014803"}}},"field_project_images":{"data":[{"type":"file--file","id":"c59f4e11-4add-4430-958b-23bac7b72428","meta":{"alt":"","title":null,"width":848,"height":566,"drupal_internal__target_id":7636}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b491f852-5f63-4971-86d0-b23836422bfb\/field_project_images?resourceVersion=id%3A20014803"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/b491f852-5f63-4971-86d0-b23836422bfb\/relationships\/field_project_images?resourceVersion=id%3A20014803"}}}}},{"type":"node--project_module","id":"8132e3dd-d0c9-4906-8f0b-0a563091e8b7","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/8132e3dd-d0c9-4906-8f0b-0a563091e8b7?resourceVersion=id%3A20036877"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/8132e3dd-d0c9-4906-8f0b-0a563091e8b7?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":2608400,"status":true,"title":"Editor Advanced link","created":"2015-11-04T17:11:04+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"Enhances the link Dialog in CKEditor.\r\nAllows to define the following attributes:\r\n\u003Cul\u003E\r\n  \u003Cli\u003Etitle\u003C\/li\u003E\r\n  \u003Cli\u003Eclass\u003C\/li\u003E\r\n  \u003Cli\u003Eid\u003C\/li\u003E\r\n  \u003Cli\u003Etarget\u003C\/li\u003E\r\n  \u003Cli\u003Erel\u003C\/li\u003E\r\n  \u003Cli\u003Earia-label\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003EInstallation and configuration\u003C\/h3\u003E\r\n\r\n\u003Ch4\u003ECKEditor 5 (Drupal 10 \/ Drupal 11)\u003C\/h4\u003E\r\n\r\nInstall as usual then:\r\n\u003Col\u003E\r\n  \u003Cli\u003EGo to the \u0022Text formats and editors\u0022 admin page (admin\/config\/content\/formats)\u003C\/li\u003E\r\n  \u003Cli\u003EConfigure your text format\u003C\/li\u003E\r\n  \u003Cli\u003EEnable the additional attributes you want for this format in the \u0022Advanced links\u0022 tab of the \u0022CKEditor 5 plugin settings\u0022\u003C\/li\u003E\r\n  \u003Cli\u003ESave your configuration\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\r\n\u003Ch3\u003EBranches\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ccode\u003E2.3.x\u003C\/code\u003E Support for CKEditor 45 (Drupal 10.5+ \/ Drupal 11.2+)\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ccode\u003E2.2.x\u003C\/code\u003E Support for CKEditor 44 (Drupal 10.3 \/ 10.4 \/ 11.0 \/ 11.1)\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2\u003ERecommended\u003C\/h2\u003E\r\n\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/editor_file\u0022\u003EEditor File upload\u003C\/a\u003E to be able to create link to uploaded files easily.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/linkit\u0022\u003ELinkit\u003C\/a\u003E provides an easy interface for internal and external linking with wysiwyg editors by using an autocomplete field.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/ckeditor_entity_link\u0022\u003ECKEditor Entity Link\u003C\/a\u003E is an alternative to Linkit that also provides an easy interface for internal linking within the editor.\u003C\/li\u003E\r\n\u003Cul\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EEnhances the link Dialog in CKEditor.\u003Cbr\u003E\nAllows to define the following attributes:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003Etitle\u003C\/li\u003E\n\u003Cli\u003Eclass\u003C\/li\u003E\n\u003Cli\u003Eid\u003C\/li\u003E\n\u003Cli\u003Etarget\u003C\/li\u003E\n\u003Cli\u003Erel\u003C\/li\u003E\n\u003Cli\u003Earia-label\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022installation-and-configuration\u0022\u003EInstallation and configuration\u003C\/h3\u003E\n\u003Ch4 id=\u0022ckeditor-5-drupal-10-drupal-11\u0022\u003ECKEditor 5 (Drupal 10 \/ Drupal 11)\u003C\/h4\u003E\n\u003Cp\u003EInstall as usual then:\u003C\/p\u003E\n\u003Col\u003E\n\u003Cli\u003EGo to the \u0022Text formats and editors\u0022 admin page (admin\/config\/content\/formats)\u003C\/li\u003E\n\u003Cli\u003EConfigure your text format\u003C\/li\u003E\n\u003Cli\u003EEnable the additional attributes you want for this format in the \u0022Advanced links\u0022 tab of the \u0022CKEditor 5 plugin settings\u0022\u003C\/li\u003E\n\u003Cli\u003ESave your configuration\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Ch3 id=\u0022branches\u0022\u003EBranches\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ccode\u003E2.3.x\u003C\/code\u003E Support for CKEditor 45 (Drupal 10.5+ \/ Drupal 11.2+)\u003C\/li\u003E\n\u003Cli\u003E\u003Ccode\u003E2.2.x\u003C\/code\u003E Support for CKEditor 44 (Drupal 10.3 \/ 10.4 \/ 11.0 \/ 11.1)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022recommended\u0022\u003ERecommended\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/editor_file\u0022 rel=\u0022nofollow\u0022\u003EEditor File upload\u003C\/a\u003E to be able to create link to uploaded files easily.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/drupal.org\/project\/linkit\u0022 rel=\u0022nofollow\u0022\u003ELinkit\u003C\/a\u003E provides an easy interface for internal and external linking with wysiwyg editors by using an autocomplete field.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/ckeditor_entity_link\u0022 rel=\u0022nofollow\u0022\u003ECKEditor Entity Link\u003C\/a\u003E is an alternative to Linkit that also provides an easy interface for internal linking within the editor.\u003C\/li\u003E\n\u003Cul\u003E\n\u003C\/ul\u003E\u003C\/ul\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Enhances the link Dialog in CKEditor by allowing the following attributes to be defined: title, class, id, target, rel and more."},"field_active_installs":"{\u00228.x-1.x\u0022:9430,\u00222.0.x\u0022:1684,\u00222.x\u0022:8,\u00222.1.x\u0022:1908,\u00222.2.x\u0022:30264,\u00222.3.x\u0022:72007}","field_active_installs_total":115301,"field_composer_namespace":"drupal\/editor_advanced_link","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/editor_advanced_link\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"editor_advanced_link","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"1327c4bb-07c0-44cb-8c05-0b43343cd1a3","meta":{"drupal_internal__target_id":931394}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/8132e3dd-d0c9-4906-8f0b-0a563091e8b7\/uid?resourceVersion=id%3A20036877"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/8132e3dd-d0c9-4906-8f0b-0a563091e8b7\/relationships\/uid?resourceVersion=id%3A20036877"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/8132e3dd-d0c9-4906-8f0b-0a563091e8b7\/field_development_status?resourceVersion=id%3A20036877"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/8132e3dd-d0c9-4906-8f0b-0a563091e8b7\/relationships\/field_development_status?resourceVersion=id%3A20036877"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/8132e3dd-d0c9-4906-8f0b-0a563091e8b7\/field_maintenance_status?resourceVersion=id%3A20036877"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/8132e3dd-d0c9-4906-8f0b-0a563091e8b7\/relationships\/field_maintenance_status?resourceVersion=id%3A20036877"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","meta":{"drupal_internal__target_id":187}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/8132e3dd-d0c9-4906-8f0b-0a563091e8b7\/field_module_categories?resourceVersion=id%3A20036877"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/8132e3dd-d0c9-4906-8f0b-0a563091e8b7\/relationships\/field_module_categories?resourceVersion=id%3A20036877"}}},"field_project_images":{"data":[{"type":"file--file","id":"1d280e76-f990-417a-ab61-332bdf85aed8","meta":{"alt":"Enriched link configuration screenshot","title":null,"width":1786,"height":1028,"drupal_internal__target_id":1440232}},{"type":"file--file","id":"3fc238f6-61a2-420f-b55e-6e68e848d87d","meta":{"alt":"Enriched link dialog screenshot","title":null,"width":802,"height":1274,"drupal_internal__target_id":1440233}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/8132e3dd-d0c9-4906-8f0b-0a563091e8b7\/field_project_images?resourceVersion=id%3A20036877"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/8132e3dd-d0c9-4906-8f0b-0a563091e8b7\/relationships\/field_project_images?resourceVersion=id%3A20036877"}}}}},{"type":"node--project_module","id":"db7348cf-e07f-41f2-b403-98257ba5b3b2","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/db7348cf-e07f-41f2-b403-98257ba5b3b2?resourceVersion=id%3A20050276"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/db7348cf-e07f-41f2-b403-98257ba5b3b2?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":3137306,"status":true,"title":"jQuery UI Datepicker","created":"2020-05-17T02:51:53+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"\u003Cp\u003EDrupal 8 includes jQuery UI in core, however it is no longer actively\r\nmaintained and has been marked deprecated. This module provides the\r\njQuery UI Datepicker library for any themes and modules that require it.\u003C\/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EjQuery UI \u003Ca href=\u0022https:\/\/jqueryui.com\/datepicker\/\u0022\u003EDatepicker documentation\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003EjQuery UI \u003Ca href=\u0022https:\/\/api.jqueryui.com\/datepicker\/\u0022\u003EDatepicker API documentation\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Cp\u003E\u003Cstrong\u003ECaution\u003C\/strong\u003E: jQuery UI was deprecated from core because it is no longer\r\nactively maintained, and has been marked \u201cEnd of Life\u201d by the OpenJS\r\nFoundation. It is not recommended to depend on jQuery UI in your own\r\ncode, and instead to select a replacement solution as soon as possible.\u003C\/p\u003E\r\n\u003Ch2 id=\u0022instructions\u0022\u003EInstructions\u003C\/h2\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003EInstall this module and the jQuery UI module.\u003C\/li\u003E\r\n\u003Cli\u003EChange any references in your theme or module from\r\n\u003Ccode\u003Ecore\/jquery.ui.datepicker\u003C\/code\u003E to \u003Ccode\u003Ejquery_ui_datepicker\/datepicker\u003C\/code\u003E\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\u003Ch3 id=\u0022requirements\u0022\u003ERequirements\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui\u0022\u003EjQuery UI\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Ch3 id=\u0022related-modules\u0022\u003ERelated modules\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_accordion\u0022\u003EjQuery UI Accordion\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_autocomplete\u0022\u003EjQuery UI Autocomplete\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_button\u0022\u003EjQuery UI Button\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_checkboxradio\u0022\u003EjQuery UI Checkboxradio\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_controlgroup\u0022\u003EjQuery UI Controlgroup\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_dialog\u0022\u003EjQuery UI Dialog\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_draggable\u0022\u003EjQuery UI Draggable\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_droppable\u0022\u003EjQuery UI Droppable\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_effects\u0022\u003EjQuery UI Effects\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_menu\u0022\u003EjQuery UI Menu\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_progressbar\u0022\u003EjQuery UI Progressbar\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_resizable\u0022\u003EjQuery UI Resizable\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_selectable\u0022\u003EjQuery UI Selectable\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_selectmenu\u0022\u003EjQuery UI Selectmenu\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_slider\u0022\u003EjQuery UI Slider\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_spinner\u0022\u003EjQuery UI Spinner\u003C\/a\u003E\u003C\/li\u003E\r\n    \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_tooltip\u0022\u003EjQuery UI Tooltip\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E","format":"1","processed":"\u003Cp\u003EDrupal 8 includes jQuery UI in core, however it is no longer actively\u003Cbr\u003E\nmaintained and has been marked deprecated. This module provides the\u003Cbr\u003E\njQuery UI Datepicker library for any themes and modules that require it.\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EjQuery UI \u003Ca href=\u0022https:\/\/jqueryui.com\/datepicker\/\u0022 rel=\u0022nofollow\u0022\u003EDatepicker documentation\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003EjQuery UI \u003Ca href=\u0022https:\/\/api.jqueryui.com\/datepicker\/\u0022 rel=\u0022nofollow\u0022\u003EDatepicker API documentation\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u003Cstrong\u003ECaution\u003C\/strong\u003E: jQuery UI was deprecated from core because it is no longer\u003Cbr\u003E\nactively maintained, and has been marked \u201cEnd of Life\u201d by the OpenJS\u003Cbr\u003E\nFoundation. It is not recommended to depend on jQuery UI in your own\u003Cbr\u003E\ncode, and instead to select a replacement solution as soon as possible.\u003C\/p\u003E\n\u003Ch2 id=\u0022instructions\u0022\u003EInstructions\u003C\/h2\u003E\n\u003Col\u003E\n\u003Cli\u003EInstall this module and the jQuery UI module.\u003C\/li\u003E\n\u003Cli\u003EChange any references in your theme or module from\u003Cbr\u003E\n\u003Ccode\u003Ecore\/jquery.ui.datepicker\u003C\/code\u003E to \u003Ccode\u003Ejquery_ui_datepicker\/datepicker\u003C\/code\u003E\u003C\/li\u003E\n\u003C\/ol\u003E\n\u003Ch3 id=\u0022requirements\u0022\u003ERequirements\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022related-modules\u0022\u003ERelated modules\u003C\/h3\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_accordion\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Accordion\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_autocomplete\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Autocomplete\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_button\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Button\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_checkboxradio\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Checkboxradio\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_controlgroup\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Controlgroup\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_dialog\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Dialog\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_draggable\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Draggable\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_droppable\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Droppable\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_effects\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Effects\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_menu\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Menu\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_progressbar\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Progressbar\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_resizable\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Resizable\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_selectable\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Selectable\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_selectmenu\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Selectmenu\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_slider\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Slider\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_spinner\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Spinner\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/jquery_ui_tooltip\u0022 rel=\u0022nofollow\u0022\u003EjQuery UI Tooltip\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E","summary":""},"field_active_installs":"{\u00228.x-1.x\u0022:18302,\u00222.x\u0022:11,\u00222.0.x\u0022:11822,\u00222.1.x\u0022:79269}","field_active_installs_total":109404,"field_composer_namespace":"drupal\/jquery_ui_datepicker","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"jquery_ui_datepicker","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"ac31d9c9-9a4f-400f-893b-a8b4e4fb1de0","meta":{"drupal_internal__target_id":371407}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/db7348cf-e07f-41f2-b403-98257ba5b3b2\/uid?resourceVersion=id%3A20050276"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/db7348cf-e07f-41f2-b403-98257ba5b3b2\/relationships\/uid?resourceVersion=id%3A20050276"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/db7348cf-e07f-41f2-b403-98257ba5b3b2\/field_development_status?resourceVersion=id%3A20050276"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/db7348cf-e07f-41f2-b403-98257ba5b3b2\/relationships\/field_development_status?resourceVersion=id%3A20050276"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/db7348cf-e07f-41f2-b403-98257ba5b3b2\/field_maintenance_status?resourceVersion=id%3A20050276"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/db7348cf-e07f-41f2-b403-98257ba5b3b2\/relationships\/field_maintenance_status?resourceVersion=id%3A20050276"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"086cebcf-200f-4c34-886e-f9921919b292","meta":{"drupal_internal__target_id":189}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/db7348cf-e07f-41f2-b403-98257ba5b3b2\/field_module_categories?resourceVersion=id%3A20050276"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/db7348cf-e07f-41f2-b403-98257ba5b3b2\/relationships\/field_module_categories?resourceVersion=id%3A20050276"}}},"field_project_images":{"data":[{"type":"file--file","id":"0605078a-a0e4-4487-b549-43557feeb529","meta":{"alt":"calendar accompanied by jquery ui logo","title":null,"width":512,"height":512,"drupal_internal__target_id":34419}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/db7348cf-e07f-41f2-b403-98257ba5b3b2\/field_project_images?resourceVersion=id%3A20050276"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/db7348cf-e07f-41f2-b403-98257ba5b3b2\/relationships\/field_project_images?resourceVersion=id%3A20050276"}}}}},{"type":"node--project_module","id":"d374213e-20cb-48c5-8505-b18b4f53cce5","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/d374213e-20cb-48c5-8505-b18b4f53cce5?resourceVersion=id%3A20033992"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/d374213e-20cb-48c5-8505-b18b4f53cce5?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":2421989,"status":true,"title":"Address","created":"2015-02-07T13:51:38+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"Provides functionality for storing, validating and displaying international postal addresses.\r\n\r\nThe Drupal 8 heir to the \u003Ca href=\u0022https:\/\/drupal.org\/project\/addressfield\u0022\u003Eaddressfield\u003C\/a\u003E module, powered by the \u003Ca href=\u0022https:\/\/github.com\/commerceguys\/addressing\u0022\u003Ecommerceguys\/addressing\u003C\/a\u003E  library.\r\n\r\n\u003Ch2\u003EFeatures:\u003C\/h2\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EAddress field type and form element\u003C\/li\u003E\r\n\u003Cli\u003ECountry field type and form element\u003C\/li\u003E\r\n\u003Cli\u003EZone field type and form element\u003C\/li\u003E\r\n\u003Cli\u003EAddress formats for 200 countries\u003C\/li\u003E\r\n\u003Cli\u003ESubdivisions (administrative areas, localities, dependent localities) for 60 countries\u003C\/li\u003E\r\n\u003Cli\u003ESubdivision translations for all of the parent country\u0027s (i.e Canada, Switzerland) official languages.\u003C\/li\u003E\r\n\u003Cli\u003ECountry list with translations for over 200 locales, provided by \u003Ca href=\u0022http:\/\/cldr.unicode.org\/\u0022\u003ECLDR\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E \r\n\r\nZones are territorial groupings often used for shipping or tax purposes. They can match countries, subdivisions (states\/provinces\/municipalities), postal codes. For example: \u0022California and Nevada\u0022, \u0022France and Monaco\u0022, \u0022Germany and a set of Austrian postal codes\u0022.\r\n\r\n\u003Ch2\u003EAddress data model\u003C\/h2\u003E\r\n\r\nEach address can have the following properties:\r\n\u003Cul\u003E\r\n\u003Cli\u003EGiven name (First name)\u003C\/li\u003E\r\n\u003Cli\u003EAdditional name (Middle name \/ Patronymic)\u003C\/li\u003E\r\n\u003Cli\u003EFamily name (Last name)\u003C\/li\u003E\r\n\u003Cli\u003EOrganization\u003C\/li\u003E\r\n\u003Cli\u003EAddress line 1\u003C\/li\u003E\r\n\u003Cli\u003EAddress line 2\u003C\/li\u003E\r\n\u003Cli\u003EAddress line 3 (2.0.x only)\u003C\/li\u003E\r\n\u003Cli\u003EPostal code\u003C\/li\u003E\r\n\u003Cli\u003ESorting code\u003C\/li\u003E\r\n\u003Cli\u003EDependent Locality (Neighborhood \/ Suburb)\u003C\/li\u003E\r\n\u003Cli\u003ELocality (City)\u003C\/li\u003E\r\n\u003Cli\u003EAdministrative area (State \/ Province)\u003C\/li\u003E\r\n\u003Cli\u003ECountry\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\nProperty names follow the OASIS \u003Ca href=\u0022https:\/\/www.oasis-open.org\/committees\/ciq\/download.shtml\u0022\u003EeXtensible Address Language (xAL)\u003C\/a\u003E standard.\r\n\r\n\u003Ch2\u003EInstallation\u003C\/h2\u003E\r\nSince the module requires an external library, Composer or Ludwig must be used.\r\n\r\n\u003Ch3\u003EComposer\u003C\/h3\u003E\r\nIf your site is \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2718229\u0022\u003Emanaged via Composer\u003C\/a\u003E, use Composer to download the module, which will also download the required library:\r\n\u003Ccode\u003E\r\ncomposer require \u0022drupal\/address ^2.0\u0022\r\n\u003C\/code\u003E\r\n^2.0 downloads the latest release, use 2.0.x-dev to get the -dev release instead.\r\nUse \u003Ccode\u003Ecomposer update drupal\/address --with-dependencies\u003C\/code\u003E to update to a new release.\r\n\r\n\u003Ch3\u003ELudwig\u003C\/h3\u003E\r\nOtherwise, use \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/ludwig\u0022\u003ELudwig\u003C\/a\u003E which will allow you to manage the required libraries without Composer:\r\n\r\n\u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/contributed-modules\/ludwig\/installation-and-usage\u0022\u003ELudwig Installation and Usage\u003C\/a\u003E\r\n\u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/contributed-modules\/ludwig\/maintenance-of-ludwig-managed-modules\u0022\u003EMaintenance of Ludwig managed modules\u003C\/a\u003E\r\n\r\nNote that Composer is recommended whenever possible.\r\n","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EProvides functionality for storing, validating and displaying international postal addresses.\u003C\/p\u003E\n\u003Cp\u003EThe Drupal 8 heir to the \u003Ca href=\u0022https:\/\/drupal.org\/project\/addressfield\u0022 rel=\u0022nofollow\u0022\u003Eaddressfield\u003C\/a\u003E module, powered by the \u003Ca href=\u0022https:\/\/github.com\/commerceguys\/addressing\u0022 rel=\u0022nofollow\u0022\u003Ecommerceguys\/addressing\u003C\/a\u003E  library.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022features\u0022\u003EFeatures:\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003EAddress field type and form element\u003C\/li\u003E\n\u003Cli\u003ECountry field type and form element\u003C\/li\u003E\n\u003Cli\u003EZone field type and form element\u003C\/li\u003E\n\u003Cli\u003EAddress formats for 200 countries\u003C\/li\u003E\n\u003Cli\u003ESubdivisions (administrative areas, localities, dependent localities) for 60 countries\u003C\/li\u003E\n\u003Cli\u003ESubdivision translations for all of the parent country\u0027s (i.e Canada, Switzerland) official languages.\u003C\/li\u003E\n\u003Cli\u003ECountry list with translations for over 200 locales, provided by \u003Ca href=\u0022http:\/\/cldr.unicode.org\/\u0022 rel=\u0022nofollow\u0022\u003ECLDR\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EZones are territorial groupings often used for shipping or tax purposes. They can match countries, subdivisions (states\/provinces\/municipalities), postal codes. For example: \u0022California and Nevada\u0022, \u0022France and Monaco\u0022, \u0022Germany and a set of Austrian postal codes\u0022.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022address-data-model\u0022\u003EAddress data model\u003C\/h2\u003E\n\u003Cp\u003EEach address can have the following properties:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EGiven name (First name)\u003C\/li\u003E\n\u003Cli\u003EAdditional name (Middle name \/ Patronymic)\u003C\/li\u003E\n\u003Cli\u003EFamily name (Last name)\u003C\/li\u003E\n\u003Cli\u003EOrganization\u003C\/li\u003E\n\u003Cli\u003EAddress line 1\u003C\/li\u003E\n\u003Cli\u003EAddress line 2\u003C\/li\u003E\n\u003Cli\u003EAddress line 3 (2.0.x only)\u003C\/li\u003E\n\u003Cli\u003EPostal code\u003C\/li\u003E\n\u003Cli\u003ESorting code\u003C\/li\u003E\n\u003Cli\u003EDependent Locality (Neighborhood \/ Suburb)\u003C\/li\u003E\n\u003Cli\u003ELocality (City)\u003C\/li\u003E\n\u003Cli\u003EAdministrative area (State \/ Province)\u003C\/li\u003E\n\u003Cli\u003ECountry\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EProperty names follow the OASIS \u003Ca href=\u0022https:\/\/www.oasis-open.org\/committees\/ciq\/download.shtml\u0022 rel=\u0022nofollow\u0022\u003EeXtensible Address Language (xAL)\u003C\/a\u003E standard.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022installation\u0022\u003EInstallation\u003C\/h2\u003E\n\u003Cp\u003ESince the module requires an external library, Composer or Ludwig must be used.\u003C\/p\u003E\n\u003Ch3 id=\u0022composer\u0022\u003EComposer\u003C\/h3\u003E\n\u003Cp\u003EIf your site is \u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2718229\u0022 rel=\u0022nofollow\u0022\u003Emanaged via Composer\u003C\/a\u003E, use Composer to download the module, which will also download the required library:\u003Cbr\u003E\n\u003Ccode\u003E\u003Cbr\u003E\ncomposer require \u0022drupal\/address ^2.0\u0022\u003Cbr\u003E\n\u003C\/code\u003E\u003Cbr\u003E\n^2.0 downloads the latest release, use 2.0.x-dev to get the -dev release instead.\u003Cbr\u003E\nUse \u003Ccode\u003Ecomposer update drupal\/address --with-dependencies\u003C\/code\u003E to update to a new release.\u003C\/p\u003E\n\u003Ch3 id=\u0022ludwig\u0022\u003ELudwig\u003C\/h3\u003E\n\u003Cp\u003EOtherwise, use \u003Ca href=\u0022https:\/\/www.drupal.org\/project\/ludwig\u0022 rel=\u0022nofollow\u0022\u003ELudwig\u003C\/a\u003E which will allow you to manage the required libraries without Composer:\u003C\/p\u003E\n\u003Cp\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/contributed-modules\/ludwig\/installation-and-usage\u0022 rel=\u0022nofollow\u0022\u003ELudwig Installation and Usage\u003C\/a\u003E\u003Cbr\u003E\n\u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/contributed-modules\/ludwig\/maintenance-of-ludwig-managed-modules\u0022 rel=\u0022nofollow\u0022\u003EMaintenance of Ludwig managed modules\u003C\/a\u003E\u003C\/p\u003E\n\u003Cp\u003ENote that Composer is recommended whenever possible.\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Provides functionality for storing, validating and displaying international postal addresses."},"field_active_installs":"{\u00228.x-1.x\u0022:33509,\u00222.0.x\u0022:74494,\u00222.x\u0022:32,\u00222.1.x\u0022:24}","field_active_installs_total":108059,"field_composer_namespace":"drupal\/address","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/address\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"address","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"45dce456-4ddf-4269-9cd4-2e46bb0760ed","meta":{"drupal_internal__target_id":3661446}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/d374213e-20cb-48c5-8505-b18b4f53cce5\/uid?resourceVersion=id%3A20033992"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/d374213e-20cb-48c5-8505-b18b4f53cce5\/relationships\/uid?resourceVersion=id%3A20033992"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/d374213e-20cb-48c5-8505-b18b4f53cce5\/field_development_status?resourceVersion=id%3A20033992"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/d374213e-20cb-48c5-8505-b18b4f53cce5\/relationships\/field_development_status?resourceVersion=id%3A20033992"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/d374213e-20cb-48c5-8505-b18b4f53cce5\/field_maintenance_status?resourceVersion=id%3A20033992"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/d374213e-20cb-48c5-8505-b18b4f53cce5\/relationships\/field_maintenance_status?resourceVersion=id%3A20033992"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"754c04cb-6da2-42ba-9032-d64307f68f45","meta":{"drupal_internal__target_id":188}},{"type":"taxonomy_term--module_categories","id":"dcb48e9f-6afa-4842-8ef6-44b90b083fcc","meta":{"drupal_internal__target_id":200}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/d374213e-20cb-48c5-8505-b18b4f53cce5\/field_module_categories?resourceVersion=id%3A20033992"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/d374213e-20cb-48c5-8505-b18b4f53cce5\/relationships\/field_module_categories?resourceVersion=id%3A20033992"}}},"field_project_images":{"data":[{"type":"file--file","id":"e410d0c3-5d56-48aa-a88c-9a43f9582908","meta":{"alt":"Envelope with a Druplicon stamp and lines for addresses","title":null,"width":512,"height":512,"drupal_internal__target_id":36482}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/d374213e-20cb-48c5-8505-b18b4f53cce5\/field_project_images?resourceVersion=id%3A20033992"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/d374213e-20cb-48c5-8505-b18b4f53cce5\/relationships\/field_project_images?resourceVersion=id%3A20033992"}}}}},{"type":"node--project_module","id":"127fd4dc-e674-41ab-8815-1980c81703ba","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/127fd4dc-e674-41ab-8815-1980c81703ba?resourceVersion=id%3A20015584"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/127fd4dc-e674-41ab-8815-1980c81703ba?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":1232556,"status":true,"title":"Honeypot","created":"2011-07-28T15:41:54+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"Honeypot uses both the honeypot and timestamp methods of deterring spam bots from completing forms on your Drupal site (\u003Ca href=\u0022https:\/\/www.jeffgeerling.com\/blogs\/jeff-geerling\/introducing-honeypot-form-spam\u0022\u003Eread more here\u003C\/a\u003E). These methods are effective against many spam bots, and are not as intrusive as CAPTCHAs or other methods which \u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=FPOezLL398U\u0022\u003Epunish the user\u003C\/a\u003E [YouTube].\r\n\r\nThe module currently supports enabling for all forms on the site, or particular forms like user registration or password reset forms, webforms, contact forms, node forms, and comment forms.\r\n\r\n\u003Ch2\u003EConfiguration\u003C\/h2\u003E\r\n\r\nAll settings for this module are on the Honeypot configuration page, under the Configuration section, in the Content authoring settings. You can visit the configuration page directly at \u003Ccode\u003E\/admin\/config\/content\/honeypot\u003C\/code\u003E. Read more about what all the settings mean in the \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/contributed-modules\/honeypot\u0022\u003EHoneypot documentation\u003C\/a\u003E.\r\n\r\n\u003Ch2\u003EUse in Your Own Forms and Customizations\u003C\/h2\u003E\r\n\r\nIf you want to add honeypot to your own forms, or to any form through your own module\u0027s hook_form_alter\u0027s, you can simply place the following function call inside your form builder function (or inside a \u003Ccode\u003Ehook_form_alter()\u003C\/code\u003E):\r\n\u003C?php\r\n  \\Drupal::service(\u0027honeypot\u0027)-\u003EaddFormProtection($form, $form_state, [\u0027honeypot\u0027, \u0027time_restriction\u0027]);\r\n?\u003E\r\n\r\nNote that you can enable or disable either the honeypot field, or the time restriction on the form by including or not including the option in the array.\r\n\r\nYou can also use \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/honeypot\/-\/blob\/2.1.x\/honeypot.api.php\u0022\u003EHoneypot\u0027s API\u003C\/a\u003E to modify the time delay for forms, add or remove protections for certain forms, etc.\r\n\r\n\u003Ch2\u003ESuccess Stories\u003C\/h2\u003E\r\n\r\nMany people have reported dramatic reductions in spam when using this module; some of their stories can be found here: \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/contributed-modules\/honeypot\/honeypot-success-stories\u0022\u003EHoneypot success stories\u003C\/a\u003E.\r\n\r\n\u003Ch2\u003EFurther Reading\u003C\/h2\u003E\r\n\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.jeffgeerling.com\/articles\/web-design\/2011\/preventing-form-spam\u0022\u003EPreventing Form Spam\u003C\/a\u003E - article about different spam prevention techniques.\u003C\/li\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.jeffgeerling.com\/blogs\/jeff-geerling\/introducing-honeypot-form-spam\u0022\u003EIntroducing the Honeypot form spam protection module for Drupal\u003C\/a\u003E\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch2\u003ERelated modules\u003C\/h2\u003E\r\n\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/honeypot_entityform\u0022\u003EHoneypot Entityform\u003C\/a\u003E - Adds entityform integration\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch3\u003EAlternative modules\u003C\/h3\u003E\r\n\r\nThere are many spam-protection modules on drupal.org, some of which have more or less robust methods of dealing with form spam. Some of the most used and recommended include:\r\n\r\n\u003Cul\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/captcha\u0022\u003ECAPTCHA\u003C\/a\u003E - A simple image-based CAPTCHA builder.\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/recaptcha\u0022\u003EreCAPTCHA\u003C\/a\u003E - Implements \u003Ca href=\u0022http:\/\/www.google.com\/recaptcha\u0022\u003EreCAPTCHA\u003C\/a\u003E for image-based CAPTCHAs.\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/antibot\u0022\u003EAntiBot\u003C\/a\u003E A JavaScript based strategy for eliminating form submissions from bots.\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/botcha\u0022\u003EBOTCHA\u003C\/a\u003E - (Drupal 7) Has many different bot-defeating recipes.\u003C\/li\u003E\r\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/hidden_captcha\u0022\u003EHidden CAPTCHA\u003C\/a\u003E - (Drupal 7) Similar to this module in it\u0027s effectiveness.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Cem\u003EModule created by \u003Ca href=\u0022https:\/\/www.jeffgeerling.com\u0022\u003EJeff Geerling\u003C\/a\u003E\u003C\/em\u003E","format":"1","processed":"\u003Cdiv class=\u0022toc-filter\u0022\u003E\u003Cp\u003EHoneypot uses both the honeypot and timestamp methods of deterring spam bots from completing forms on your Drupal site (\u003Ca href=\u0022https:\/\/www.jeffgeerling.com\/blogs\/jeff-geerling\/introducing-honeypot-form-spam\u0022 rel=\u0022nofollow\u0022\u003Eread more here\u003C\/a\u003E). These methods are effective against many spam bots, and are not as intrusive as CAPTCHAs or other methods which \u003Ca href=\u0022https:\/\/www.youtube.com\/watch?v=FPOezLL398U\u0022 rel=\u0022nofollow\u0022\u003Epunish the user\u003C\/a\u003E [YouTube].\u003C\/p\u003E\n\u003Cp\u003EThe module currently supports enabling for all forms on the site, or particular forms like user registration or password reset forms, webforms, contact forms, node forms, and comment forms.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022configuration\u0022\u003EConfiguration\u003C\/h2\u003E\n\u003Cp\u003EAll settings for this module are on the Honeypot configuration page, under the Configuration section, in the Content authoring settings. You can visit the configuration page directly at \u003Ccode\u003E\/admin\/config\/content\/honeypot\u003C\/code\u003E. Read more about what all the settings mean in the \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/contributed-modules\/honeypot\u0022 rel=\u0022nofollow\u0022\u003EHoneypot documentation\u003C\/a\u003E.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022use-in-your-own-forms-and-customizations\u0022\u003EUse in Your Own Forms and Customizations\u003C\/h2\u003E\n\u003Cp\u003EIf you want to add honeypot to your own forms, or to any form through your own module\u0027s hook_form_alter\u0027s, you can simply place the following function call inside your form builder function (or inside a \u003Ccode\u003Ehook_form_alter()\u003C\/code\u003E):\u003Cbr\u003E\n\u0026lt;?php\u003Cbr\u003E\n  \\Drupal::service(\u0027honeypot\u0027)-\u0026gt;addFormProtection($form, $form_state, [\u0027honeypot\u0027, \u0027time_restriction\u0027]);\u003Cbr\u003E\n?\u0026gt;\u003C\/p\u003E\n\u003Cp\u003ENote that you can enable or disable either the honeypot field, or the time restriction on the form by including or not including the option in the array.\u003C\/p\u003E\n\u003Cp\u003EYou can also use \u003Ca href=\u0022https:\/\/git.drupalcode.org\/project\/honeypot\/-\/blob\/2.1.x\/honeypot.api.php\u0022 rel=\u0022nofollow\u0022\u003EHoneypot\u0027s API\u003C\/a\u003E to modify the time delay for forms, add or remove protections for certain forms, etc.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022success-stories\u0022\u003ESuccess Stories\u003C\/h2\u003E\n\u003Cp\u003EMany people have reported dramatic reductions in spam when using this module; some of their stories can be found here: \u003Ca href=\u0022https:\/\/www.drupal.org\/docs\/contributed-modules\/honeypot\/honeypot-success-stories\u0022 rel=\u0022nofollow\u0022\u003EHoneypot success stories\u003C\/a\u003E.\u003C\/p\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022further-reading\u0022\u003EFurther Reading\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.jeffgeerling.com\/articles\/web-design\/2011\/preventing-form-spam\u0022 rel=\u0022nofollow\u0022\u003EPreventing Form Spam\u003C\/a\u003E - article about different spam prevention techniques.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.jeffgeerling.com\/blogs\/jeff-geerling\/introducing-honeypot-form-spam\u0022 rel=\u0022nofollow\u0022\u003EIntroducing the Honeypot form spam protection module for Drupal\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\n\n\u003Ch2 id=\u0022related-modules\u0022\u003ERelated modules\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/honeypot_entityform\u0022 rel=\u0022nofollow\u0022\u003EHoneypot Entityform\u003C\/a\u003E - Adds entityform integration\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3 id=\u0022alternative-modules\u0022\u003EAlternative modules\u003C\/h3\u003E\n\u003Cp\u003EThere are many spam-protection modules on drupal.org, some of which have more or less robust methods of dealing with form spam. Some of the most used and recommended include:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/captcha\u0022 rel=\u0022nofollow\u0022\u003ECAPTCHA\u003C\/a\u003E - A simple image-based CAPTCHA builder.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/recaptcha\u0022 rel=\u0022nofollow\u0022\u003EreCAPTCHA\u003C\/a\u003E - Implements \u003Ca href=\u0022http:\/\/www.google.com\/recaptcha\u0022 rel=\u0022nofollow\u0022\u003EreCAPTCHA\u003C\/a\u003E for image-based CAPTCHAs.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/antibot\u0022 rel=\u0022nofollow\u0022\u003EAntiBot\u003C\/a\u003E A JavaScript based strategy for eliminating form submissions from bots.\n\u003C\/li\u003E\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/botcha\u0022 rel=\u0022nofollow\u0022\u003EBOTCHA\u003C\/a\u003E - (Drupal 7) Has many different bot-defeating recipes.\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/hidden_captcha\u0022 rel=\u0022nofollow\u0022\u003EHidden CAPTCHA\u003C\/a\u003E - (Drupal 7) Similar to this module in it\u0027s effectiveness.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u003Cem\u003EModule created by \u003Ca href=\u0022https:\/\/www.jeffgeerling.com\u0022 rel=\u0022nofollow\u0022\u003EJeff Geerling\u003C\/a\u003E\u003C\/em\u003E\u003C\/p\u003E\u003Ca href=\u0022#top\u0022 class=\u0022back-to-top\u0022\u003EBack to top\u003C\/a\u003E\u003C\/div\u003E","summary":"Uses both the honeypot and timestamp strategies to deter spam bots from completing forms on your site. These methods are effective and not as intrusive as CAPTCHAs or other schemes that punish the user."},"field_active_installs":"{\u00228.x-1.x\u0022:4605,\u00222.0.x\u0022:3878,\u00222.1.x\u0022:24973,\u00222.2.x\u0022:74497}","field_active_installs_total":107953,"field_composer_namespace":"drupal\/honeypot","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":{"uri":"https:\/\/git.drupalcode.org\/project\/honeypot\/-\/avatar","title":null,"options":[]},"field_project_has_releases":true,"field_project_machine_name":"honeypot","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"29f3329c-3b4c-4087-b880-1a8f2ed2895f","meta":{"drupal_internal__target_id":389011}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/127fd4dc-e674-41ab-8815-1980c81703ba\/uid?resourceVersion=id%3A20015584"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/127fd4dc-e674-41ab-8815-1980c81703ba\/relationships\/uid?resourceVersion=id%3A20015584"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/127fd4dc-e674-41ab-8815-1980c81703ba\/field_development_status?resourceVersion=id%3A20015584"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/127fd4dc-e674-41ab-8815-1980c81703ba\/relationships\/field_development_status?resourceVersion=id%3A20015584"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/127fd4dc-e674-41ab-8815-1980c81703ba\/field_maintenance_status?resourceVersion=id%3A20015584"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/127fd4dc-e674-41ab-8815-1980c81703ba\/relationships\/field_maintenance_status?resourceVersion=id%3A20015584"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","meta":{"drupal_internal__target_id":187}},{"type":"taxonomy_term--module_categories","id":"8117d8b0-f171-414d-b384-0bafa81bef9f","meta":{"drupal_internal__target_id":193}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/127fd4dc-e674-41ab-8815-1980c81703ba\/field_module_categories?resourceVersion=id%3A20015584"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/127fd4dc-e674-41ab-8815-1980c81703ba\/relationships\/field_module_categories?resourceVersion=id%3A20015584"}}},"field_project_images":{"data":[{"type":"file--file","id":"59b24965-fdaf-4b3b-bbff-08fe2f357394","meta":{"alt":"Honey Pot","title":null,"width":348,"height":357,"drupal_internal__target_id":4011}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/127fd4dc-e674-41ab-8815-1980c81703ba\/field_project_images?resourceVersion=id%3A20015584"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/127fd4dc-e674-41ab-8815-1980c81703ba\/relationships\/field_project_images?resourceVersion=id%3A20015584"}}}}},{"type":"node--project_module","id":"544f11cb-6871-4683-a948-fc1a912f3c25","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/544f11cb-6871-4683-a948-fc1a912f3c25?resourceVersion=id%3A20006419"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/544f11cb-6871-4683-a948-fc1a912f3c25?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__nid":147903,"status":true,"title":"reCAPTCHA","created":"2007-05-30T06:55:30+00:00","changed":"2026-04-07T05:20:02+00:00","moderation_state":null,"body":{"value":"Uses the Google \u003Ca href=\u0022https:\/\/www.google.com\/recaptcha\u0022\u003EreCAPTCHA\u003C\/a\u003E web service to improve the \u003Ca href=\u0022\/project\/captcha\u0022\u003ECAPTCHA system\u003C\/a\u003E. It is tough on bots and easy on humans.\r\n\r\nreCAPTCHA is built for security. Armed with state of the art technology, it always stays at the forefront of spam and abuse fighting trends. reCAPTCHA is on guard for you, so you can rest easy.\r\n\r\n\r\n\u003Ch5\u003EType of \u003Ca href=\u0022https:\/\/developers.google.com\/recaptcha\/docs\/versions\u0022\u003EreCAPTCHA\u003C\/a\u003E supported:\u003C\/h5\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EreCAPTCHA V2\u003C\/li\u003E\r\n  \u003Cli\u003EInvisible reCAPTCHA (\u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2852269\u0022\u003Ework in progress\u003C\/a\u003E)\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch5\u003ERequirements\u003C\/h5\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003EreCAPTCHA depends on the \u003Ca href=\u0022\/project\/captcha\u0022\u003ECAPTCHA module\u003C\/a\u003E.\u003C\/li\u003E\r\n  \u003Cli\u003EPHP 5.5 or higher.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Ch5\u003EAlternatives\u003C\/h5\u003E\r\n\u003Cul\u003E\r\n  \u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/friendlycaptcha\/\u0022\u003EFriendlyCaptcha\u003C\/a\u003E provides a European alternative and also has a free open source client included, if you don\u0027t need a subscription.\u003C\/li\u003E\r\n\u003C\/ul\u003E","format":"1","processed":"\u003Cp\u003EUses the Google \u003Ca href=\u0022https:\/\/www.google.com\/recaptcha\u0022 rel=\u0022nofollow\u0022\u003EreCAPTCHA\u003C\/a\u003E web service to improve the \u003Ca href=\u0022\/project\/captcha\u0022 rel=\u0022nofollow\u0022\u003ECAPTCHA system\u003C\/a\u003E. It is tough on bots and easy on humans.\u003C\/p\u003E\n\u003Cp\u003EreCAPTCHA is built for security. Armed with state of the art technology, it always stays at the forefront of spam and abuse fighting trends. reCAPTCHA is on guard for you, so you can rest easy.\u003C\/p\u003E\n\u003Ch5\u003EType of \u003Ca href=\u0022https:\/\/developers.google.com\/recaptcha\/docs\/versions\u0022 rel=\u0022nofollow\u0022\u003EreCAPTCHA\u003C\/a\u003E supported:\u003C\/h5\u003E\n\u003Cul\u003E\n\u003Cli\u003EreCAPTCHA V2\u003C\/li\u003E\n\u003Cli\u003EInvisible reCAPTCHA (\u003Ca href=\u0022https:\/\/www.drupal.org\/node\/2852269\u0022 rel=\u0022nofollow\u0022\u003Ework in progress\u003C\/a\u003E)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch5\u003ERequirements\u003C\/h5\u003E\n\u003Cul\u003E\n\u003Cli\u003EreCAPTCHA depends on the \u003Ca href=\u0022\/project\/captcha\u0022 rel=\u0022nofollow\u0022\u003ECAPTCHA module\u003C\/a\u003E.\u003C\/li\u003E\n\u003Cli\u003EPHP 5.5 or higher.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch5\u003EAlternatives\u003C\/h5\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\u0022https:\/\/www.drupal.org\/project\/friendlycaptcha\/\u0022 rel=\u0022nofollow\u0022\u003EFriendlyCaptcha\u003C\/a\u003E provides a European alternative and also has a free open source client included, if you don\u0027t need a subscription.\u003C\/li\u003E\n\u003C\/ul\u003E","summary":"Uses the reCAPTCHA web service to improve the CAPTCHA system. Tough on bots. Easy on humans.\r\n"},"field_active_installs":"{\u00228.x-2.x\u0022:6420,\u00228.x-3.x\u0022:97944}","field_active_installs_total":104364,"field_composer_namespace":"drupal\/recaptcha","field_core_semver_maximum":12000000,"field_core_semver_minimum":8000000,"field_issue_summary_template":null,"field_logo_url":null,"field_project_has_releases":true,"field_project_machine_name":"recaptcha","field_security_advisory_coverage":"covered"},"relationships":{"uid":{"data":{"type":"user--user","id":"ecfb8a9b-bbee-49de-98cd-129f7d4ebe17","meta":{"drupal_internal__target_id":61114}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/544f11cb-6871-4683-a948-fc1a912f3c25\/uid?resourceVersion=id%3A20006419"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/544f11cb-6871-4683-a948-fc1a912f3c25\/relationships\/uid?resourceVersion=id%3A20006419"}}},"field_development_status":{"data":{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","meta":{"drupal_internal__target_id":27274}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/544f11cb-6871-4683-a948-fc1a912f3c25\/field_development_status?resourceVersion=id%3A20006419"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/544f11cb-6871-4683-a948-fc1a912f3c25\/relationships\/field_development_status?resourceVersion=id%3A20006419"}}},"field_maintenance_status":{"data":{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","meta":{"drupal_internal__target_id":27271}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/544f11cb-6871-4683-a948-fc1a912f3c25\/field_maintenance_status?resourceVersion=id%3A20006419"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/544f11cb-6871-4683-a948-fc1a912f3c25\/relationships\/field_maintenance_status?resourceVersion=id%3A20006419"}}},"field_module_categories":{"data":[{"type":"taxonomy_term--module_categories","id":"3322058a-a158-4806-ac5b-9bcabc95edac","meta":{"drupal_internal__target_id":185}},{"type":"taxonomy_term--module_categories","id":"8117d8b0-f171-414d-b384-0bafa81bef9f","meta":{"drupal_internal__target_id":193}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/544f11cb-6871-4683-a948-fc1a912f3c25\/field_module_categories?resourceVersion=id%3A20006419"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/544f11cb-6871-4683-a948-fc1a912f3c25\/relationships\/field_module_categories?resourceVersion=id%3A20006419"}}},"field_project_images":{"data":[{"type":"file--file","id":"087fa013-5234-4fb8-bfb3-01360ef9f7d9","meta":{"alt":"reCAPTCHA 2.x widget (with JavaScript)","title":null,"width":311,"height":87,"drupal_internal__target_id":15857}},{"type":"file--file","id":"78ac1c75-38aa-4397-810f-038ec42790b6","meta":{"alt":"reCAPTCHA 2.x widget","title":null,"width":401,"height":673,"drupal_internal__target_id":16017}}],"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/544f11cb-6871-4683-a948-fc1a912f3c25\/field_project_images?resourceVersion=id%3A20006419"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/node\/project_module\/544f11cb-6871-4683-a948-fc1a912f3c25\/relationships\/field_project_images?resourceVersion=id%3A20006419"}}}}}],"included":[{"type":"taxonomy_term--module_categories","id":"24830916-5c07-4446-89de-960915f87bf6","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/24830916-5c07-4446-89de-960915f87bf6?resourceVersion=id%3A199"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/24830916-5c07-4446-89de-960915f87bf6?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Access control","drupal_internal__tid":199,"status":true,"description":{"value":"Grant or restrict access to content, assets, or site functionality, or extend the authentication\/login process.","format":"1","processed":"\u003Cp\u003EGrant or restrict access to content, assets, or site functionality, or extend the authentication\/login process.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"8117d8b0-f171-414d-b384-0bafa81bef9f","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/8117d8b0-f171-414d-b384-0bafa81bef9f?resourceVersion=id%3A193"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/8117d8b0-f171-414d-b384-0bafa81bef9f?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Security","drupal_internal__tid":193,"status":true,"description":{"value":"Help protect the website from attackers or bad actors, by identifying, preventing, or mitigating security vulnerabilities.","format":"1","processed":"\u003Cp\u003EHelp protect the website from attackers or bad actors, by identifying, preventing, or mitigating security vulnerabilities.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"abf23828-f269-4d39-8589-b731209eb154","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/abf23828-f269-4d39-8589-b731209eb154?resourceVersion=id%3A186"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/abf23828-f269-4d39-8589-b731209eb154?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Administration tools","drupal_internal__tid":186,"status":true,"description":{"value":"Empower site builders and administrators with no-code tools to setup, enhance, configure, or maintain the site.","format":"1","processed":"\u003Cp\u003EEmpower site builders and administrators with no-code tools to setup, enhance, configure, or maintain the site.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"86237004-3801-40cf-96b5-fe7d60efccb5","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/86237004-3801-40cf-96b5-fe7d60efccb5?resourceVersion=id%3A187"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/86237004-3801-40cf-96b5-fe7d60efccb5?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Content editing experience","drupal_internal__tid":187,"status":true,"description":{"value":"Enhance the editorial interface and improve the processes and workflows around creating, editing or removing content.","format":"1","processed":"\u003Cp\u003EEnhance the editorial interface and improve the processes and workflows around creating, editing or removing content.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"086cebcf-200f-4c34-886e-f9921919b292","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/086cebcf-200f-4c34-886e-f9921919b292?resourceVersion=id%3A189"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/086cebcf-200f-4c34-886e-f9921919b292?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Developer tools","drupal_internal__tid":189,"status":true,"description":{"value":"Empower developers with tools that assist with developing and debugging the frontend or backend of the site.","format":"1","processed":"\u003Cp\u003EEmpower developers with tools that assist with developing and debugging the frontend or backend of the site.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"68428c33-1db7-438d-b1b3-e23004e0982b","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/68428c33-1db7-438d-b1b3-e23004e0982b?resourceVersion=id%3A192"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/68428c33-1db7-438d-b1b3-e23004e0982b?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Media","drupal_internal__tid":192,"status":true,"description":{"value":"Enhance functionality related to media, or expand media resource types, such as images, videos, audio files, or documents.","format":"1","processed":"\u003Cp\u003EEnhance functionality related to media, or expand media resource types, such as images, videos, audio files, or documents.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"8d7b9b34-6ae2-4e9b-b3a2-f0bb3109500a","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/8d7b9b34-6ae2-4e9b-b3a2-f0bb3109500a?resourceVersion=id%3A196"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/8d7b9b34-6ae2-4e9b-b3a2-f0bb3109500a?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Site search","drupal_internal__tid":196,"status":true,"description":{"value":"Enhance functionality relating to the search of content and data on the site.","format":"1","processed":"\u003Cp\u003EEnhance functionality relating to the search of content and data on the site.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"3cf38e0a-d4b1-426d-9b8e-008e7a41cf8d","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/3cf38e0a-d4b1-426d-9b8e-008e7a41cf8d?resourceVersion=id%3A194"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/3cf38e0a-d4b1-426d-9b8e-008e7a41cf8d?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Multilingual","drupal_internal__tid":194,"status":true,"description":{"value":"Provide tools for translation and display of text in multiple languages and support for regionalization\/localization for dates, numbers, currency, measurement, or other local contexts.","format":"1","processed":"\u003Cp\u003EProvide tools for translation and display of text in multiple languages and support for regionalization\/localization for dates, numbers, currency, measurement, or other local contexts.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"01df2105-2397-4a0e-b34c-80da1c3b1208","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/01df2105-2397-4a0e-b34c-80da1c3b1208?resourceVersion=id%3A201"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/01df2105-2397-4a0e-b34c-80da1c3b1208?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Search engine optimization (SEO)","drupal_internal__tid":201,"status":true,"description":{"value":"Manage or improve the site\u0027s search engine ranking by running audits, assessing metrics, or making the site\u2019s content and data more digestible by search engines.","format":"1","processed":"\u003Cp\u003EManage or improve the site\u0027s search engine ranking by running audits, assessing metrics, or making the site\u2019s content and data more digestible by search engines.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"754c04cb-6da2-42ba-9032-d64307f68f45","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/754c04cb-6da2-42ba-9032-d64307f68f45?resourceVersion=id%3A188"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/754c04cb-6da2-42ba-9032-d64307f68f45?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Content display","drupal_internal__tid":188,"status":true,"description":{"value":"Configure the layout and format of content and data presented to site visitors.","format":"1","processed":"\u003Cp\u003EConfigure the layout and format of content and data presented to site visitors.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"dcb48e9f-6afa-4842-8ef6-44b90b083fcc","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/dcb48e9f-6afa-4842-8ef6-44b90b083fcc?resourceVersion=id%3A200"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/dcb48e9f-6afa-4842-8ef6-44b90b083fcc?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Site structure","drupal_internal__tid":200,"status":true,"description":{"value":"Extend the structure of the site by way of content models, data storage, field types, and navigation, so it is more understandable to users.","format":"1","processed":"\u003Cp\u003EExtend the structure of the site by way of content models, data storage, field types, and navigation, so it is more understandable to users.\u003C\/p\u003E"}}},{"type":"taxonomy_term--module_categories","id":"3322058a-a158-4806-ac5b-9bcabc95edac","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/3322058a-a158-4806-ac5b-9bcabc95edac?resourceVersion=id%3A185"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/module_categories\/3322058a-a158-4806-ac5b-9bcabc95edac?resourceVersion=rel%3Aworking-copy"}},"attributes":{"name":"Integrations","drupal_internal__tid":185,"status":true,"description":{"value":"Use a third-party CSS or JS Framework, a self-hosted service like a CRM, or a third-party service with the site.","format":"1","processed":"\u003Cp\u003EUse a third-party CSS or JS Framework, a self-hosted service like a CRM, or a third-party service with the site.\u003C\/p\u003E"}}},{"type":"taxonomy_term--maintenance_status","id":"cee844e2-68b5-489d-bafa-6a0ade2b6dfd","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/cee844e2-68b5-489d-bafa-6a0ade2b6dfd?resourceVersion=id%3A27273"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/cee844e2-68b5-489d-bafa-6a0ade2b6dfd?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__tid":27273,"status":true,"name":"Minimally maintained","description":{"value":"Maintainers monitor issues, but fast responses are not guaranteed.","format":"1","processed":"\u003Cp\u003EMaintainers monitor issues, but fast responses are not guaranteed.\u003C\/p\u003E"}}},{"type":"taxonomy_term--maintenance_status","id":"089406ad-304d-4737-80d1-2f08527ae49e","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/089406ad-304d-4737-80d1-2f08527ae49e?resourceVersion=id%3A27271"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/089406ad-304d-4737-80d1-2f08527ae49e?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__tid":27271,"status":true,"name":"Actively maintained","description":{"value":"Maintainers strive to actively monitor issues and respond in a timely manner.","format":"1","processed":"\u003Cp\u003EMaintainers strive to actively monitor issues and respond in a timely manner.\u003C\/p\u003E"}}},{"type":"taxonomy_term--maintenance_status","id":"09a378d2-fd35-41f3-bff0-10d9801741a4","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/09a378d2-fd35-41f3-bff0-10d9801741a4?resourceVersion=id%3A27269"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/maintenance_status\/09a378d2-fd35-41f3-bff0-10d9801741a4?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__tid":27269,"status":true,"name":"Seeking co-maintainer(s)","description":{"value":"Maintainers are looking for help reviewing issues.","format":"1","processed":"\u003Cp\u003EMaintainers are looking for help reviewing issues.\u003C\/p\u003E"}}},{"type":"taxonomy_term--development_status","id":"219c1cf2-dd7f-474b-9dd5-a26643fbc699","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/development_status\/219c1cf2-dd7f-474b-9dd5-a26643fbc699?resourceVersion=id%3A27276"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/development_status\/219c1cf2-dd7f-474b-9dd5-a26643fbc699?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__tid":27276,"status":true,"name":"Maintenance fixes only","description":{"value":"Considered feature-complete by its maintainers.","format":"1","processed":"\u003Cp\u003EConsidered feature-complete by its maintainers.\u003C\/p\u003E"}}},{"type":"taxonomy_term--development_status","id":"e767288c-9800-4fb4-aeb8-8c311533838a","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/development_status\/e767288c-9800-4fb4-aeb8-8c311533838a?resourceVersion=id%3A27274"},"working-copy":{"href":"https:\/\/new.drupal.org\/jsonapi\/taxonomy_term\/development_status\/e767288c-9800-4fb4-aeb8-8c311533838a?resourceVersion=rel%3Aworking-copy"}},"attributes":{"drupal_internal__tid":27274,"status":true,"name":"Under active development","description":{"value":"This project is under active development.","format":"1","processed":"\u003Cp\u003EThis project is under active development.\u003C\/p\u003E"}}},{"type":"user--user","id":"c7047c8f-c3cc-4139-bee4-6561bce7eb73","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/c7047c8f-c3cc-4139-bee4-6561bce7eb73"}},"attributes":{"display_name":"wundo","drupal_internal__uid":25523,"name":"wundo","field_country":"BR","field_first_name":"Fabiano","field_git_username":"wundo","field_last_name":"Sant\u0027Ana"},"relationships":{"user_picture":{"data":null,"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/c7047c8f-c3cc-4139-bee4-6561bce7eb73\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/c7047c8f-c3cc-4139-bee4-6561bce7eb73\/relationships\/user_picture"}}}}},{"type":"user--user","id":"697a4f51-935c-4e22-9998-0b9e77f384b6","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/697a4f51-935c-4e22-9998-0b9e77f384b6"}},"attributes":{"display_name":"rlhawk","drupal_internal__uid":352283,"name":"rlhawk","field_country":"US","field_first_name":"Rick","field_git_username":"rlhawk","field_last_name":"Hawkins"},"relationships":{"user_picture":{"data":{"type":"file--file","id":"94e66f82-0b9e-4c6f-b300-95dae42c7673","meta":{"alt":null,"title":null,"width":1024,"height":1023,"drupal_internal__target_id":150802}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/697a4f51-935c-4e22-9998-0b9e77f384b6\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/697a4f51-935c-4e22-9998-0b9e77f384b6\/relationships\/user_picture"}}}}},{"type":"user--user","id":"45aa7efc-40a7-4cd3-a412-723ef2d49285","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/45aa7efc-40a7-4cd3-a412-723ef2d49285"}},"attributes":{"display_name":"Drupal Media Team","drupal_internal__uid":3260690,"name":"Drupal Media Team","field_country":null,"field_first_name":null,"field_git_username":"DrupalMedia","field_last_name":null},"relationships":{"user_picture":{"data":{"type":"file--file","id":"992629c2-134b-4da2-9434-73f839586d5b","meta":{"alt":null,"title":null,"width":261,"height":261,"drupal_internal__target_id":87132}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/45aa7efc-40a7-4cd3-a412-723ef2d49285\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/45aa7efc-40a7-4cd3-a412-723ef2d49285\/relationships\/user_picture"}}}}},{"type":"user--user","id":"1bdec67e-37de-4c05-90b0-a70ef5152697","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/1bdec67e-37de-4c05-90b0-a70ef5152697"}},"attributes":{"display_name":"drunken monkey","drupal_internal__uid":205582,"name":"drunken monkey","field_country":"AT","field_first_name":"Thomas","field_git_username":"drunkenmonkey","field_last_name":"Seidl"},"relationships":{"user_picture":{"data":{"type":"file--file","id":"78382c03-91e4-460a-9e88-2e11c61a0192","meta":{"alt":null,"title":null,"width":250,"height":250,"drupal_internal__target_id":95403}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/1bdec67e-37de-4c05-90b0-a70ef5152697\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/1bdec67e-37de-4c05-90b0-a70ef5152697\/relationships\/user_picture"}}}}},{"type":"user--user","id":"55b0368f-e284-450a-9b1d-63f71951fe22","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/55b0368f-e284-450a-9b1d-63f71951fe22"}},"attributes":{"display_name":"gbyte","drupal_internal__uid":2381352,"name":"gbyte","field_country":"DE","field_first_name":"Pawel","field_git_username":"gbyte.co","field_last_name":"Ginalski"},"relationships":{"user_picture":{"data":{"type":"file--file","id":"c98e809d-9155-465e-8e84-a43c2086cb97","meta":{"alt":null,"title":null,"width":350,"height":350,"drupal_internal__target_id":84791}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/55b0368f-e284-450a-9b1d-63f71951fe22\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/55b0368f-e284-450a-9b1d-63f71951fe22\/relationships\/user_picture"}}}}},{"type":"user--user","id":"2d65edfe-729c-46f7-9c2d-b3d1b5bbe619","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/2d65edfe-729c-46f7-9c2d-b3d1b5bbe619"}},"attributes":{"display_name":"anon","drupal_internal__uid":464598,"name":"anon","field_country":"SE","field_first_name":"Emil","field_git_username":"anon","field_last_name":"Stjerneman"},"relationships":{"user_picture":{"data":{"type":"file--file","id":"43bf80ed-f88a-45d6-9dda-d105b025890b","meta":{"alt":null,"title":null,"width":681,"height":1024,"drupal_internal__target_id":83501}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/2d65edfe-729c-46f7-9c2d-b3d1b5bbe619\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/2d65edfe-729c-46f7-9c2d-b3d1b5bbe619\/relationships\/user_picture"}}}}},{"type":"user--user","id":"45dce456-4ddf-4269-9cd4-2e46bb0760ed","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/45dce456-4ddf-4269-9cd4-2e46bb0760ed"}},"attributes":{"display_name":"centarro","drupal_internal__uid":3661446,"name":"centarro","field_country":"US","field_first_name":null,"field_git_username":"centarro","field_last_name":null},"relationships":{"user_picture":{"data":{"type":"file--file","id":"6bc46d67-73f3-4c2d-be8c-4bb55ac8f7c5","meta":{"alt":null,"title":null,"width":400,"height":400,"drupal_internal__target_id":154011}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/45dce456-4ddf-4269-9cd4-2e46bb0760ed\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/45dce456-4ddf-4269-9cd4-2e46bb0760ed\/relationships\/user_picture"}}}}},{"type":"user--user","id":"1327c4bb-07c0-44cb-8c05-0b43343cd1a3","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/1327c4bb-07c0-44cb-8c05-0b43343cd1a3"}},"attributes":{"display_name":"duaelfr","drupal_internal__uid":931394,"name":"duaelfr","field_country":"FR","field_first_name":"Edouard","field_git_username":"DuaelFr","field_last_name":"Cunibil"},"relationships":{"user_picture":{"data":{"type":"file--file","id":"0a06a5d4-ad98-4734-b323-db9339cda0dd","meta":{"alt":null,"title":null,"width":400,"height":500,"drupal_internal__target_id":66121}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/1327c4bb-07c0-44cb-8c05-0b43343cd1a3\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/1327c4bb-07c0-44cb-8c05-0b43343cd1a3\/relationships\/user_picture"}}}}},{"type":"user--user","id":"ac31d9c9-9a4f-400f-893b-a8b4e4fb1de0","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/ac31d9c9-9a4f-400f-893b-a8b4e4fb1de0"}},"attributes":{"display_name":"jrockowitz","drupal_internal__uid":371407,"name":"jrockowitz","field_country":"US","field_first_name":"Jacob","field_git_username":"jrockowitz","field_last_name":"Rockowitz"},"relationships":{"user_picture":{"data":{"type":"file--file","id":"d920e38b-8128-4cee-9656-08f3495925a9","meta":{"alt":null,"title":null,"width":140,"height":140,"drupal_internal__target_id":114812}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/ac31d9c9-9a4f-400f-893b-a8b4e4fb1de0\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/ac31d9c9-9a4f-400f-893b-a8b4e4fb1de0\/relationships\/user_picture"}}}}},{"type":"user--user","id":"29f3329c-3b4c-4087-b880-1a8f2ed2895f","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/29f3329c-3b4c-4087-b880-1a8f2ed2895f"}},"attributes":{"display_name":"geerlingguy","drupal_internal__uid":389011,"name":"geerlingguy","field_country":"US","field_first_name":"Jeff","field_git_username":"geerlingguy","field_last_name":"Geerling"},"relationships":{"user_picture":{"data":{"type":"file--file","id":"8dc2d508-4e64-4125-805c-d8a5fb33cb29","meta":{"alt":null,"title":null,"width":1023,"height":1024,"drupal_internal__target_id":176061}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/29f3329c-3b4c-4087-b880-1a8f2ed2895f\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/29f3329c-3b4c-4087-b880-1a8f2ed2895f\/relationships\/user_picture"}}}}},{"type":"user--user","id":"ecfb8a9b-bbee-49de-98cd-129f7d4ebe17","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/ecfb8a9b-bbee-49de-98cd-129f7d4ebe17"}},"attributes":{"display_name":"robloach","drupal_internal__uid":61114,"name":"robloach","field_country":"CA","field_first_name":"Rob","field_git_username":"robloach","field_last_name":"Loach"},"relationships":{"user_picture":{"data":{"type":"file--file","id":"520b605b-608f-4dcb-a42c-cd2cbbeb4cce","meta":{"alt":null,"title":null,"width":200,"height":200,"drupal_internal__target_id":23387}},"links":{"related":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/ecfb8a9b-bbee-49de-98cd-129f7d4ebe17\/user_picture"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/user\/user\/ecfb8a9b-bbee-49de-98cd-129f7d4ebe17\/relationships\/user_picture"}}}}},{"type":"file--file","id":"01777060-f8c3-44bc-84e3-46383fd85c9e","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/01777060-f8c3-44bc-84e3-46383fd85c9e"}},"attributes":{"uri":{"value":"public:\/\/project-images\/captcha.png","url":"\/assets\/project-images\/captcha.png"}}},{"type":"file--file","id":"d6c4296c-a6be-44bb-9932-2bc46ef698ba","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/d6c4296c-a6be-44bb-9932-2bc46ef698ba"}},"attributes":{"uri":{"value":"public:\/\/images\/image_captcha_example.png","url":"\/assets\/images\/image_captcha_example.png"}}},{"type":"file--file","id":"d681bbe2-89b1-40e8-95aa-20d65a39c685","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/d681bbe2-89b1-40e8-95aa-20d65a39c685"}},"attributes":{"uri":{"value":"public:\/\/project-images\/BEF-Basic-Settings.png","url":"\/assets\/project-images\/BEF-Basic-Settings.png"}}},{"type":"file--file","id":"c656b479-878c-43dc-a76f-9928edcd6fcd","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/c656b479-878c-43dc-a76f-9928edcd6fcd"}},"attributes":{"uri":{"value":"public:\/\/project-images\/BEF-Form-Settings.png","url":"\/assets\/project-images\/BEF-Form-Settings.png"}}},{"type":"file--file","id":"8525328c-d554-4d16-9250-03f84e4269ca","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/8525328c-d554-4d16-9250-03f84e4269ca"}},"attributes":{"uri":{"value":"public:\/\/project-images\/BEF-Filter-Settings.png","url":"\/assets\/project-images\/BEF-Filter-Settings.png"}}},{"type":"file--file","id":"ad73639c-9a26-4617-8877-4e5e64583277","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/ad73639c-9a26-4617-8877-4e5e64583277"}},"attributes":{"uri":{"value":"public:\/\/project-images\/logo_CROP.png","url":"\/assets\/project-images\/logo_CROP.png"}}},{"type":"file--file","id":"27598096-d0fc-4b5f-bc26-3693e6d0e4af","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/27598096-d0fc-4b5f-bc26-3693e6d0e4af"}},"attributes":{"uri":{"value":"public:\/\/images\/view_1.png","url":"\/assets\/images\/view_1.png"}}},{"type":"file--file","id":"74efd6e2-fe40-40b8-87ed-3484204a72ba","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/74efd6e2-fe40-40b8-87ed-3484204a72ba"}},"attributes":{"uri":{"value":"public:\/\/project-images\/search_with_facets_sort_autocomplete.png","url":"\/assets\/project-images\/search_with_facets_sort_autocomplete.png"}}},{"type":"file--file","id":"d73c100b-81f7-4b56-afa7-e17c741c72be","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/d73c100b-81f7-4b56-afa7-e17c741c72be"}},"attributes":{"uri":{"value":"public:\/\/project-images\/status_0.png","url":"\/assets\/project-images\/status_0.png"}}},{"type":"file--file","id":"71f70248-22b1-4e56-a5da-d690e372ca2b","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/71f70248-22b1-4e56-a5da-d690e372ca2b"}},"attributes":{"uri":{"value":"public:\/\/project-images\/inclusion.png","url":"\/assets\/project-images\/inclusion.png"}}},{"type":"file--file","id":"40db45d5-b026-4f8b-9c1a-276abe5263c6","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/40db45d5-b026-4f8b-9c1a-276abe5263c6"}},"attributes":{"uri":{"value":"public:\/\/project-images\/inclusion2.png","url":"\/assets\/project-images\/inclusion2.png"}}},{"type":"file--file","id":"c59f4e11-4add-4430-958b-23bac7b72428","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/c59f4e11-4add-4430-958b-23bac7b72428"}},"attributes":{"uri":{"value":"public:\/\/project-images\/Inline-Entity-Form.png","url":"\/assets\/project-images\/Inline-Entity-Form.png"}}},{"type":"file--file","id":"1d280e76-f990-417a-ab61-332bdf85aed8","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/1d280e76-f990-417a-ab61-332bdf85aed8"}},"attributes":{"uri":{"value":"public:\/\/project-images\/editor_advanced_link-config.png","url":"\/assets\/project-images\/editor_advanced_link-config.png"}}},{"type":"file--file","id":"3fc238f6-61a2-420f-b55e-6e68e848d87d","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/3fc238f6-61a2-420f-b55e-6e68e848d87d"}},"attributes":{"uri":{"value":"public:\/\/project-images\/editor_advanced_link-edit.png","url":"\/assets\/project-images\/editor_advanced_link-edit.png"}}},{"type":"file--file","id":"0605078a-a0e4-4487-b549-43557feeb529","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/0605078a-a0e4-4487-b549-43557feeb529"}},"attributes":{"uri":{"value":"public:\/\/project-images\/jqueryui_datepicker.png","url":"\/assets\/project-images\/jqueryui_datepicker.png"}}},{"type":"file--file","id":"e410d0c3-5d56-48aa-a88c-9a43f9582908","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/e410d0c3-5d56-48aa-a88c-9a43f9582908"}},"attributes":{"uri":{"value":"public:\/\/project-images\/address-logo-no-border.png","url":"\/assets\/project-images\/address-logo-no-border.png"}}},{"type":"file--file","id":"59b24965-fdaf-4b3b-bbff-08fe2f357394","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/59b24965-fdaf-4b3b-bbff-08fe2f357394"}},"attributes":{"uri":{"value":"public:\/\/images\/Honey-Pot.png","url":"\/assets\/images\/Honey-Pot.png"}}},{"type":"file--file","id":"087fa013-5234-4fb8-bfb3-01360ef9f7d9","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/087fa013-5234-4fb8-bfb3-01360ef9f7d9"}},"attributes":{"uri":{"value":"public:\/\/project-images\/reCAPTCHA.png","url":"\/assets\/project-images\/reCAPTCHA.png"}}},{"type":"file--file","id":"78ac1c75-38aa-4397-810f-038ec42790b6","links":{"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/file\/file\/78ac1c75-38aa-4397-810f-038ec42790b6"}},"attributes":{"uri":{"value":"public:\/\/project-images\/reCAPTCHA_images_0.png","url":"\/assets\/project-images\/reCAPTCHA_images_0.png"}}}],"meta":{"count":38056},"links":{"first":{"href":"https:\/\/new.drupal.org\/jsonapi\/index\/project_modules?filter%5Bstatus%5D=1\u0026filter%5Btype%5D=project_module\u0026filter%5Bproject_type%5D=full\u0026filter%5Bn_security_coverage%5D%5Bvalue%5D%5B0%5D=revoked\u0026filter%5Bn_security_coverage%5D%5Boperator%5D=NOT%20IN\u0026filter%5Bn_security_coverage%5D%5Bpath%5D=security_coverage\u0026page%5Boffset%5D=0\u0026page%5Blimit%5D=12\u0026include=field_module_categories%2Cfield_maintenance_status%2Cfield_development_status%2Cuid%2Cfield_project_images"},"last":{"href":"https:\/\/new.drupal.org\/jsonapi\/index\/project_modules?filter%5Bstatus%5D=1\u0026filter%5Btype%5D=project_module\u0026filter%5Bproject_type%5D=full\u0026filter%5Bn_security_coverage%5D%5Bvalue%5D%5B0%5D=revoked\u0026filter%5Bn_security_coverage%5D%5Boperator%5D=NOT%20IN\u0026filter%5Bn_security_coverage%5D%5Bpath%5D=security_coverage\u0026page%5Boffset%5D=38052\u0026page%5Blimit%5D=12\u0026include=field_module_categories%2Cfield_maintenance_status%2Cfield_development_status%2Cuid%2Cfield_project_images"},"next":{"href":"https:\/\/new.drupal.org\/jsonapi\/index\/project_modules?filter%5Bstatus%5D=1\u0026filter%5Btype%5D=project_module\u0026filter%5Bproject_type%5D=full\u0026filter%5Bn_security_coverage%5D%5Bvalue%5D%5B0%5D=revoked\u0026filter%5Bn_security_coverage%5D%5Boperator%5D=NOT%20IN\u0026filter%5Bn_security_coverage%5D%5Bpath%5D=security_coverage\u0026page%5Boffset%5D=24\u0026page%5Blimit%5D=12\u0026include=field_module_categories%2Cfield_maintenance_status%2Cfield_development_status%2Cuid%2Cfield_project_images"},"prev":{"href":"https:\/\/new.drupal.org\/jsonapi\/index\/project_modules?filter%5Bstatus%5D=1\u0026filter%5Btype%5D=project_module\u0026filter%5Bproject_type%5D=full\u0026filter%5Bn_security_coverage%5D%5Bvalue%5D%5B0%5D=revoked\u0026filter%5Bn_security_coverage%5D%5Boperator%5D=NOT%20IN\u0026filter%5Bn_security_coverage%5D%5Bpath%5D=security_coverage\u0026page%5Boffset%5D=0\u0026page%5Blimit%5D=12\u0026include=field_module_categories%2Cfield_maintenance_status%2Cfield_development_status%2Cuid%2Cfield_project_images"},"self":{"href":"https:\/\/new.drupal.org\/jsonapi\/index\/project_modules?filter%5Bstatus%5D=1\u0026filter%5Btype%5D=project_module\u0026filter%5Bproject_type%5D=full\u0026filter%5Bn_security_coverage%5D%5Bvalue%5D%5B0%5D=revoked\u0026filter%5Bn_security_coverage%5D%5Boperator%5D=NOT%20IN\u0026filter%5Bn_security_coverage%5D%5Bpath%5D=security_coverage\u0026include=field_module_categories%2Cfield_maintenance_status%2Cfield_development_status%2Cuid%2Cfield_project_images\u0026page%5Blimit%5D=12\u0026page%5Boffset%5D=12"}}}