The “Hidden” API Docs

I have no idea where I found this. I’ve tried to find its source. If you know where it came from, I’ll gladly credit the original source. Every time I share this full list, or even a single line of it, with another ServiceNow dev, I get this string of emoji:

😲🤯🙏

In my search for the original source, I started thinking how someone would go about building a list like this. It was obviously not just someone hunting/guessing at the URIs. I also assumed it wasn’t a ServiceNow insider who leaked the information. I looked back at my brief forays into Jelly (via Sal Costa’s Jelly book, hopefully I can find a link to this, though it might be gone from the internet [EDIT: Here it is!!]), had a quick shiver, and then recalled the ability to pull UI scripts into UI pages (via g:requires). Then it dawned on me… this would be very easy to identify by looking at the Script field on the UI page table and extracting all the goodness.

So, in addition to the “original” list, I present to you a second list with updated URIs as of San Diego. The instance I used was mostly vanilla/OOB, but I would assume that some (most?) big plugins will add their own extra entries into this list.

How to use this info

Each of these lists contains a LOT of information. And they are just pointers to more information. So, if you want to use the information here, just copy a line, put “https://[yourinstance].service-now.com/” in front of it (omit the trailing / on the URI if the line begins with one already), and drop that into your browser’s address bar. For the most part, it seems like these could all be “https://support.servicenow.com/…” if you wanted to do it that way.

Example:

Let’s say I want to see the GlideForm API in all its glory (as I did in a previous post, Your Changes Will Be Lost If You Leave Now). I would snag this line:

/scripts/classes/GlideForm.js

and slap a legit ServiceNow instance URL to the front of it, like this: https://support.servicenow.com/scripts/classes/GlideForm.js

Once that loads in your browser, you should see something like this:

The beginning of the GlideForm API

I typically copy the entire body into a text editor (Sublime, VS Code, BBEdit, etc.) and format it as JavaScript… the readability is soooo much better.

And without further ado…

List 1

Again, this is the original list from an unknown source… I’d love to give credit where credit is due, but alas I cannot.

/scripts/ac.js
/scripts/ac_derived_field_support.js
/scripts/accessibility_tabindex.js
/scripts/annotations_toggle.js
/scripts/buildhcoptions.js
/scripts/calendar.js
/scripts/classes/ajax/AJAXCompleter.js
/scripts/classes/ajax/AJAXEmailClientCompleter.js
/scripts/classes/ajax/AJAXOtherCompleter.js
/scripts/classes/ajax/AJAXReferenceChoice.js
/scripts/classes/ajax/AJAXReferenceCompleter.js
/scripts/classes/ajax/AJAXReferenceCompleterMulti.js
/scripts/classes/ajax/AJAXReferenceControls.js
/scripts/classes/ajax/AJAXTableCompleter.js
/scripts/classes/ajax/DerivedFields.js
/scripts/classes/ajax/GlideAjax.js
/scripts/classes/ajax/GlideAjaxForm.js
/scripts/classes/ajax/GlideURL.js
/scripts/classes/ajax/UpdateListener.js
/scripts/classes/AttachmentUploader.js
/scripts/classes/AutoComplete.js
/scripts/classes/CompositeNameElement.js
/scripts/classes/CSSClassDecorator.js
/scripts/classes/CurrencyElement.js
/scripts/classes/DaysOfWeekElement.js
/scripts/classes/event/CustomEventManager.js
/scripts/classes/event/GwtObservable.js
/scripts/classes/FieldListElement.js
/scripts/classes/GlideClientCache.js
/scripts/classes/GlideDecoration.js
/scripts/classes/GlideDialogForm.js
/scripts/classes/GlideDialogWindow.js
/scripts/classes/GlideDuration.js
/scripts/classes/GlideEventHandler.js
/scripts/classes/GlideFilter.js
/scripts/classes/GlideFilterDate.js
/scripts/classes/GlideFilterDescription.js
/scripts/classes/GlideFilterHandlers.js
/scripts/classes/GlideFilterItemVariables.js
/scripts/classes/GlideFilterLabels.js
/scripts/classes/GlideFilterQuestions.js
/scripts/classes/GlideFilterReference.js
/scripts/classes/GlideFilterReferenceMulti.js
/scripts/classes/GlideFilterVariables.js
/scripts/classes/GlideForm.js
/scripts/classes/GlideList2.js
/scripts/classes/GlideList2FilterUtil.js
/scripts/classes/GlideList2Handlers.js
/scripts/classes/GlideList2InitEvents.js
/scripts/classes/GlideList2Statics.js
/scripts/classes/GlideListElement.js
/scripts/classes/GlideListWidget.js
/scripts/classes/GlideManager.js
/scripts/classes/GlidePane.js
/scripts/classes/GlidePaneForm.js
/scripts/classes/GlideRecord.js
/scripts/classes/GlideTabs2.js
/scripts/classes/GlideTabs2State.js
/scripts/classes/GlideTabs2Tab.js
/scripts/classes/GlideTemplateFilter.js
/scripts/classes/GlideTimeElement.js
/scripts/classes/GlideTimerElement.js
/scripts/classes/GlideUI.js
/scripts/classes/GlideUIDefault.js
/scripts/classes/GlideUIElement.js
/scripts/classes/GlideUINotification.js
/scripts/classes/GlideURLElement.js
/scripts/classes/GlideUser.js
/scripts/classes/GlideUserImageElement.js
/scripts/classes/GlideViewManager.js
/scripts/classes/GlideWidgetActions.js
/scripts/classes/GlideWidgetFilter.js
/scripts/classes/GlideWidgetHideOnEmpty.js
/scripts/classes/GlideWidgetRowDecorationManager.js
/scripts/classes/GlideWidgetSearch.js
/scripts/classes/GlideWidgetUpdateListener.js
/scripts/classes/GlideWidgetVCR.js
/scripts/classes/GlideWindow.js
/scripts/classes/GwtCellSelector.js
/scripts/classes/GwtContextMenu.js
/scripts/classes/GwtDate.js
/scripts/classes/GwtDateTimePicker.js
/scripts/classes/GwtDraggable.js
/scripts/classes/GwtDraggableSnap.js
/scripts/classes/GwtExportScheduleDialog.js
/scripts/classes/GwtMessage.js
/scripts/classes/GwtPollDialog.js
/scripts/classes/NotificationMessage.js
/scripts/classes/RowColorDecorator.js
/scripts/classes/Select.js
/scripts/classes/ServiceCatalogForm.js
/scripts/classes/SlushBucket.js
/scripts/classes/Table.js
/scripts/classes/TableElement.js
/scripts/classes/TableExtension.js
/scripts/classes/TemplateRecord.js
/scripts/classes/TextAreaElement.js
/scripts/classes/ui/GlideBox.js
/scripts/classes/ui/GlideDraggable.js
/scripts/classes/ui/GlideOverlay.js
/scripts/classes/ui/Point.js
/scripts/classes/UserRolesElement.js
/scripts/classes/util/CookieJar.js
/scripts/classes/util/CookieJar.js
/scripts/classes/util/NameMapEntry.js
/scripts/classes/util/StopWatch.js
/scripts/cms_utils.js
/scripts/condition.js
/scripts/consts/GlideEvent.js
/scripts/context_actions.js
/scripts/context_actions.js
/scripts/depends.js
/scripts/doctype/browser_detection.js
/scripts/doctype/font_icons_ie8.js
/scripts/doctype/form_submitted_mask.js
/scripts/doctype/js_includes_doctype.js
/scripts/doctype/js_includes_last_doctype.js
/scripts/doctype/js_includes_legacy.js
/scripts/doctype/legacy_adjust.js
/scripts/doctype/page_title.js
/scripts/email_activity.js
/scripts/event_initialize.js
/scripts/form_tags.js
/scripts/formatting.js
/scripts/framebuster.js
/scripts/functions.js
/scripts/functions/textutil.js
/scripts/functions/xmlhttp.js
/scripts/functions_attachments.js
/scripts/functions_bootstrap.js
/scripts/functions_calendar.js
/scripts/functions_email.js
/scripts/functions_fontsizer.js
/scripts/functions_onchange.js
/scripts/functions_reference.js
/scripts/functions_user_image.js
/scripts/GlideHCWrapper.js
/scripts/GlideReportChart.js
/scripts/GlideReportChartAjax.js
/scripts/GlideV2508Helper.js
/scripts/GlideV2ChartingIncludes.js
/scripts/hcformatterfuncs.js
/scripts/highcharts-exporting.js
/scripts/highcharts-more.js
/scripts/highstock-1.3.9.js
/scripts/htmlarea/htmlarea.css
/scripts/jquery-ui-1.9.2.custom.js
/scripts/js_includes_listv2.js
/scripts/json2.js
/scripts/lib/glide_updates/prototype.effects.js
/scripts/lib/glide_updates/prototype.element.js
/scripts/lib/glide_updates/prototype.js
/scripts/lib/glide_updates/prototype.plugin.js
/scripts/lib/glide_updates/prototype.template.js
/scripts/lib/jquery/jquery_clean.js
/scripts/lib/jquery/jquery_clean.js
/scripts/lib/jquery/jquery_no_conflict.js
/scripts/lib/jquery/jquery-1.8.2.min.js
/scripts/lib/jquery_includes.js
/scripts/lib/prototype.min.js
/scripts/lib/tag-it.js
/scripts/list_filter.js
/scripts/PageTiming.js
/scripts/partial_page.js
/scripts/plugins/GlideDraggable.js
/scripts/plugins/InPlaceEdit.js
/scripts/plugins/Tooltip.js
/scripts/popupdivs.js
/scripts/popups.js
/scripts/prototype-adapter.js
/scripts/rico_effect.js
/scripts/scrollable.js
/scripts/section.js
/scripts/slushbucket.js
/scripts/slushbucket.js
/scripts/sys_report_condition.js
/scripts/tabs2.js
/scripts/text_search.js
/scripts/utils.js
/styles/css_includes.css
scripts/AJAXTextSearchCompleter.js
scripts/CartItemList.js
scripts/CartProxy.js
scripts/catalog.js
scripts/CatalogPricing.js
scripts/CatalogReferenceChoice.js
scripts/classes/GlideMenu.js
scripts/classes/GwtTable.js
scripts/classes/WFStageSet.js
scripts/currency.js
scripts/currency_format.js
scripts/dictionary/EnterOnceMaxLength.js
scripts/dictionary/EnterOnceProperties.js
scripts/dictionary/EnterOnceProperty.js
scripts/GlideFilterCurrency.js
scripts/GlideListAggregates.js
scripts/GlideListEditor.js
scripts/GwtCellEditor.js
scripts/GwtCursor.js
scripts/GwtGridEdit.js
scripts/GwtListEditAjaxChangeSaver.js
scripts/GwtListEditAjaxValueLoader.js
scripts/GwtListEditBoolean.js
scripts/GwtListEditCalendar.js
scripts/GwtListEditDependent.js
scripts/GwtListEditDuration.js
scripts/GwtListEditEncryptedText.js
scripts/GwtListEditError.js
scripts/GwtListEditGlideRecord.js
scripts/GwtListEditGList.js
scripts/GwtListEditGridSelector.js
scripts/GwtListEditInternalType.js
scripts/GwtListEditJournal.js
scripts/GwtListEditMultiText.js
scripts/GwtListEditor.js
scripts/GwtListEditorPendingChanges.js
scripts/GwtListEditPassword.js
scripts/GwtListEditRecord.js
scripts/GwtListEditRecordDecorations.js
scripts/GwtListEditReference.js
scripts/GwtListEditSavePolicy.js
scripts/GwtListEditSelect.js
scripts/GwtListEditTableController.js
scripts/GwtListEditTablename.js
scripts/GwtListEditText.js
scripts/GwtListEditTranslatedField.js
scripts/GwtListEditUpdateTablename.js
scripts/GwtListEditValueRenderer.js
scripts/GwtListEditWindow.js
scripts/GwtMobileDateTimePicker.js
scripts/labels.js
scripts/OpticsInspector.js
scripts/sc_cart.js
scripts/section.js
scripts/spell.js
scripts/TestClient.js
styles/activity.css
styles/base.css
styles/currency.css
styles/diff_view.css
styles/font_icons.css
styles/font_icons/style.css
styles/gwt.css
styles/home_styles.css
styles/jquery.tagit.css
styles/jquery-ui-1.9.2.custom.css
styles/print.css
styles/process_flow_formatter.css
styles/rtl.css
styles/sc_cat.css
styles/scorecard.css
styles/theme.css
styles/theme_button.css
styles/theme_calendar.css
styles/theme_context_menu.css
styles/theme_doctype.css
styles/theme_form.css
styles/theme_glide_box.css
styles/theme_loading_pages.css
styles/theme_main.css
styles/theme_tabs.css
styles/ui_notification.css
UI Action Context Menu
Validate Client Script Functions
/styles/retina_icons/retina_icons.html

List 2

Here is my contribution to this endeavor, a circa-San Diego list of more raw API goodness.

/styles/app.change_request.calendar/icon-fonts/font-awesome-4.2.0/css/font-awesome.min.css
/styles/css_includes_change_request_calendar.css
/styles/heisenberg/heisenberg_all.css
/styles/heisenberg/source_sans_pro.css
advSchedulingReport.css
agentScheduleMobile.jsdbx
css_includes_appointment_booking.css
DownloadLogFromNodes.jsdbx
gwt_tree2.js
js_include_advSchedulingReport.js
js_include_central_dispatch.js
js_includes_appointment_booking.js
jsonTreeViewer/jsonTree/jsonTree.js
layout-default-latest.css
script/app_com.jsdbx
script/app_com.modelUtil.jsdbx
script/sn.itsm.change.overflow.jsdbx
script/sn_chg_soc.accessibility.jsdbx
script/sn_chg_soc.change_soc.jsdbx
script/sn_chg_soc.change_soc_filter.jsdbx
script/sn_chg_soc.config.jsdbx
script/sn_chg_soc.context_menu.jsdbx
script/sn_chg_soc.data.jsdbx
script/sn_chg_soc.duration.jsdbx
script/sn_chg_soc.filter_control.jsdbx
script/sn_chg_soc.filter_widget.jsdbx
script/sn_chg_soc.gantt.jsdbx
script/sn_chg_soc.keyboard.jsdbx
script/sn_chg_soc.landing_accessibility.jsdbx
script/sn_chg_soc.landing_wizard.jsdbx
script/sn_chg_soc.loading.jsdbx
script/sn_chg_soc.mousedown.jsdbx
script/sn_chg_soc.notification.jsdbx
script/sn_chg_soc.popover.jsdbx
script/sn_chg_soc.share.jsdbx
script/sn_chg_soc.snCreateNewInvite.jsdbx
script/sn_chg_soc.style.jsdbx
script/sn_chg_soc.tooltip_overflow.jsdbx
script/sn_chg_soc_cp.snColorPicker.jsdbx
scripts/activity_filter.js
scripts/angular_1.4/angular-animate.js
scripts/angular_1.5.11/angular.min.js
scripts/angular_1.5.7/angular-route.min.js
scripts/angular_1.5.7/angular.min.js
scripts/angular_1.6.1/angular-sanitize.js
scripts/angular_includes_1.4.js
scripts/angular_includes_1.5.11.js
scripts/angular_includes_1.5.7.js
scripts/angularjs-1.4/thirdparty/angular-ui-bootstrap/ui-bootstrap-tpls-0.12.1.js
scripts/angularjs-1.4/thirdparty/angular-ui-bootstrap/ui-bootstrap-tpls-1.1.2.js
scripts/app.change_request.calendar/thirdparty/bootstrap-datetimepicker.min.js
scripts/app.landingpage_ui/classificationSolutionsController.js
scripts/app.landingpage_ui/clusteringSolutionsController.js
scripts/app.landingpage_ui/controllersLandingPage.js
scripts/app.landingpage_ui/landingPageApp.js
scripts/app.landingpage_ui/mlUiConstants.js
scripts/app.landingpage_ui/regressionSolutionsController.js
scripts/app.landingpage_ui/similaritySolutionsController.js
scripts/app.snTestRunner/html2canvas-polyfills.js
scripts/app.snTestRunner/thirdparty/html2canvas.min.js
scripts/asmt_assessment_form.js
scripts/bootstrap3/bootstrap.js
scripts/catalog.js
scripts/classes/ajax/GlideAjax.js
scripts/classes/CITree2Node.js
scripts/classes/GlideListWidget.js
scripts/classes/glideModal.js
scripts/classes/GwtDateTimePicker.js
scripts/classes/json2.js
scripts/classes/TableTreeNode.js
scripts/classes/timeAgo.js
scripts/classes/WorkflowTabs.js
scripts/compatibility.js
scripts/core/jquery.layout.min.js
scripts/core/jquery.ui.custom.min.js
scripts/dhtmlx_gantt_v.4.1.13/ext/dhtmlxgantt_marker.js
scripts/dhtmlx_gantt_v.4.1.13/src/dhtmlxgantt.js
scripts/doctype/CustomEventManager.js
scripts/ERDIncludes.js
scripts/flashcanvas.js
scripts/GlideV2ChartingIncludes.js
scripts/gwt_tree2.js
scripts/GwtDiagramIncludes.js
scripts/GwtGraphicsIncludes.js
scripts/heisenberg/bootstrap/popover.js
scripts/heisenberg/bootstrap/tooltip.js
scripts/heisenberg/heisenberg_all.js
scripts/heisenberg/heisenberg_all.js 
scripts/jquery.signaturepad.js
scripts/jquery.signaturepad.min.js
scripts/js_include_agent_schedule.js
scripts/js_include_AssignmentWorkbench.js
scripts/js_includes_app.common.apps.calendar.js
scripts/js_includes_assessment.js
scripts/js_includes_catalog.js
scripts/js_includes_listv2.js
scripts/js_includes_ml_ui.js
scripts/js_includes_ng_form_elements.js
scripts/js_includes_ngCommon.js
scripts/js_includes_snTestRunner.js
scripts/json2.js
scripts/jsonTreeViewer/jsonTree/jsonTree.css 
scripts/lib/bootstrap/bootstrap.min.css
scripts/lib/jquery2_includes.js
scripts/lib/jquery_include.js
scripts/lib/jquery_includes.js
scripts/moment.min.js
scripts/pdf.js
scripts/pdf.worker.js
scripts/restapi/lib/js_includes_explorer.js
scripts/signature_pad.js
scripts/SlushBucketContext.js
scripts/SlushBucketScopeUtil.js
scripts/SlushBucketViewRules.js
scripts/sn.angularstrap/js_includes_angular_strap_aside.js
scripts/sn.angularstrap/js_includes_angularstrap_directives.js
scripts/sn/common/clientScript/glideUser.js
scripts/sn/common/glide/js_includes_glide.js
scripts/sn/common/js_include_notification.js
scripts/sn/common/js_includes_common.js
scripts/sn/common/util/js_includes_util.js
scripts/sn_chg_soc/edited_dhtmlx_gantt_v.4.1.13/ext/dhtmlxgantt_keyboard_navigation.js
scripts/sn_doc_templates/capture_signature.js
scripts/snm/cabrillo/js_includes_cabrillo.js
scripts/template_import/GwtUploadExcelDlg.js
scripts/thirdparty/jquery.qtip/jquery.qtip.js
scripts/thirdParty/ui-bootstrap-tpls-1.3.2.js
scripts/wo_signature_pad.js
SCTreeNode.js
snDhtmlxSchedulerHeaderMobile.jsdbx
snUserProfileSchedule.jsdbx
styles/ActivityRelatedInfo.css
styles/assessment.cs
styles/assessment.css
styles/assignmentWorkbench.css
styles/atfPickABrowser.css
styles/central_dispatch.css
styles/css_includes_agent_schedule.css
styles/css_includes_ng_form_elements.css
styles/css_includes_snTestRunner.css
styles/dhtmlx_gantt_v.4.1.0/dhtmlxgantt.css
styles/dhtmlxScheduler-v4.4/dhtmlxscheduler.css
styles/diagrammer.css
styles/dist/common/sn_common.css
styles/erd.css
styles/geoLocation.css
styles/heisenberg/heisenberg_all.css
styles/heisenberg/heisenberg_rtl.css
styles/jquery-ui.css
styles/jquery.signaturepad.cssx
styles/js_includes_catalog.css
styles/js_includes_catalog_v2.css
styles/knowledge.ng/css_includes_knowledge.css
styles/landingpage_style.css
styles/layout-default-latest.css
styles/ldap.css
styles/navpage_layout.css
styles/notecard.css
styles/notification_preference/notification_preference.css
styles/notification_preference/np_polaris.css
styles/pa/welcome_page.css
styles/plugin_mgr.css
styles/retina_icons/retina_icons.css
styles/sc_cat_only.css
styles/sc_cat_only_v2.css
styles/sn/sn_map/css_includes_sn_map_page.css
styles/sn_avatar.css
styles/sn_notification.css
styles/sn_presence.css
styles/sn_stream.css
styles/snTestRunnerWithoutFlex.css
styles/theme.css
styles/unified_plugin.css
styles/workflow_theme.generated.css
styles/WorkflowTabs.css
thirdParty/jquery.layout-latest.js

That’s it! I’m sure there are many other scripts that could be added here (please let me know!) and I cannot guarantee that all of these a) work or b) will continue to work. Nonetheless, these are worth having and referencing whenever you need to dive deeper than what ServiceNow’s Developer site provides you.

Leave a Reply