When writing code for the Web, there are a large number of Web APIs available. Below is a list of all the APIs and interfaces (object types) that you may be able to use while developing your Web app or site.
Web APIs are typically used with JavaScript, although this doesn't always have to be the case.
This is a list of all the APIs that are available.
This is a list of all the interfaces (that is, types of objects) that are available.
AbortControllerAbortSignalAbsoluteOrientationSensorAbstractRangeAccelerometer Experimental
AesCbcParamsAesCtrParamsAesGcmParamsAesKeyGenParamsAmbientLightSensor Experimental
AnalyserNodeANGLE_instanced_arraysAnimationAnimationEffectAnimationEventAnimationPlaybackEventAnimationTimelineAttrAudioBufferAudioBufferSourceNodeAudioContextAudioDataAudioDecoderAudioDestinationNodeAudioEncoderAudioListenerAudioNodeAudioParamAudioParamDescriptorAudioParamMapAudioProcessingEvent Deprecated
AudioScheduledSourceNodeAudioSinkInfo Experimental
AudioTrackAudioTrackListAudioWorkletAudioWorkletGlobalScopeAudioWorkletNodeAudioWorkletProcessorAuthenticatorAssertionResponseAuthenticatorAttestationResponseAuthenticatorResponseBackgroundFetchEvent Experimental
BackgroundFetchManager Experimental
BackgroundFetchRecord Experimental
BackgroundFetchRegistration Experimental
BackgroundFetchUpdateUIEvent Experimental
BarcodeDetector Experimental
BarPropBaseAudioContextBatteryManagerBeforeInstallPromptEvent Experimental Non-standard
BeforeUnloadEventBiquadFilterNodeBlobBlobEventBluetooth Experimental
BluetoothCharacteristicProperties Experimental
BluetoothDevice Experimental
BluetoothRemoteGATTCharacteristic Experimental
BluetoothRemoteGATTDescriptor Experimental
BluetoothRemoteGATTServer Experimental
BluetoothRemoteGATTService Experimental
BluetoothUUIDBroadcastChannelBrowserCaptureMediaStreamTrack Experimental
ByteLengthQueuingStrategyCacheCacheStorageCanMakePaymentEvent Experimental
CanvasCaptureMediaStreamTrackCanvasGradientCanvasPatternCanvasRenderingContext2DCaptureController Experimental
CaretPositionCDATASectionChannelMergerNodeChannelSplitterNodeChapterInformation Experimental
CharacterBoundsUpdateEvent Experimental
CharacterDataClientClientsClipboardClipboardEventClipboardItemCloseEventCloseWatcher Experimental
CommandEventCommentCompositionEventCompressionStreamConstantSourceNodeContactAddress Experimental
ContactsManager Experimental
ContentIndex Experimental
ContentIndexEvent Experimental
ContentVisibilityAutoStateChangeEventConvolverNodeCookieChangeEventCookieStoreCookieStoreManagerCountQueuingStrategyCreateMonitor Experimental
CredentialCredentialsContainerCropTarget Experimental
CryptoCryptoKeyCryptoKeyPairCSPViolationReportBodyCSSCSSAnimationCSSConditionRuleCSSContainerRuleCSSCounterStyleRuleCSSFontFaceRuleCSSFontFeatureValuesRuleCSSFontPaletteValuesRuleCSSGroupingRuleCSSImageValueCSSImportRuleCSSKeyframeRuleCSSKeyframesRuleCSSKeywordValueCSSLayerBlockRuleCSSLayerStatementRuleCSSMathInvertCSSMathMaxCSSMathMinCSSMathNegateCSSMathProductCSSMathSumCSSMathValueCSSMatrixComponentCSSMediaRuleCSSNamespaceRuleCSSNestedDeclarationsCSSNumericArrayCSSNumericValueCSSPageDescriptorsCSSPageRuleCSSPerspectiveCSSPositionTryDescriptorsCSSPositionTryRuleCSSPositionValue Non-standard Deprecated
CSSPrimitiveValue Deprecated
CSSPropertyRuleCSSPseudoElement Experimental
CSSRotateCSSRuleCSSRuleListCSSScaleCSSScopeRuleCSSSkewCSSSkewXCSSSkewYCSSStartingStyleRuleCSSStyleDeclarationCSSStyleRuleCSSStyleSheetCSSStyleValueCSSSupportsRuleCSSTransformComponentCSSTransformValueCSSTransitionCSSTranslateCSSUnitValueCSSUnparsedValueCSSValue Deprecated
CSSValueList Deprecated
CSSVariableReferenceValueCustomElementRegistryCustomEventCustomStateSetDataTransferDataTransferItemDataTransferItemListDecompressionStreamDedicatedWorkerGlobalScopeDeferredRequestInit Experimental
DelayNodeDelegatedInkTrailPresenter Experimental
DeprecationReportBody Experimental
DeviceMotionEventDeviceMotionEventAccelerationDeviceMotionEventRotationRateDeviceOrientationEventDevicePosture Experimental
DirectoryEntrySync Non-standard Deprecated
DirectoryReaderSync Non-standard Deprecated
DocumentDocumentFragmentDocumentPictureInPicture Experimental
DocumentPictureInPictureEvent Experimental
DocumentTimelineDocumentTypeDOMError Deprecated
DOMExceptionDOMHighResTimeStampDOMImplementationDOMMatrixDOMMatrixReadOnlyDOMParserDOMPointDOMPointReadOnlyDOMQuadDOMRectDOMRectListDOMRectReadOnlyDOMStringListDOMStringMapDOMTokenListDragEventDynamicsCompressorNodeEcdhKeyDeriveParamsEcdsaParamsEcKeyGenParamsEcKeyImportParamsEditContext Experimental
ElementElementInternalsEncodedAudioChunkEncodedVideoChunkErrorEventEventEventCountsEventSourceEventTargetExtendableCookieChangeEventExtendableEventExtendableMessageEventEyeDropper Experimental
FeaturePolicy Experimental
FederatedCredential Experimental
FederatedCredentialInitFence Experimental
FencedFrameConfig Experimental
FetchEventFetchLaterResult Experimental
FileFileEntrySync Non-standard Deprecated
FileListFileReaderFileReaderSyncFileSystemFileSystemChangeRecordFileSystemDirectoryEntryFileSystemDirectoryHandleFileSystemDirectoryReaderFileSystemEntryFileSystemFileEntryFileSystemFileHandleFileSystemHandleFileSystemObserver Experimental Non-standard
FileSystemSync Non-standard Deprecated
FileSystemSyncAccessHandleFileSystemWritableFileStreamFocusEventFontData Experimental
FontFaceFontFaceSetFontFaceSetLoadEventFormDataFormDataEventFragmentDirectiveGainNodeGamepadGamepadButtonGamepadEventGamepadHapticActuatorGamepadPose Experimental
GeolocationGeolocationCoordinatesGeolocationPositionGeolocationPositionErrorGestureEvent Non-standard
GPUGPUAdapterGPUAdapterInfoGPUBindGroupGPUBindGroupLayoutGPUBufferGPUCanvasContextGPUCommandBufferGPUCommandEncoderGPUCompilationInfoGPUCompilationMessageGPUComputePassEncoderGPUComputePipelineGPUDeviceGPUDeviceLostInfoGPUErrorGPUExternalTextureGPUInternalErrorGPUOutOfMemoryErrorGPUPipelineErrorGPUPipelineLayoutGPUQuerySetGPUQueueGPURenderBundleGPURenderBundleEncoderGPURenderPassEncoderGPURenderPipelineGPUSamplerGPUShaderModuleGPUSupportedFeaturesGPUSupportedLimitsGPUTextureGPUTextureViewGPUUncapturedErrorEventGPUValidationErrorGravitySensorGyroscopeHashChangeEventHeadersHID Experimental
HIDConnectionEvent Experimental
HIDDevice Experimental
HIDInputReportEvent Experimental
HighlightHighlightRegistryHistoryHkdfParamsHmacImportParamsHmacKeyGenParamsHMDVRDevice Non-standard Deprecated
HTMLAllCollectionHTMLAnchorElementHTMLAreaElementHTMLAudioElementHTMLBaseElementHTMLBodyElementHTMLBRElementHTMLButtonElementHTMLCanvasElementHTMLCollectionHTMLDataElementHTMLDataListElementHTMLDetailsElementHTMLDialogElementHTMLDivElementHTMLDListElementHTMLDocumentHTMLElementHTMLEmbedElementHTMLFencedFrameElement Experimental
HTMLFieldSetElementHTMLFontElement Deprecated
HTMLFormControlsCollectionHTMLFormElementHTMLFrameSetElement Deprecated
HTMLHeadElementHTMLHeadingElementHTMLHRElementHTMLHtmlElementHTMLIFrameElementHTMLImageElementHTMLInputElementHTMLLabelElementHTMLLegendElementHTMLLIElementHTMLLinkElementHTMLMapElementHTMLMarqueeElement Deprecated
HTMLMediaElementHTMLMenuElementHTMLMetaElementHTMLMeterElementHTMLModElementHTMLObjectElementHTMLOListElementHTMLOptGroupElementHTMLOptionElementHTMLOptionsCollectionHTMLOutputElementHTMLParagraphElementHTMLParamElement Deprecated
HTMLPictureElementHTMLPreElementHTMLProgressElementHTMLQuoteElementHTMLScriptElementHTMLSelectedContentElement Experimental Non-standard
HTMLSelectElementHTMLSlotElementHTMLSourceElementHTMLSpanElementHTMLStyleElementHTMLTableCaptionElementHTMLTableCellElementHTMLTableColElementHTMLTableElementHTMLTableRowElementHTMLTableSectionElementHTMLTemplateElementHTMLTextAreaElementHTMLTimeElementHTMLTitleElementHTMLTrackElementHTMLUListElementHTMLUnknownElementHTMLVideoElementIDBCursorIDBCursorWithValueIDBDatabaseIDBFactoryIDBIndexIDBKeyRangeIDBObjectStoreIDBOpenDBRequestIDBRequestIDBTransactionIDBVersionChangeEventIdentityCredential Experimental
IdentityCredentialError Experimental
IdentityCredentialRequestOptions Experimental
IdentityProvider Experimental
IdleDeadlineIdleDetector Experimental
IIRFilterNodeImageBitmapImageBitmapRenderingContextImageCaptureImageDataImageDecoderImageTrackImageTrackListInk Experimental
InputDeviceCapabilities Experimental
InputDeviceInfoInputEventInstallEventIntegrityViolationReportBody Experimental
IntersectionObserverIntersectionObserverEntryInterventionReportBody Experimental
Keyboard Experimental
KeyboardEventKeyboardLayoutMap Experimental
KeyframeEffectLanguageDetector Experimental
LargestContentfulPaintLaunchParams Experimental
LaunchQueue Experimental
LayoutShift Experimental
LayoutShiftAttribution Experimental
LinearAccelerationSensorLocationLockLockManagerMagnetometer Experimental
MathMLElementMediaCapabilitiesMediaDeviceInfoMediaDevicesMediaElementAudioSourceNodeMediaEncryptedEventMediaErrorMediaKeyMessageEventMediaKeysMediaKeySessionMediaKeyStatusMapMediaKeySystemAccessMediaListMediaMetadataMediaQueryListMediaQueryListEventMediaRecorderMediaRecorderErrorEvent Non-standard Deprecated
MediaSessionMediaSourceMediaSourceHandleMediaStreamMediaStreamAudioDestinationNodeMediaStreamAudioSourceNodeMediaStreamEvent Non-standard Deprecated
MediaStreamTrackMediaStreamTrackAudioSourceNodeMediaStreamTrackEventMediaStreamTrackGenerator Experimental Non-standard
MediaStreamTrackProcessorMediaTrackConstraintsMediaTrackSettingsMediaTrackSupportedConstraintsMerchantValidationEvent Deprecated
MessageChannelMessageEventMessagePortMetadata Experimental Non-standard
MIDIAccessMIDIConnectionEventMIDIInputMIDIInputMapMIDIMessageEventMIDIOutputMIDIOutputMapMIDIPortMimeType Deprecated
MimeTypeArray Deprecated
MouseEventMouseScrollEvent Non-standard Deprecated
MutationEvent Non-standard Deprecated
MutationObserverMutationRecordNamedNodeMapNavigateEvent Experimental
Navigation Experimental
NavigationActivation Experimental
NavigationCurrentEntryChangeEvent Experimental
NavigationDestination Experimental
NavigationHistoryEntry Experimental
NavigationPreloadManagerNavigationTransition Experimental
NavigatorNavigatorLoginNavigatorUAData Experimental
NDEFMessage Experimental
NDEFReader Experimental
NDEFReadingEvent Experimental
NDEFRecord Experimental
NetworkInformationNodeNodeIteratorNodeListNotificationNotificationEventNotRestoredReasonDetails Experimental
NotRestoredReasons Experimental
OES_draw_buffers_indexedOfflineAudioCompletionEventOfflineAudioContextOffscreenCanvasOffscreenCanvasRenderingContext2DOrientationSensorOscillatorNodeOTPCredential Experimental
OverconstrainedErrorPageRevealEventPageSwapEventPageTransitionEventPaintRenderingContext2DPaintSizePaintWorkletGlobalScope Experimental
PannerNodePasswordCredential Experimental
PasswordCredentialInitPath2DPaymentAddress Non-standard Deprecated
PaymentManager Experimental
PaymentMethodChangeEventPaymentRequestPaymentRequestEvent Experimental
PaymentRequestUpdateEventPaymentResponsePbkdf2ParamsPerformancePerformanceElementTiming Experimental
PerformanceEntryPerformanceEventTimingPerformanceLongAnimationFrameTiming Experimental
PerformanceLongTaskTiming Experimental
PerformanceMarkPerformanceMeasurePerformanceNavigation Deprecated
PerformanceNavigationTimingPerformanceObserverPerformanceObserverEntryListPerformancePaintTimingPerformanceResourceTimingPerformanceScriptTiming Experimental
PerformanceServerTimingPerformanceTiming Deprecated
PeriodicSyncEvent Experimental
PeriodicSyncManager Experimental
PeriodicWavePermissionsPermissionStatusPictureInPictureEventPictureInPictureWindowPlugin Deprecated
PluginArray Deprecated
Point Non-standard Deprecated
PointerEventPopStateEventPositionSensorVRDevice Non-standard Deprecated
Presentation Experimental
PresentationAvailability Experimental
PresentationConnection Experimental
PresentationConnectionAvailableEvent Experimental
PresentationConnectionCloseEvent Experimental
PresentationConnectionList Experimental
PresentationReceiver Experimental
PresentationRequest Experimental
PressureObserver Experimental
PressureRecord Experimental
ProcessingInstructionProfiler Experimental
ProgressEventPromiseRejectionEventPublicKeyCredentialPublicKeyCredentialCreationOptionsPublicKeyCredentialRequestOptionsPushEventPushManagerPushMessageDataPushSubscriptionPushSubscriptionOptionsQuotaExceededError Experimental
RadioNodeListRangeReadableByteStreamControllerReadableStreamReadableStreamBYOBReaderReadableStreamBYOBRequestReadableStreamDefaultControllerReadableStreamDefaultReaderRelativeOrientationSensorRemotePlaybackReportReportBodyReportingObserverRequestRequestInitResizeObserverResizeObserverEntryResizeObserverSizeResponseRestrictionTarget Experimental
RsaHashedImportParamsRsaHashedKeyGenParamsRsaOaepParamsRsaPssParamsRTCAudioSourceStatsRTCCertificateRTCCertificateStatsRTCCodecStatsRTCDataChannelRTCDataChannelEventRTCDataChannelStatsRTCDtlsTransportRTCDTMFSenderRTCDTMFToneChangeEventRTCEncodedAudioFrameRTCEncodedVideoFrameRTCErrorRTCErrorEventRTCIceCandidateRTCIceCandidatePairRTCIceCandidatePairStatsRTCIceCandidateStatsRTCIceParametersRTCIceTransportRTCIdentityAssertion Experimental
RTCInboundRtpStreamStatsRTCOutboundRtpStreamStatsRTCPeerConnectionRTCPeerConnectionIceErrorEventRTCPeerConnectionIceEventRTCPeerConnectionStatsRTCRemoteInboundRtpStreamStatsRTCRemoteOutboundRtpStreamStatsRTCRtpReceiverRTCRtpScriptTransformRTCRtpScriptTransformerRTCRtpSenderRTCRtpTransceiverRTCSctpTransportRTCSessionDescriptionRTCStatsReportRTCTrackEventRTCTransformEventRTCTransportStatsRTCVideoSourceStatsSanitizer Experimental
SanitizerConfig Experimental
SchedulerScheduling Experimental
ScreenScreenDetailed Experimental
ScreenDetails Experimental
ScreenOrientationScriptProcessorNode Deprecated
ScrollTimelineSecurePaymentConfirmationRequestSecurityPolicyViolationEventSelectionSensorSensorErrorEventSerial Experimental
SerialPort Experimental
ServiceWorkerServiceWorkerContainerServiceWorkerGlobalScopeServiceWorkerRegistrationShadowRootSharedStorage Experimental
SharedStorageOperation Experimental
SharedStorageRunOperation Experimental
SharedStorageSelectURLOperation Experimental
SharedStorageWorklet Experimental
SharedStorageWorkletGlobalScope Experimental
SharedWorkerSharedWorkerGlobalScopeSnapEvent Experimental
SourceBufferSourceBufferListSpeechGrammar Non-standard Deprecated
SpeechGrammarList Experimental
SpeechRecognitionSpeechRecognitionAlternativeSpeechRecognitionErrorEventSpeechRecognitionEventSpeechRecognitionResultSpeechRecognitionResultListSpeechSynthesisSpeechSynthesisErrorEventSpeechSynthesisEventSpeechSynthesisUtteranceSpeechSynthesisVoiceStaticRangeStereoPannerNodeStorageStorageAccessHandleStorageEventStorageManagerStylePropertyMapStylePropertyMapReadOnlyStyleSheetStyleSheetListSubmitEventSubtleCryptoSummarizer Experimental
SVGAElementSVGAngleSVGAnimateColorElement Deprecated
SVGAnimatedAngleSVGAnimatedBooleanSVGAnimatedEnumerationSVGAnimatedIntegerSVGAnimatedLengthSVGAnimatedLengthListSVGAnimatedNumberSVGAnimatedNumberListSVGAnimatedPreserveAspectRatioSVGAnimatedRectSVGAnimatedStringSVGAnimatedTransformListSVGAnimateElementSVGAnimateMotionElementSVGAnimateTransformElementSVGAnimationElementSVGCircleElementSVGClipPathElementSVGComponentTransferFunctionElementSVGDefsElementSVGDescElementSVGDiscardElement Deprecated
SVGElementSVGEllipseElementSVGFEBlendElementSVGFEColorMatrixElementSVGFEComponentTransferElementSVGFECompositeElementSVGFEConvolveMatrixElementSVGFEDiffuseLightingElementSVGFEDisplacementMapElementSVGFEDistantLightElementSVGFEDropShadowElementSVGFEFloodElementSVGFEFuncAElementSVGFEFuncBElementSVGFEFuncGElementSVGFEFuncRElementSVGFEGaussianBlurElementSVGFEImageElementSVGFEMergeElementSVGFEMergeNodeElementSVGFEMorphologyElementSVGFEOffsetElementSVGFEPointLightElementSVGFESpecularLightingElementSVGFESpotLightElementSVGFETileElementSVGFETurbulenceElementSVGFilterElementSVGForeignObjectElementSVGGElementSVGGeometryElementSVGGradientElementSVGGraphicsElementSVGImageElementSVGLengthSVGLengthListSVGLinearGradientElementSVGLineElementSVGMarkerElementSVGMaskElementSVGMetadataElementSVGMPathElementSVGNumberSVGNumberListSVGPathElementSVGPatternElementSVGPoint Deprecated
SVGPointListSVGPolygonElementSVGPolylineElementSVGPreserveAspectRatioSVGRadialGradientElementSVGRectSVGRectElementSVGRenderingIntent Deprecated
SVGScriptElementSVGSetElementSVGStopElementSVGStringListSVGStyleElementSVGSVGElementSVGSwitchElementSVGSymbolElementSVGTextContentElementSVGTextElementSVGTextPathElementSVGTextPositioningElementSVGTitleElementSVGTransformSVGTransformListSVGTSpanElementSVGUnitTypesSVGUseElementSVGViewElementSyncEventSyncManagerTaskAttributionTiming Experimental
TaskControllerTaskPriorityChangeEventTaskSignalTextTextDecoderTextDecoderStreamTextEncoderTextEncoderStreamTextEvent Deprecated
TextFormat Experimental
TextFormatUpdateEvent Experimental
TextMetricsTextTrackTextTrackCueTextTrackCueListTextTrackListTextUpdateEvent Experimental
TimeEventTimeRangesToggleEventTouchTouchEventTouchListTrackEventTransformStreamTransformStreamDefaultControllerTransitionEventTranslator Experimental
TreeWalkerTrustedHTMLTrustedScriptTrustedScriptURLTrustedTypePolicyTrustedTypePolicyFactoryUIEventURLURLPatternURLSearchParamsUSB Experimental
USBAlternateInterface Experimental
USBConfiguration Experimental
USBConnectionEvent Experimental
USBDevice Experimental
USBEndpoint Experimental
USBInterface Experimental
USBInTransferResult Experimental
USBIsochronousInTransferPacket Experimental
USBIsochronousInTransferResult Experimental
USBIsochronousOutTransferPacket Experimental
USBIsochronousOutTransferResult Experimental
USBOutTransferResult Experimental
UserActivationValidityStateVideoColorSpaceVideoDecoderVideoEncoderVideoFrameVideoPlaybackQualityVideoTrackVideoTrackGenerator Experimental
VideoTrackListViewTimelineViewTransitionVirtualKeyboard Experimental
VisibilityStateEntry Experimental
VisualViewportVRDisplay Non-standard Deprecated
VRDisplayCapabilities Non-standard Deprecated
VRDisplayEvent Non-standard Deprecated
VREyeParameters Non-standard Deprecated
VRFieldOfView Non-standard Deprecated
VRFrameData Non-standard Deprecated
VRLayerInit Non-standard Deprecated
VRPose Non-standard Deprecated
VRStageParameters Non-standard Deprecated
VTTCueVTTRegionWakeLockWakeLockSentinelWaveShaperNodeWebGL2RenderingContextWebGLActiveInfoWebGLBufferWebGLContextEventWebGLFramebufferWebGLObject Experimental
WebGLProgramWebGLQueryWebGLRenderbufferWebGLRenderingContextWebGLSamplerWebGLShaderWebGLShaderPrecisionFormatWebGLSyncWebGLTextureWebGLTransformFeedbackWebGLUniformLocationWebGLVertexArrayObjectWebSocketWebSocketStream Experimental
WebTransportWebTransportBidirectionalStreamWebTransportDatagramDuplexStreamWebTransportErrorWebTransportReceiveStream Experimental
WebTransportSendStream Experimental
WGSLLanguageFeaturesWheelEventWindowWindowClientWindowControlsOverlay Experimental
WindowControlsOverlayGeometryChangeEvent Experimental
WindowSharedStorage Experimental
WorkerWorkerGlobalScopeWorkerLocationWorkerNavigatorWorkletWorkletGlobalScopeWorkletSharedStorage Experimental
WritableStreamWritableStreamDefaultControllerWritableStreamDefaultWriterXMLDocumentXMLHttpRequestXMLHttpRequestEventTargetXMLHttpRequestUploadXMLSerializerXPathEvaluatorXPathExpressionXPathResultXRAnchor Experimental
XRAnchorSet Experimental
XRBoundedReferenceSpace Experimental
XRCompositionLayer Experimental
XRCPUDepthInformation Experimental
XRCubeLayer Experimental
XRCylinderLayer Experimental
XRDepthInformation Experimental
XREquirectLayer Experimental
XRFrame Experimental
XRHandXRHitTestResult Experimental
XRHitTestSource Experimental
XRInputSourceXRInputSourceArray Experimental
XRInputSourceEventXRInputSourcesChangeEventXRJointPoseXRJointSpaceXRLayer Experimental
XRLayerEvent Experimental
XRLightEstimate Experimental
XRLightProbe Experimental
XRMediaBinding Experimental
XRPoseXRProjectionLayer Experimental
XRQuadLayer Experimental
XRRay Experimental
XRReferenceSpaceXRReferenceSpaceEventXRRenderState Experimental
XRRigidTransformXRSession Experimental
XRSessionEventXRSpaceXRSubImage Experimental
XRSystem Experimental
XRTransientInputHitTestResult Experimental
XRTransientInputHitTestSource Experimental
XRView Experimental
XRViewerPoseXRViewportXRWebGLBinding Experimental
XRWebGLDepthInformation Experimental
XRWebGLLayer Experimental
XRWebGLSubImage Experimental
XSLTProcessor
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API