Consider the help at https://en.wikipedia.org/w/api.php?action=help&modules=main:
action: Which action to perform.
One of the following values: abusefiltercheckmatch, abusefilterchecksyntax, abusefilterevalexpression, abusefilterunblockautopromote, addstudents, antispoof, block, bouncehandler, centralauthtoken, centralnoticechoicedata, centralnoticequerycampaign, checktoken, cirrus-config-dump, cirrus-mapping-dump, cirrus-settings-dump, cirrus-suggest, clearhasmsg, compare, createaccount, cxconfiguration, cxdelete, cxpublish, cxsave, cxsuggestionlist, cxtoken, delete, deleteeducation, deleteglobalaccount, echomarkread, echomarkseen, edit, editlist, editmassmessagelist, emailuser, enlist, expandtemplates, fancycaptchareload, featuredfeed, feedcontributions, feedrecentchanges, feedwatchlist, filerevert, flagconfig, flow, flow-parsoid-utils, flowthank, globalblock, globaluserrights, graph, help, imagerotate, import, jsonconfig, languagesearch, liststudents, login, logout, managetags, massmessage, mobileview, move, opensearch, options, pagetriageaction, pagetriagelist, pagetriagestats, pagetriagetagging, pagetriagetemplate, paraminfo, parse, parsoid-batch, patrol, protect, purge, query, refresheducation, review, reviewactivity, revisiondelete, rollback, rsd, scribunto-console, setglobalaccountstatus, setnotificationtimestamp, sitematrix, spamblacklist, stabilize, stashedit, strikevote, tag, templatedata, thank, titleblacklist, tokens, transcodereset, ulslocalization, unblock, undelete, upload, userrights, visualeditor, visualeditoredit, watch, wikilove, zeroconfig
Default: help
That would be a lot more user-friendly if it could be displayed in a PARAM_HELP_MSG_PER_VALUE style, with a one-line description extracted from each submodule and with the values linked to the submodule. The "One of the following values" bit could potentially be omitted or collapsed somehow.