-- Auto-generated BigQuery query for Blink UseCounter features
-- Generated: 2026-02-18
-- Queries pre-aggregated usage percentages from httparchive.blink_features.usage
-- For API-type BCD keys mapped from web-features

DECLARE crawl_date DATE DEFAULT '2026-01-01';

-- Map of BCD API names to web-feature IDs (for reference)
-- Total unique API interfaces: 389

SELECT
  uf.feature,
  uf.pct_urls AS pct,
  uf.client
FROM `httparchive.blink_features.usage` uf
WHERE uf.date = crawl_date
  AND uf.client = 'desktop'
  AND (
    uf.feature = 'AbortController' OR
    uf.feature = 'AbortSignal' OR
    uf.feature = 'Accelerometer' OR
    uf.feature = 'AnalyserNode' OR
    uf.feature = 'Animation' OR
    uf.feature = 'AnimationEffect' OR
    uf.feature = 'AnimationPlaybackEvent' OR
    uf.feature = 'AnimationTimeline' OR
    uf.feature = 'AudioBuffer' OR
    uf.feature = 'AudioBufferSourceNode' OR
    uf.feature = 'AudioContext' OR
    uf.feature = 'AudioData' OR
    uf.feature = 'AudioDecoder' OR
    uf.feature = 'AudioDestinationNode' OR
    uf.feature = 'AudioEncoder' OR
    uf.feature = 'AudioListener' OR
    uf.feature = 'AudioNode' OR
    uf.feature = 'AudioParam' OR
    uf.feature = 'AudioParamMap' OR
    uf.feature = 'AudioScheduledSourceNode' OR
    uf.feature = 'AudioSinkInfo' OR
    uf.feature = 'AudioWorklet' OR
    uf.feature = 'AudioWorkletGlobalScope' OR
    uf.feature = 'AudioWorkletNode' OR
    uf.feature = 'AudioWorkletProcessor' OR
    uf.feature = 'AuthenticatorAttestationResponse' OR
    uf.feature = 'BarProp' OR
    uf.feature = 'BaseAudioContext' OR
    uf.feature = 'BeforeInstallPromptEvent' OR
    uf.feature = 'BeforeUnloadEvent' OR
    uf.feature = 'BiquadFilterNode' OR
    uf.feature = 'Bluetooth' OR
    uf.feature = 'BluetoothCharacteristicProperties' OR
    uf.feature = 'BluetoothDevice' OR
    uf.feature = 'BluetoothRemoteGATTCharacteristic' OR
    uf.feature = 'BluetoothRemoteGATTDescriptor' OR
    uf.feature = 'BluetoothRemoteGATTServer' OR
    uf.feature = 'BluetoothRemoteGATTService' OR
    uf.feature = 'BluetoothUUID' OR
    uf.feature = 'BroadcastChannel' OR
    uf.feature = 'BrowserCaptureMediaStreamTrack' OR
    uf.feature = 'CSS' OR
    uf.feature = 'CSSContainerRule' OR
    uf.feature = 'CSSCounterStyleRule' OR
    uf.feature = 'CSSFontFeatureValuesMap' OR
    uf.feature = 'CSSFontFeatureValuesRule' OR
    uf.feature = 'CSSFontPaletteValuesRule' OR
    uf.feature = 'CSSImportRule' OR
    uf.feature = 'CSSLayerBlockRule' OR
    uf.feature = 'CSSLayerStatementRule' OR
    uf.feature = 'CSSNestedDeclarations' OR
    uf.feature = 'CSSPositionTryDescriptors' OR
    uf.feature = 'CSSPositionTryRule' OR
    uf.feature = 'CSSPropertyRule' OR
    uf.feature = 'CSSScopeRule' OR
    uf.feature = 'CSSStartingStyleRule' OR
    uf.feature = 'CSSStyleRule' OR
    uf.feature = 'CSSStyleSheet' OR
    uf.feature = 'CSSViewTransitionRule' OR
    uf.feature = 'CanvasGradient' OR
    uf.feature = 'CanvasPattern' OR
    uf.feature = 'CanvasRenderingContext2D' OR
    uf.feature = 'CaretPosition' OR
    uf.feature = 'ChannelMergerNode' OR
    uf.feature = 'ChannelSplitterNode' OR
    uf.feature = 'ChapterInformation' OR
    uf.feature = 'CharacterBoundsUpdateEvent' OR
    uf.feature = 'Clipboard' OR
    uf.feature = 'ClipboardItem' OR
    uf.feature = 'CloseWatcher' OR
    uf.feature = 'CompressionStream' OR
    uf.feature = 'ConstantSourceNode' OR
    uf.feature = 'ContentVisibilityAutoStateChangeEvent' OR
    uf.feature = 'ConvolverNode' OR
    uf.feature = 'CookieChangeEvent' OR
    uf.feature = 'CookieStore' OR
    uf.feature = 'CookieStoreManager' OR
    uf.feature = 'CredentialsContainer' OR
    uf.feature = 'CropTarget' OR
    uf.feature = 'CustomElementRegistry' OR
    uf.feature = 'CustomStateSet' OR
    uf.feature = 'DecompressionStream' OR
    uf.feature = 'DedicatedWorkerGlobalScope' OR
    uf.feature = 'DelayNode' OR
    uf.feature = 'DelegatedInkTrailPresenter' OR
    uf.feature = 'DeprecationReportBody' OR
    uf.feature = 'DeviceMotionEvent' OR
    uf.feature = 'DeviceMotionEventAcceleration' OR
    uf.feature = 'DeviceMotionEventRotationRate' OR
    uf.feature = 'DeviceOrientationEvent' OR
    uf.feature = 'DevicePosture' OR
    uf.feature = 'Document' OR
    uf.feature = 'DocumentFragment' OR
    uf.feature = 'DocumentPictureInPicture' OR
    uf.feature = 'DocumentPictureInPictureEvent' OR
    uf.feature = 'DocumentTimeline' OR
    uf.feature = 'DynamicsCompressorNode' OR
    uf.feature = 'EXT_texture_compression_bptc' OR
    uf.feature = 'EXT_texture_compression_rgtc' OR
    uf.feature = 'EXT_texture_norm16' OR
    uf.feature = 'EditContext' OR
    uf.feature = 'Element' OR
    uf.feature = 'ElementInternals' OR
    uf.feature = 'EncodedAudioChunk' OR
    uf.feature = 'EncodedVideoChunk' OR
    uf.feature = 'EventTarget' OR
    uf.feature = 'ExtendableCookieChangeEvent' OR
    uf.feature = 'EyeDropper' OR
    uf.feature = 'Fence' OR
    uf.feature = 'FencedFrameConfig' OR
    uf.feature = 'FetchLaterResult' OR
    uf.feature = 'FileSystemDirectoryHandle' OR
    uf.feature = 'FileSystemFileHandle' OR
    uf.feature = 'FileSystemHandle' OR
    uf.feature = 'FileSystemSyncAccessHandle' OR
    uf.feature = 'FileSystemWritableFileStream' OR
    uf.feature = 'FontData' OR
    uf.feature = 'FontFace' OR
    uf.feature = 'FragmentDirective' OR
    uf.feature = 'GPU' OR
    uf.feature = 'GPUAdapter' OR
    uf.feature = 'GPUAdapterInfo' OR
    uf.feature = 'GPUBindGroup' OR
    uf.feature = 'GPUBindGroupLayout' OR
    uf.feature = 'GPUBuffer' OR
    uf.feature = 'GPUCanvasContext' OR
    uf.feature = 'GPUCommandBuffer' OR
    uf.feature = 'GPUCommandEncoder' OR
    uf.feature = 'GPUCompilationInfo' OR
    uf.feature = 'GPUCompilationMessage' OR
    uf.feature = 'GPUComputePassEncoder' OR
    uf.feature = 'GPUComputePipeline' OR
    uf.feature = 'GPUDevice' OR
    uf.feature = 'GPUDeviceLostInfo' OR
    uf.feature = 'GPUError' OR
    uf.feature = 'GPUExternalTexture' OR
    uf.feature = 'GPUInternalError' OR
    uf.feature = 'GPUOutOfMemoryError' OR
    uf.feature = 'GPUPipelineError' OR
    uf.feature = 'GPUPipelineLayout' OR
    uf.feature = 'GPUQuerySet' OR
    uf.feature = 'GPUQueue' OR
    uf.feature = 'GPURenderBundle' OR
    uf.feature = 'GPURenderBundleEncoder' OR
    uf.feature = 'GPURenderPassEncoder' OR
    uf.feature = 'GPURenderPipeline' OR
    uf.feature = 'GPUSampler' OR
    uf.feature = 'GPUShaderModule' OR
    uf.feature = 'GPUSupportedFeatures' OR
    uf.feature = 'GPUSupportedLimits' OR
    uf.feature = 'GPUTexture' OR
    uf.feature = 'GPUTextureView' OR
    uf.feature = 'GPUUncapturedErrorEvent' OR
    uf.feature = 'GPUValidationError' OR
    uf.feature = 'GainNode' OR
    uf.feature = 'Gamepad' OR
    uf.feature = 'GamepadButton' OR
    uf.feature = 'GamepadEvent' OR
    uf.feature = 'GravitySensor' OR
    uf.feature = 'HID' OR
    uf.feature = 'HIDConnectionEvent' OR
    uf.feature = 'HIDDevice' OR
    uf.feature = 'HIDInputReportEvent' OR
    uf.feature = 'HTMLAnchorElement' OR
    uf.feature = 'HTMLAreaElement' OR
    uf.feature = 'HTMLButtonElement' OR
    uf.feature = 'HTMLCanvasElement' OR
    uf.feature = 'HTMLDataListElement' OR
    uf.feature = 'HTMLDetailsElement' OR
    uf.feature = 'HTMLDialogElement' OR
    uf.feature = 'HTMLElement' OR
    uf.feature = 'HTMLFencedFrameElement' OR
    uf.feature = 'HTMLIFrameElement' OR
    uf.feature = 'HTMLImageElement' OR
    uf.feature = 'HTMLInputElement' OR
    uf.feature = 'HTMLLinkElement' OR
    uf.feature = 'HTMLMediaElement' OR
    uf.feature = 'HTMLScriptElement' OR
    uf.feature = 'HTMLSelectElement' OR
    uf.feature = 'HTMLSlotElement' OR
    uf.feature = 'HTMLStyleElement' OR
    uf.feature = 'HTMLTemplateElement' OR
    uf.feature = 'HTMLVideoElement' OR
    uf.feature = 'Highlight' OR
    uf.feature = 'HighlightRegistry' OR
    uf.feature = 'IIRFilterNode' OR
    uf.feature = 'IdentityCredential' OR
    uf.feature = 'IdleDeadline' OR
    uf.feature = 'IdleDetector' OR
    uf.feature = 'ImageData' OR
    uf.feature = 'ImageDecoder' OR
    uf.feature = 'ImageTrack' OR
    uf.feature = 'ImageTrackList' OR
    uf.feature = 'Ink' OR
    uf.feature = 'IntersectionObserver' OR
    uf.feature = 'IntersectionObserverEntry' OR
    uf.feature = 'InterventionReportBody' OR
    uf.feature = 'Keyboard' OR
    uf.feature = 'KeyboardLayoutMap' OR
    uf.feature = 'KeyframeEffect' OR
    uf.feature = 'LaunchParams' OR
    uf.feature = 'LaunchQueue' OR
    uf.feature = 'LayoutShift' OR
    uf.feature = 'LayoutShiftAttribution' OR
    uf.feature = 'LinearAccelerationSensor' OR
    uf.feature = 'Lock' OR
    uf.feature = 'LockManager' OR
    uf.feature = 'MIDIAccess' OR
    uf.feature = 'MIDIConnectionEvent' OR
    uf.feature = 'MIDIInput' OR
    uf.feature = 'MIDIInputMap' OR
    uf.feature = 'MIDIMessageEvent' OR
    uf.feature = 'MIDIOutput' OR
    uf.feature = 'MIDIOutputMap' OR
    uf.feature = 'MIDIPort' OR
    uf.feature = 'ML' OR
    uf.feature = 'MLContext' OR
    uf.feature = 'MLGraph' OR
    uf.feature = 'MLGraphBuilder' OR
    uf.feature = 'MLOperand' OR
    uf.feature = 'MathMLElement' OR
    uf.feature = 'MediaElementAudioSourceNode' OR
    uf.feature = 'MediaMetadata' OR
    uf.feature = 'MediaSession' OR
    uf.feature = 'MediaStreamAudioDestinationNode' OR
    uf.feature = 'MediaStreamAudioSourceNode' OR
    uf.feature = 'MediaStreamTrackAudioSourceNode' OR
    uf.feature = 'NDEFMessage' OR
    uf.feature = 'NDEFReader' OR
    uf.feature = 'NDEFReadingEvent' OR
    uf.feature = 'NDEFRecord' OR
    uf.feature = 'NavigateEvent' OR
    uf.feature = 'Navigation' OR
    uf.feature = 'NavigationActivation' OR
    uf.feature = 'NavigationCurrentEntryChangeEvent' OR
    uf.feature = 'NavigationDestination' OR
    uf.feature = 'NavigationHistoryEntry' OR
    uf.feature = 'NavigationTransition' OR
    uf.feature = 'Navigator' OR
    uf.feature = 'NavigatorUAData' OR
    uf.feature = 'NotRestoredReasonDetails' OR
    uf.feature = 'NotRestoredReasons' OR
    uf.feature = 'OES_draw_buffers_indexed' OR
    uf.feature = 'OES_fbo_render_mipmap' OR
    uf.feature = 'OTPCredential' OR
    uf.feature = 'Observable' OR
    uf.feature = 'OfflineAudioCompletionEvent' OR
    uf.feature = 'OfflineAudioContext' OR
    uf.feature = 'OffscreenCanvas' OR
    uf.feature = 'OffscreenCanvasRenderingContext2D' OR
    uf.feature = 'OscillatorNode' OR
    uf.feature = 'PageRevealEvent' OR
    uf.feature = 'PageSwapEvent' OR
    uf.feature = 'PannerNode' OR
    uf.feature = 'Path2D' OR
    uf.feature = 'Performance' OR
    uf.feature = 'PerformanceLongAnimationFrameTiming' OR
    uf.feature = 'PerformanceNavigationTiming' OR
    uf.feature = 'PerformanceScriptTiming' OR
    uf.feature = 'PeriodicWave' OR
    uf.feature = 'Permissions' OR
    uf.feature = 'PictureInPictureEvent' OR
    uf.feature = 'PictureInPictureWindow' OR
    uf.feature = 'PressureObserver' OR
    uf.feature = 'PressureRecord' OR
    uf.feature = 'Profiler' OR
    uf.feature = 'ReadableByteStreamController' OR
    uf.feature = 'ReadableStream' OR
    uf.feature = 'ReadableStreamBYOBReader' OR
    uf.feature = 'ReadableStreamBYOBRequest' OR
    uf.feature = 'RemotePlayback' OR
    uf.feature = 'ReportingObserver' OR
    uf.feature = 'Request' OR
    uf.feature = 'RestrictionTarget' OR
    uf.feature = 'SVGClipPathElement' OR
    uf.feature = 'Scheduler' OR
    uf.feature = 'Screen' OR
    uf.feature = 'ScreenDetailed' OR
    uf.feature = 'ScreenDetails' OR
    uf.feature = 'ScrollTimeline' OR
    uf.feature = 'Selection' OR
    uf.feature = 'Serial' OR
    uf.feature = 'SerialPort' OR
    uf.feature = 'ServiceWorkerGlobalScope' OR
    uf.feature = 'ServiceWorkerRegistration' OR
    uf.feature = 'ShadowRoot' OR
    uf.feature = 'SharedWorker' OR
    uf.feature = 'SnapEvent' OR
    uf.feature = 'SpeechRecognition' OR
    uf.feature = 'SpeechRecognitionAlternative' OR
    uf.feature = 'SpeechRecognitionErrorEvent' OR
    uf.feature = 'SpeechRecognitionEvent' OR
    uf.feature = 'SpeechRecognitionResult' OR
    uf.feature = 'SpeechRecognitionResultList' OR
    uf.feature = 'SpeechSynthesis' OR
    uf.feature = 'SpeechSynthesisErrorEvent' OR
    uf.feature = 'SpeechSynthesisEvent' OR
    uf.feature = 'SpeechSynthesisUtterance' OR
    uf.feature = 'SpeechSynthesisVoice' OR
    uf.feature = 'StereoPannerNode' OR
    uf.feature = 'StorageAccessHandle' OR
    uf.feature = 'StorageBucket' OR
    uf.feature = 'StorageBucketManager' OR
    uf.feature = 'StorageManager' OR
    uf.feature = 'Subscriber' OR
    uf.feature = 'Summarizer' OR
    uf.feature = 'TaskController' OR
    uf.feature = 'TaskPriorityChangeEvent' OR
    uf.feature = 'TaskSignal' OR
    uf.feature = 'Text' OR
    uf.feature = 'TextFormat' OR
    uf.feature = 'TextFormatUpdateEvent' OR
    uf.feature = 'TextMetrics' OR
    uf.feature = 'TextUpdateEvent' OR
    uf.feature = 'ToggleEvent' OR
    uf.feature = 'TransformStream' OR
    uf.feature = 'URL' OR
    uf.feature = 'URLPattern' OR
    uf.feature = 'USB' OR
    uf.feature = 'USBAlternateInterface' OR
    uf.feature = 'USBConfiguration' OR
    uf.feature = 'USBConnectionEvent' OR
    uf.feature = 'USBDevice' OR
    uf.feature = 'USBEndpoint' OR
    uf.feature = 'USBInTransferResult' OR
    uf.feature = 'USBInterface' OR
    uf.feature = 'USBIsochronousInTransferPacket' OR
    uf.feature = 'USBIsochronousInTransferResult' OR
    uf.feature = 'USBIsochronousOutTransferPacket' OR
    uf.feature = 'USBIsochronousOutTransferResult' OR
    uf.feature = 'USBOutTransferResult' OR
    uf.feature = 'VTTCue' OR
    uf.feature = 'VideoColorSpace' OR
    uf.feature = 'VideoDecoder' OR
    uf.feature = 'VideoEncoder' OR
    uf.feature = 'VideoFrame' OR
    uf.feature = 'VideoPlaybackQuality' OR
    uf.feature = 'ViewTimeline' OR
    uf.feature = 'ViewTransition' OR
    uf.feature = 'ViewTransitionTypeSet' OR
    uf.feature = 'VirtualKeyboard' OR
    uf.feature = 'VisibilityStateEntry' OR
    uf.feature = 'WEBGL_compressed_texture_pvrtc' OR
    uf.feature = 'WEBGL_multi_draw' OR
    uf.feature = 'WGSLLanguageFeatures' OR
    uf.feature = 'WakeLock' OR
    uf.feature = 'WakeLockSentinel' OR
    uf.feature = 'WaveShaperNode' OR
    uf.feature = 'WebGL2RenderingContext' OR
    uf.feature = 'WebGLRenderingContext' OR
    uf.feature = 'WebTransport' OR
    uf.feature = 'WebTransportBidirectionalStream' OR
    uf.feature = 'WebTransportDatagramDuplexStream' OR
    uf.feature = 'WebTransportError' OR
    uf.feature = 'WebTransportReceiveStream' OR
    uf.feature = 'WebTransportSendStream' OR
    uf.feature = 'Window' OR
    uf.feature = 'WindowControlsOverlay' OR
    uf.feature = 'WindowControlsOverlayGeometryChangeEvent' OR
    uf.feature = 'Worker' OR
    uf.feature = 'WorkerNavigator' OR
    uf.feature = 'Worklet' OR
    uf.feature = 'WorkletGlobalScope' OR
    uf.feature = 'WritableStream' OR
    uf.feature = 'XMLHttpRequest' OR
    uf.feature = 'XRAnchor' OR
    uf.feature = 'XRAnchorSet' OR
    uf.feature = 'XRCPUDepthInformation' OR
    uf.feature = 'XRCamera' OR
    uf.feature = 'XRDepthInformation' OR
    uf.feature = 'XRFrame' OR
    uf.feature = 'XRHand' OR
    uf.feature = 'XRHitTestResult' OR
    uf.feature = 'XRHitTestSource' OR
    uf.feature = 'XRInputSource' OR
    uf.feature = 'XRJointPose' OR
    uf.feature = 'XRJointSpace' OR
    uf.feature = 'XRLightEstimate' OR
    uf.feature = 'XRLightProbe' OR
    uf.feature = 'XRRay' OR
    uf.feature = 'XRSession' OR
    uf.feature = 'XRTransientInputHitTestResult' OR
    uf.feature = 'XRTransientInputHitTestSource' OR
    uf.feature = 'XRView' OR
    uf.feature = 'XRWebGLBinding' OR
    uf.feature = 'XRWebGLDepthInformation' OR
    uf.feature = 'fetch' OR
    uf.feature = 'scheduler' OR
    uf.feature = 'structuredClone'
  )
ORDER BY pct DESC;
