Tools Full text search.

GET /api/search/tools/
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 4564,
    "next": "https://toolhub.wikimedia.org/api/search/tools/?page=2",
    "previous": null,
    "facets": {
        "_filter_tool_type": {
            "doc_count": 4564,
            "tool_type": {
                "meta": {
                    "type": "terms",
                    "param": "tool_type__term",
                    "missing_param": "tool_type__isnull",
                    "missing_value": "--",
                    "multi": false
                },
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 1,
                "buckets": [
                    {
                        "key": "web app",
                        "doc_count": 1867
                    },
                    {
                        "key": "--",
                        "doc_count": 1538
                    },
                    {
                        "key": "user script",
                        "doc_count": 997
                    },
                    {
                        "key": "bot",
                        "doc_count": 70
                    },
                    {
                        "key": "other",
                        "doc_count": 37
                    },
                    {
                        "key": "gadget",
                        "doc_count": 27
                    },
                    {
                        "key": "command line tool",
                        "doc_count": 17
                    },
                    {
                        "key": "coding framework",
                        "doc_count": 11
                    },
                    {
                        "key": "desktop app",
                        "doc_count": 10
                    },
                    {
                        "key": "template",
                        "doc_count": 2
                    }
                ]
            }
        },
        "_filter_ui_language": {
            "doc_count": 4564,
            "ui_language": {
                "meta": {
                    "type": "terms",
                    "param": "ui_language__term",
                    "missing_param": "ui_language__isnull",
                    "missing_value": "--",
                    "multi": true
                },
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 715,
                "buckets": [
                    {
                        "key": "--",
                        "doc_count": 4110
                    },
                    {
                        "key": "en",
                        "doc_count": 424
                    },
                    {
                        "key": "de",
                        "doc_count": 67
                    },
                    {
                        "key": "es",
                        "doc_count": 58
                    },
                    {
                        "key": "fr",
                        "doc_count": 48
                    },
                    {
                        "key": "pt",
                        "doc_count": 38
                    },
                    {
                        "key": "en-gb",
                        "doc_count": 26
                    },
                    {
                        "key": "ru",
                        "doc_count": 25
                    },
                    {
                        "key": "it",
                        "doc_count": 23
                    },
                    {
                        "key": "ja",
                        "doc_count": 22
                    }
                ]
            }
        },
        "_filter_content_types": {
            "doc_count": 4564,
            "content_types": {
                "meta": {
                    "type": "terms",
                    "param": "content_types__term",
                    "missing_param": "content_types__isnull",
                    "missing_value": "--",
                    "multi": true
                },
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 164,
                "buckets": [
                    {
                        "key": "--",
                        "doc_count": 4363
                    },
                    {
                        "key": "data::structured",
                        "doc_count": 42
                    },
                    {
                        "key": "software",
                        "doc_count": 42
                    },
                    {
                        "key": "article",
                        "doc_count": 40
                    },
                    {
                        "key": "image",
                        "doc_count": 39
                    },
                    {
                        "key": "data::user",
                        "doc_count": 17
                    },
                    {
                        "key": "data::bibliography",
                        "doc_count": 16
                    },
                    {
                        "key": "data::linguistic",
                        "doc_count": 15
                    },
                    {
                        "key": "audio",
                        "doc_count": 14
                    },
                    {
                        "key": "data::category",
                        "doc_count": 14
                    }
                ]
            }
        },
        "_filter_author": {
            "doc_count": 4564,
            "author": {
                "meta": {
                    "type": "terms",
                    "param": "author__term",
                    "missing_param": "author__isnull",
                    "missing_value": "--",
                    "multi": false
                },
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 4310,
                "buckets": [
                    {
                        "key": "Magnus Manske",
                        "doc_count": 191
                    },
                    {
                        "key": "Bryan Davis",
                        "doc_count": 68
                    },
                    {
                        "key": "Legoktm",
                        "doc_count": 66
                    },
                    {
                        "key": "BrandonXLF",
                        "doc_count": 48
                    },
                    {
                        "key": "Enterprisey",
                        "doc_count": 43
                    },
                    {
                        "key": "MusikAnimal",
                        "doc_count": 37
                    },
                    {
                        "key": "Amir Sarabadani",
                        "doc_count": 32
                    },
                    {
                        "key": "damian",
                        "doc_count": 31
                    },
                    {
                        "key": "David Caro",
                        "doc_count": 29
                    },
                    {
                        "key": "SD0001",
                        "doc_count": 29
                    }
                ]
            }
        },
        "_filter_license": {
            "doc_count": 4564,
            "license": {
                "meta": {
                    "type": "terms",
                    "param": "license__term",
                    "missing_param": "license__isnull",
                    "missing_value": "--",
                    "multi": false
                },
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 284,
                "buckets": [
                    {
                        "key": "MIT",
                        "doc_count": 1286
                    },
                    {
                        "key": "CC-BY-SA-4.0",
                        "doc_count": 911
                    },
                    {
                        "key": "GPL-3.0-or-later",
                        "doc_count": 512
                    },
                    {
                        "key": "GPL-3.0-only",
                        "doc_count": 474
                    },
                    {
                        "key": "--",
                        "doc_count": 471
                    },
                    {
                        "key": "Apache-2.0",
                        "doc_count": 282
                    },
                    {
                        "key": "AGPL-3.0-only",
                        "doc_count": 98
                    },
                    {
                        "key": "AGPL-3.0-or-later",
                        "doc_count": 94
                    },
                    {
                        "key": "GPL-2.0-only",
                        "doc_count": 88
                    },
                    {
                        "key": "GPL-2.0-or-later",
                        "doc_count": 64
                    }
                ]
            }
        },
        "_filter_origin": {
            "doc_count": 4564,
            "origin": {
                "meta": {
                    "type": "terms",
                    "param": "origin__term",
                    "missing_param": "origin__isnull",
                    "missing_value": "--",
                    "multi": false
                },
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 0,
                "buckets": [
                    {
                        "key": "crawler",
                        "doc_count": 4291
                    },
                    {
                        "key": "api",
                        "doc_count": 273
                    }
                ]
            }
        },
        "_filter_wiki": {
            "doc_count": 4564,
            "wiki": {
                "meta": {
                    "type": "terms",
                    "param": "wiki__term",
                    "missing_param": "wiki__isnull",
                    "missing_value": "--",
                    "multi": true
                },
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 171,
                "buckets": [
                    {
                        "key": "--",
                        "doc_count": 4199
                    },
                    {
                        "key": "wikidata.org",
                        "doc_count": 120
                    },
                    {
                        "key": "*",
                        "doc_count": 76
                    },
                    {
                        "key": "commons.wikimedia.org",
                        "doc_count": 68
                    },
                    {
                        "key": "*.wikipedia.org",
                        "doc_count": 28
                    },
                    {
                        "key": "en.wikipedia.org",
                        "doc_count": 22
                    },
                    {
                        "key": "*.wikisource.org",
                        "doc_count": 13
                    },
                    {
                        "key": "meta.wikimedia.org",
                        "doc_count": 7
                    },
                    {
                        "key": "de.wikipedia.org",
                        "doc_count": 6
                    },
                    {
                        "key": "es.wikipedia.org",
                        "doc_count": 6
                    }
                ]
            }
        },
        "_filter_tasks": {
            "doc_count": 4564,
            "tasks": {
                "meta": {
                    "type": "terms",
                    "param": "tasks__term",
                    "missing_param": "tasks__isnull",
                    "missing_value": "--",
                    "multi": true
                },
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 166,
                "buckets": [
                    {
                        "key": "--",
                        "doc_count": 4376
                    },
                    {
                        "key": "analysis",
                        "doc_count": 43
                    },
                    {
                        "key": "editing",
                        "doc_count": 40
                    },
                    {
                        "key": "categorizing",
                        "doc_count": 26
                    },
                    {
                        "key": "tools",
                        "doc_count": 25
                    },
                    {
                        "key": "creating",
                        "doc_count": 20
                    },
                    {
                        "key": "ranking",
                        "doc_count": 19
                    },
                    {
                        "key": "reading",
                        "doc_count": 16
                    },
                    {
                        "key": "uploading",
                        "doc_count": 16
                    },
                    {
                        "key": "recommending",
                        "doc_count": 15
                    }
                ]
            }
        },
        "_filter_audiences": {
            "doc_count": 4564,
            "audiences": {
                "meta": {
                    "type": "terms",
                    "param": "audiences__term",
                    "missing_param": "audiences__isnull",
                    "missing_value": "--",
                    "multi": true
                },
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 0,
                "buckets": [
                    {
                        "key": "--",
                        "doc_count": 4333
                    },
                    {
                        "key": "editor",
                        "doc_count": 144
                    },
                    {
                        "key": "developer",
                        "doc_count": 76
                    },
                    {
                        "key": "reader",
                        "doc_count": 63
                    },
                    {
                        "key": "researcher",
                        "doc_count": 44
                    },
                    {
                        "key": "admin",
                        "doc_count": 37
                    },
                    {
                        "key": "organizer",
                        "doc_count": 34
                    }
                ]
            }
        },
        "_filter_subject_domains": {
            "doc_count": 4564,
            "subject_domains": {
                "meta": {
                    "type": "terms",
                    "param": "subject_domains__term",
                    "missing_param": "subject_domains__isnull",
                    "missing_value": "--",
                    "multi": true
                },
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 0,
                "buckets": [
                    {
                        "key": "--",
                        "doc_count": 4496
                    },
                    {
                        "key": "glam",
                        "doc_count": 29
                    },
                    {
                        "key": "cultural",
                        "doc_count": 23
                    },
                    {
                        "key": "language",
                        "doc_count": 20
                    },
                    {
                        "key": "geography",
                        "doc_count": 17
                    },
                    {
                        "key": "history",
                        "doc_count": 16
                    },
                    {
                        "key": "education",
                        "doc_count": 15
                    },
                    {
                        "key": "science",
                        "doc_count": 15
                    },
                    {
                        "key": "outreach",
                        "doc_count": 13
                    },
                    {
                        "key": "biography",
                        "doc_count": 12
                    }
                ]
            }
        },
        "_filter_keywords": {
            "doc_count": 4564,
            "keywords": {
                "meta": {
                    "type": "terms",
                    "param": "keywords__term",
                    "missing_param": "keywords__isnull",
                    "missing_value": "--",
                    "multi": true
                },
                "doc_count_error_upper_bound": 0,
                "sum_other_doc_count": 4684,
                "buckets": [
                    {
                        "key": "--",
                        "doc_count": 2301
                    },
                    {
                        "key": "wikidata",
                        "doc_count": 425
                    },
                    {
                        "key": "bot",
                        "doc_count": 208
                    },
                    {
                        "key": "python",
                        "doc_count": 149
                    },
                    {
                        "key": "commons",
                        "doc_count": 129
                    },
                    {
                        "key": "pywikibot",
                        "doc_count": 124
                    },
                    {
                        "key": "wikipedia",
                        "doc_count": 120
                    },
                    {
                        "key": "wikimedia commons",
                        "doc_count": 115
                    },
                    {
                        "key": "api",
                        "doc_count": 79
                    },
                    {
                        "key": "statistics",
                        "doc_count": 66
                    }
                ]
            }
        }
    },
    "results": [
        {
            "name": "enwiki-epicgenius-copy-category-links",
            "title": "Copy category links",
            "description": "When viewing a category page, adds a link titled \"List category pages\" to the sidebar. When clicked, the link generates a list of wikilinks to pages in the category (up to 5000 links), and copies them to your clipboard.",
            "url": "https://en.wikipedia.org/wiki/User:Epicgenius/copycategorylinks.js",
            "keywords": [],
            "author": [
                {
                    "name": "Epicgenius",
                    "wiki_username": null,
                    "developer_username": null,
                    "email": null,
                    "url": null
                }
            ],
            "repository": null,
            "subtitle": null,
            "openhub_id": null,
            "url_alternates": [],
            "bot_username": null,
            "deprecated": false,
            "replaced_by": null,
            "experimental": false,
            "for_wikis": [],
            "icon": null,
            "license": "CC-BY-SA-4.0",
            "sponsor": [],
            "available_ui_languages": [],
            "technology_used": [],
            "tool_type": "user script",
            "api_url": null,
            "developer_docs_url": [],
            "user_docs_url": [],
            "feedback_url": [],
            "privacy_policy_url": [],
            "translate_url": null,
            "bugtracker_url": null,
            "annotations": {
                "wikidata_qid": null,
                "audiences": [],
                "content_types": [],
                "tasks": [],
                "subject_domains": [],
                "deprecated": false,
                "replaced_by": null,
                "experimental": false,
                "for_wikis": [],
                "icon": null,
                "available_ui_languages": [],
                "tool_type": null,
                "repository": null,
                "api_url": null,
                "developer_docs_url": [],
                "user_docs_url": [],
                "feedback_url": [],
                "privacy_policy_url": [],
                "translate_url": null,
                "bugtracker_url": null
            },
            "_schema": null,
            "_language": "en",
            "origin": "crawler",
            "created_by": {
                "id": 3,
                "username": "BDavis (WMF)"
            },
            "created_date": "2026-09-16T19:01:25.751148+00:00",
            "modified_by": {
                "id": 3,
                "username": "BDavis (WMF)"
            },
            "modified_date": "2026-09-16T19:01:25.751189+00:00"
        },
        {
            "name": "toolforge-mergers-and-acquisitions",
            "title": "M&A: A Wikidata Merge Assistant",
            "description": "The goal of this tool is to help users find and merge items on Wikidata using various heuristics and a convenient web UI.",
            "url": "https://mergers-and-acquisitions.toolforge.org/",
            "keywords": [
                "nodejs",
                "wikidata"
            ],
            "author": [
                {
                    "name": "Nicereddy",
                    "wiki_username": null,
                    "developer_username": null,
                    "email": null,
                    "url": null
                }
            ],
            "repository": "https://gitlab.wikimedia.org/toolforge-repos/mergers-and-acquisitions",
            "subtitle": null,
            "openhub_id": null,
            "url_alternates": [],
            "bot_username": null,
            "deprecated": false,
            "replaced_by": null,
            "experimental": false,
            "for_wikis": [],
            "icon": null,
            "license": "MIT",
            "sponsor": [],
            "available_ui_languages": [],
            "technology_used": [
                "Toolforge"
            ],
            "tool_type": "web app",
            "api_url": null,
            "developer_docs_url": [],
            "user_docs_url": [],
            "feedback_url": [],
            "privacy_policy_url": [],
            "translate_url": null,
            "bugtracker_url": null,
            "annotations": {
                "wikidata_qid": null,
                "audiences": [],
                "content_types": [],
                "tasks": [],
                "subject_domains": [],
                "deprecated": false,
                "replaced_by": null,
                "experimental": false,
                "for_wikis": [],
                "icon": null,
                "available_ui_languages": [],
                "tool_type": null,
                "repository": null,
                "api_url": null,
                "developer_docs_url": [],
                "user_docs_url": [],
                "feedback_url": [],
                "privacy_policy_url": [],
                "translate_url": null,
                "bugtracker_url": null
            },
            "_schema": "/toolinfo/1.2.2",
            "_language": "en",
            "origin": "crawler",
            "created_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "created_date": "2026-09-16T19:00:55.559504+00:00",
            "modified_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "modified_date": "2026-09-16T19:00:55.559527+00:00"
        },
        {
            "name": "toolforge-flickr2commons-tsc",
            "title": "Flickr2Commons (TSC fork)",
            "description": "A fork of flickr2commons-ng for batch-transferring Flickr photos to Wikimedia Commons, with more resilient upload error handling/retries and extra options (custom Flickr API key override, a second wikitext insertion field, and visible upload failures for retry).",
            "url": "https://toolsadmin.wikimedia.org/tools/id/flickr2commons-tsc",
            "keywords": [
                "flickr",
                "uploader"
            ],
            "author": [
                {
                    "name": "TimSC",
                    "wiki_username": null,
                    "developer_username": null,
                    "email": null,
                    "url": null
                }
            ],
            "repository": null,
            "subtitle": null,
            "openhub_id": null,
            "url_alternates": [],
            "bot_username": null,
            "deprecated": false,
            "replaced_by": null,
            "experimental": false,
            "for_wikis": [],
            "icon": null,
            "license": "GPL-2.0-or-later",
            "sponsor": [],
            "available_ui_languages": [],
            "technology_used": [
                "Toolforge"
            ],
            "tool_type": null,
            "api_url": null,
            "developer_docs_url": [],
            "user_docs_url": [],
            "feedback_url": [],
            "privacy_policy_url": [],
            "translate_url": null,
            "bugtracker_url": null,
            "annotations": {
                "wikidata_qid": null,
                "audiences": [],
                "content_types": [],
                "tasks": [],
                "subject_domains": [],
                "deprecated": false,
                "replaced_by": null,
                "experimental": false,
                "for_wikis": [],
                "icon": null,
                "available_ui_languages": [],
                "tool_type": null,
                "repository": null,
                "api_url": null,
                "developer_docs_url": [],
                "user_docs_url": [],
                "feedback_url": [],
                "privacy_policy_url": [],
                "translate_url": null,
                "bugtracker_url": null
            },
            "_schema": "/toolinfo/1.2.2",
            "_language": "en",
            "origin": "crawler",
            "created_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "created_date": "2026-09-16T19:00:53.050382+00:00",
            "modified_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "modified_date": "2026-09-16T19:00:53.050403+00:00"
        },
        {
            "name": "toolforge-ambilectio",
            "title": "Ambilectio",
            "description": "A neat tool for visualizing election data on Wikidata.",
            "url": "https://ambilectio.toolforge.org/",
            "keywords": [
                "elections",
                "visualization",
                "wikidata"
            ],
            "author": [
                {
                    "name": "Roc0ast3r",
                    "wiki_username": null,
                    "developer_username": null,
                    "email": null,
                    "url": null
                }
            ],
            "repository": null,
            "subtitle": null,
            "openhub_id": null,
            "url_alternates": [],
            "bot_username": null,
            "deprecated": false,
            "replaced_by": null,
            "experimental": false,
            "for_wikis": [],
            "icon": null,
            "license": "MIT",
            "sponsor": [],
            "available_ui_languages": [],
            "technology_used": [
                "Toolforge"
            ],
            "tool_type": "web app",
            "api_url": null,
            "developer_docs_url": [],
            "user_docs_url": [],
            "feedback_url": [],
            "privacy_policy_url": [],
            "translate_url": null,
            "bugtracker_url": null,
            "annotations": {
                "wikidata_qid": null,
                "audiences": [],
                "content_types": [],
                "tasks": [],
                "subject_domains": [],
                "deprecated": false,
                "replaced_by": null,
                "experimental": false,
                "for_wikis": [],
                "icon": null,
                "available_ui_languages": [],
                "tool_type": null,
                "repository": null,
                "api_url": null,
                "developer_docs_url": [],
                "user_docs_url": [],
                "feedback_url": [],
                "privacy_policy_url": [],
                "translate_url": null,
                "bugtracker_url": null
            },
            "_schema": "/toolinfo/1.2.2",
            "_language": "en",
            "origin": "crawler",
            "created_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "created_date": "2026-09-16T07:00:47.791100+00:00",
            "modified_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "modified_date": "2026-09-16T07:00:47.791136+00:00"
        },
        {
            "name": "metawiki-nguoidungkhongdinhdanh-requirereason",
            "title": "RequireReason",
            "description": "Disable the submit button if no reason is given on various special pages (<code>action=delete</code>, [[Special:MovePage]] and more).",
            "url": "https://meta.wikimedia.org/wiki/User:NguoiDungKhongDinhDanh/RequireReason.js",
            "keywords": [],
            "author": [
                {
                    "name": "NguoiDungKhongDinhDanh",
                    "wiki_username": null,
                    "developer_username": null,
                    "email": null,
                    "url": null
                }
            ],
            "repository": null,
            "subtitle": null,
            "openhub_id": null,
            "url_alternates": [],
            "bot_username": null,
            "deprecated": false,
            "replaced_by": null,
            "experimental": false,
            "for_wikis": [],
            "icon": null,
            "license": "CC-BY-SA-4.0",
            "sponsor": [],
            "available_ui_languages": [],
            "technology_used": [],
            "tool_type": "user script",
            "api_url": null,
            "developer_docs_url": [],
            "user_docs_url": [],
            "feedback_url": [],
            "privacy_policy_url": [],
            "translate_url": null,
            "bugtracker_url": null,
            "annotations": {
                "wikidata_qid": null,
                "audiences": [],
                "content_types": [],
                "tasks": [],
                "subject_domains": [],
                "deprecated": false,
                "replaced_by": null,
                "experimental": false,
                "for_wikis": [],
                "icon": null,
                "available_ui_languages": [],
                "tool_type": null,
                "repository": null,
                "api_url": null,
                "developer_docs_url": [],
                "user_docs_url": [],
                "feedback_url": [],
                "privacy_policy_url": [],
                "translate_url": null,
                "bugtracker_url": null
            },
            "_schema": null,
            "_language": "en",
            "origin": "crawler",
            "created_by": {
                "id": 3,
                "username": "BDavis (WMF)"
            },
            "created_date": "2026-09-15T22:01:20.735929+00:00",
            "modified_by": {
                "id": 3,
                "username": "BDavis (WMF)"
            },
            "modified_date": "2026-09-15T22:01:20.735954+00:00"
        },
        {
            "name": "metawiki-nguoidungkhongdinhdanh-renderreasons",
            "title": "RenderReasons",
            "description": "Render canned reasons (templates not included) on various special pages (<code>action=delete</code>, [[Special:MovePage]] and more).",
            "url": "https://meta.wikimedia.org/wiki/User:NguoiDungKhongDinhDanh/RenderReasons.js",
            "keywords": [],
            "author": [
                {
                    "name": "NguoiDungKhongDinhDanh",
                    "wiki_username": null,
                    "developer_username": null,
                    "email": null,
                    "url": null
                }
            ],
            "repository": null,
            "subtitle": null,
            "openhub_id": null,
            "url_alternates": [],
            "bot_username": null,
            "deprecated": false,
            "replaced_by": null,
            "experimental": false,
            "for_wikis": [],
            "icon": null,
            "license": "CC-BY-SA-4.0",
            "sponsor": [],
            "available_ui_languages": [],
            "technology_used": [],
            "tool_type": "user script",
            "api_url": null,
            "developer_docs_url": [],
            "user_docs_url": [],
            "feedback_url": [],
            "privacy_policy_url": [],
            "translate_url": null,
            "bugtracker_url": null,
            "annotations": {
                "wikidata_qid": null,
                "audiences": [],
                "content_types": [],
                "tasks": [],
                "subject_domains": [],
                "deprecated": false,
                "replaced_by": null,
                "experimental": false,
                "for_wikis": [],
                "icon": null,
                "available_ui_languages": [],
                "tool_type": null,
                "repository": null,
                "api_url": null,
                "developer_docs_url": [],
                "user_docs_url": [],
                "feedback_url": [],
                "privacy_policy_url": [],
                "translate_url": null,
                "bugtracker_url": null
            },
            "_schema": null,
            "_language": "en",
            "origin": "crawler",
            "created_by": {
                "id": 3,
                "username": "BDavis (WMF)"
            },
            "created_date": "2026-09-15T22:01:20.613536+00:00",
            "modified_by": {
                "id": 3,
                "username": "BDavis (WMF)"
            },
            "modified_date": "2026-09-15T22:01:20.613573+00:00"
        },
        {
            "name": "toolforge-sample-python-ptd-app",
            "title": "Push-to-deploy basic tutorial",
            "description": "Sample python push-to-deploy app",
            "url": "https://toolsadmin.wikimedia.org/tools/id/sample-python-ptd-app",
            "keywords": [],
            "author": [
                {
                    "name": "SSapaty (WMF)",
                    "wiki_username": null,
                    "developer_username": null,
                    "email": null,
                    "url": null
                }
            ],
            "repository": "https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app",
            "subtitle": null,
            "openhub_id": null,
            "url_alternates": [],
            "bot_username": null,
            "deprecated": false,
            "replaced_by": null,
            "experimental": false,
            "for_wikis": [],
            "icon": null,
            "license": "MIT",
            "sponsor": [],
            "available_ui_languages": [],
            "technology_used": [
                "Toolforge"
            ],
            "tool_type": null,
            "api_url": null,
            "developer_docs_url": [],
            "user_docs_url": [],
            "feedback_url": [],
            "privacy_policy_url": [],
            "translate_url": null,
            "bugtracker_url": null,
            "annotations": {
                "wikidata_qid": null,
                "audiences": [],
                "content_types": [],
                "tasks": [],
                "subject_domains": [],
                "deprecated": false,
                "replaced_by": null,
                "experimental": false,
                "for_wikis": [],
                "icon": null,
                "available_ui_languages": [],
                "tool_type": null,
                "repository": null,
                "api_url": null,
                "developer_docs_url": [],
                "user_docs_url": [],
                "feedback_url": [],
                "privacy_policy_url": [],
                "translate_url": null,
                "bugtracker_url": null
            },
            "_schema": "/toolinfo/1.2.2",
            "_language": "en",
            "origin": "crawler",
            "created_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "created_date": "2026-09-15T08:00:46.114903+00:00",
            "modified_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "modified_date": "2026-09-15T08:00:46.114935+00:00"
        },
        {
            "name": "toolforge-komla-test3",
            "title": "Tool for testing purposes",
            "description": "Testing and exploration",
            "url": "https://toolsadmin.wikimedia.org/tools/id/komla-test3",
            "keywords": [],
            "author": [
                {
                    "name": "SSapaty (WMF)",
                    "wiki_username": null,
                    "developer_username": null,
                    "email": null,
                    "url": null
                }
            ],
            "repository": "https://gitlab.wikimedia.org/toolforge-repos/komla-test3",
            "subtitle": null,
            "openhub_id": null,
            "url_alternates": [],
            "bot_username": null,
            "deprecated": false,
            "replaced_by": null,
            "experimental": false,
            "for_wikis": [],
            "icon": null,
            "license": "MIT",
            "sponsor": [],
            "available_ui_languages": [],
            "technology_used": [
                "Toolforge"
            ],
            "tool_type": null,
            "api_url": null,
            "developer_docs_url": [],
            "user_docs_url": [],
            "feedback_url": [],
            "privacy_policy_url": [],
            "translate_url": null,
            "bugtracker_url": null,
            "annotations": {
                "wikidata_qid": null,
                "audiences": [],
                "content_types": [],
                "tasks": [],
                "subject_domains": [],
                "deprecated": false,
                "replaced_by": null,
                "experimental": false,
                "for_wikis": [],
                "icon": null,
                "available_ui_languages": [],
                "tool_type": null,
                "repository": null,
                "api_url": null,
                "developer_docs_url": [],
                "user_docs_url": [],
                "feedback_url": [],
                "privacy_policy_url": [],
                "translate_url": null,
                "bugtracker_url": null
            },
            "_schema": "/toolinfo/1.2.2",
            "_language": "en",
            "origin": "crawler",
            "created_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "created_date": "2026-09-15T08:00:42.941642+00:00",
            "modified_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "modified_date": "2026-09-15T08:00:42.941675+00:00"
        },
        {
            "name": "toolforge-temp-ocr-api",
            "title": "Temp OCR API",
            "description": "A temporary OCR service with experimental models for languages without standard OCR support on Wikisource. This tool currently hosts two Santali models and more in future. It receives page images URLs (commons), performs OCR using configurable language models, and returns recognized text as JSON. Intended for testing and integration with Wikisource OCR workflows using user scripts.",
            "url": "https://temp-ocr-api.toolforge.org/",
            "keywords": [
                "ocr",
                "wikisource"
            ],
            "author": [
                {
                    "name": "Sai Phanindra",
                    "wiki_username": null,
                    "developer_username": null,
                    "email": null,
                    "url": null
                }
            ],
            "repository": "https://gitlab.wikimedia.org/toolforge-repos/temp-ocr-api",
            "subtitle": null,
            "openhub_id": null,
            "url_alternates": [],
            "bot_username": null,
            "deprecated": false,
            "replaced_by": null,
            "experimental": false,
            "for_wikis": [],
            "icon": null,
            "license": "Apache-2.0",
            "sponsor": [],
            "available_ui_languages": [],
            "technology_used": [
                "Toolforge"
            ],
            "tool_type": "web app",
            "api_url": null,
            "developer_docs_url": [],
            "user_docs_url": [],
            "feedback_url": [],
            "privacy_policy_url": [],
            "translate_url": null,
            "bugtracker_url": null,
            "annotations": {
                "wikidata_qid": null,
                "audiences": [],
                "content_types": [],
                "tasks": [],
                "subject_domains": [],
                "deprecated": false,
                "replaced_by": null,
                "experimental": false,
                "for_wikis": [],
                "icon": null,
                "available_ui_languages": [],
                "tool_type": null,
                "repository": null,
                "api_url": null,
                "developer_docs_url": [],
                "user_docs_url": [],
                "feedback_url": [],
                "privacy_policy_url": [],
                "translate_url": null,
                "bugtracker_url": null
            },
            "_schema": "/toolinfo/1.2.2",
            "_language": "en",
            "origin": "crawler",
            "created_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "created_date": "2026-09-15T07:00:52.844498+00:00",
            "modified_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "modified_date": "2026-09-15T07:00:52.844528+00:00"
        },
        {
            "name": "toolforge-asntool",
            "title": "MSK's ASN tool",
            "description": "A tool to view all temporary account contributions from an ASN.",
            "url": "https://asntool.toolforge.org/",
            "keywords": [
                "anti-vandalism",
                "checkuser"
            ],
            "author": [
                {
                    "name": "monkey smashing keyboards",
                    "wiki_username": null,
                    "developer_username": null,
                    "email": null,
                    "url": null
                }
            ],
            "repository": null,
            "subtitle": null,
            "openhub_id": null,
            "url_alternates": [],
            "bot_username": null,
            "deprecated": false,
            "replaced_by": null,
            "experimental": false,
            "for_wikis": [],
            "icon": null,
            "license": "AGPL-3.0-or-later",
            "sponsor": [],
            "available_ui_languages": [],
            "technology_used": [
                "Toolforge"
            ],
            "tool_type": "web app",
            "api_url": null,
            "developer_docs_url": [],
            "user_docs_url": [],
            "feedback_url": [],
            "privacy_policy_url": [],
            "translate_url": null,
            "bugtracker_url": null,
            "annotations": {
                "wikidata_qid": null,
                "audiences": [],
                "content_types": [],
                "tasks": [],
                "subject_domains": [],
                "deprecated": false,
                "replaced_by": null,
                "experimental": false,
                "for_wikis": [],
                "icon": null,
                "available_ui_languages": [],
                "tool_type": null,
                "repository": null,
                "api_url": null,
                "developer_docs_url": [],
                "user_docs_url": [],
                "feedback_url": [],
                "privacy_policy_url": [],
                "translate_url": null,
                "bugtracker_url": null
            },
            "_schema": "/toolinfo/1.2.2",
            "_language": "en",
            "origin": "crawler",
            "created_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "created_date": "2026-09-15T03:00:42.915444+00:00",
            "modified_by": {
                "id": 9,
                "username": "Toolhub"
            },
            "modified_date": "2026-09-15T03:00:42.915471+00:00"
        }
    ]
}