Skip to main content
Everything a vendor UI imports comes from one entry:
Each symbol’s page below is generated from the SDK’s own TypeScript declarations, so the signature you read is the signature you compile against.

Hooks

The three data hooks take TapQueryOptions and hand back TapQueryResult or TapStorageResult.

UI kit

UI kit props

One props type per component: TapCardProps, TapPageHeaderProps, TapStatProps, TapTableProps, TapButtonProps, TapSelectProps, TapFormProps, TapDialogProps, TapSkeletonProps, TapEmptyStateProps, TapErrorStateProps. TapInputProps is the union of TapSingleLineInputProps and TapTextareaProps. TapTable takes its columns as TapTableColumn or TapTableColumnDef; TapForm and formFields produce TapFormField of a TapFormFieldKind; cn takes a ClassValue.

Errors

TapError, TapServerError, TAP_ERROR_CODES, TapErrorCode. Every code with its fix is on Errors.

Component props

TapWidgetProps, TapTabProps, TapPageProps, TapRowActionProps, TapSettingsProps.

The bridge

Tap is the object useTap() returns. Its members: extension, env, host, auth, project, filters, theme, locale, timezone, format, nav, data, server, state, ui, context, storage, telemetry, actions, invalidate. format is TapFormatters; nav moves along a TapPath, which names a HostPage; ui raises toasts of a TapToastTone, asks with TapConfirmOptions and sends a TapChatCard; actions returns a TapActionRun; auth.can takes a ScopeKey. A widget is anchored at a SlotId. TapInternals is the host’s own channel and is not for vendors.

Filters and units

TapFilters carries a TapDateRange, a TapPlatformFilter over TapPlatform, and a country. A comparison carries a TapComparisonSide and a TapChangeKey. A metric is a TapSeriesMetric; a mount renders at a TapSize.

Queries and results

TapQuery and TapResult, keyed by a DataQueryKind, with one result type per kind: TapProjectResult, TapSeriesResult, TapKeywordsResult, TapListingResult, TapReviewsResult, TapCrashesResult, TapRevenueResult. The rows they carry are TapApp, TapRelease, TapKeyword, TapListing, TapReview, TapCrashIssue, TapSeriesPoint.

Storage, procedures, actions and events

TapStorage reaches a TapSingleton or a TapCollection by TapSingletonName, typed as TapSingletonDocument. TapProcedures, TapProcedureName, TapProcedureInput, TapProcedureOutput; ActionId, ActionInput, ToolId, ToolInput, PromptId, PromptInput; WebhookName, WebhookPayload, TapHostEvents, HostEventName, TelemetryEvent; TapSettingsValues, TapCredentialValues. These read the interfaces tappify extension types fills in: TapStorageMap, TapProcedureMap, TapActionMap, TapToolMap, TapPromptMap, TapWebhookMap, TapHostEventMap, TapTelemetryEvents, TapSettings, TapCredentials. Before you generate, each falls back to a permissive shape.

Query keys

dataQueryKey, procedureQueryKey, storageQueryKey, procedurePrefix and installPrefix build the cache keys the host uses. You need them only when you reach the query cache directly.

Also shipped

@tappify/extension-sdk/styles.css is the UI kit’s stylesheet. Import it once per entry file. @tappify/extension-sdk/vite exports tappifyExtension(), which wires a Vite build for the host, and collectEntryStyles. @tappify/extension-sdk/manifest exports the schema, the registry constants and defineManifest — see Manifest schema. @tappify/extension-sdk/host is Tappify’s own entry and is not for vendors.