openapi: 3.0.3 info: title: PostHog actions hog_function_templates API version: 1.0.0 description: '' tags: - name: hog_function_templates paths: /api/projects/{project_id}/hog_function_templates/: get: operationId: hog_function_templates_list parameters: - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - $ref: '#/components/parameters/ProjectIdPath' - in: query name: template_id schema: type: string description: Filter to a specific template by its template_id. Deprecated templates are excluded from list results; use the retrieve endpoint to look up a template by ID regardless of status. - in: query name: type schema: type: string description: Filter by template type (e.g. destination, email, sms_provider, broadcast). Defaults to destination if neither type nor types is provided. - in: query name: types schema: type: string description: Comma-separated list of template types to include (e.g. destination,email,sms_provider). tags: - hog_function_templates security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedHogFunctionTemplateList' description: '' x-explicit-tags: - hog_function_templates - cdp /api/projects/{project_id}/hog_function_templates/{template_id}/: get: operationId: hog_function_templates_retrieve parameters: - $ref: '#/components/parameters/ProjectIdPath' - in: path name: template_id schema: type: string required: true tags: - hog_function_templates security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/HogFunctionTemplate' description: '' x-explicit-tags: - hog_function_templates - cdp /api/public_hog_function_templates/: get: operationId: public_hog_function_templates_list parameters: - name: limit required: false in: query description: Number of results to return per page. schema: type: integer - name: offset required: false in: query description: The initial index from which to return the results. schema: type: integer - in: query name: template_id schema: type: string description: Filter to a specific template by its template_id. Deprecated templates are excluded from list results; use the retrieve endpoint to look up a template by ID regardless of status. - in: query name: type schema: type: string description: Filter by template type (e.g. destination, email, sms_provider, broadcast). Defaults to destination if neither type nor types is provided. - in: query name: types schema: type: string description: Comma-separated list of template types to include (e.g. destination,email,sms_provider). tags: - hog_function_templates security: - {} responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedHogFunctionTemplateList' description: '' x-explicit-tags: - hog_function_templates - cdp components: schemas: HogFunctionTemplate: type: object properties: id: type: string description: Unique template identifier (e.g. 'template-slack'). name: type: string description: Display name of the template. maxLength: 400 description: type: string nullable: true description: What this template does. code: type: string description: Source code of the template. code_language: type: string description: 'Programming language: ''hog'' or ''javascript''.' maxLength: 20 inputs_schema: description: Schema defining configurable inputs for functions created from this template. type: type: string description: Function type this template creates. maxLength: 50 status: type: string description: 'Lifecycle status: alpha, beta, stable, deprecated, or hidden.' maxLength: 20 category: description: Category tags for organizing templates. free: type: boolean description: Whether available on free plans. icon_url: type: string nullable: true description: URL for the template's icon. filters: nullable: true description: Default event filters. masking: nullable: true description: Default PII masking configuration. mapping_templates: type: array items: $ref: '#/components/schemas/HogFunctionMappingTemplate' nullable: true description: Pre-defined mapping configurations for destination templates. required: - code - id - inputs_schema - name - type PaginatedHogFunctionTemplateList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=400&limit=100 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?offset=200&limit=100 results: type: array items: $ref: '#/components/schemas/HogFunctionTemplate' HogFunctionMappingTemplate: type: object properties: name: type: string description: Name of this mapping template. include_by_default: type: boolean nullable: true description: Whether this mapping is enabled by default. use_all_events_by_default: type: boolean nullable: true description: Whether this mapping should match all events by default, hiding the event filter UI. filters: nullable: true description: Event filters specific to this mapping. inputs: nullable: true description: Input values specific to this mapping. inputs_schema: nullable: true description: Additional input schema fields specific to this mapping. required: - name parameters: ProjectIdPath: in: path name: project_id required: true schema: type: string description: Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/. securitySchemes: PersonalAPIKeyAuth: type: http scheme: bearer x-tagGroups: - name: All endpoints tags: - LLM Analytics - actions - activity_log - activity_logs - advanced_activity_logs - alerts - annotations - approval_policies - batch_exports - cdp - change_requests - code - code-invites - cohorts - comments - conversations - core - customer_analytics - customer_journeys - customer_profile_configs - dashboard_templates - dashboards - data_color_themes - data_modeling_jobs - data_warehouse - dataset_items - datasets - desktop_recordings - domains - early_access_feature - early_access_features - elements - endpoints - environments - error_tracking - evaluation_runs - evaluations - event_definitions - event_filter - event_schemas - events - experiment_holdouts - experiment_saved_metrics - experiments - exports - external_data_schemas - external_data_sources - feature_flags - file_system - file_system_shortcut - flag_value - groups - groups_types - health_issues - heatmap_screenshots - heatmaps - hog_flows - hog_function_templates - hog_functions - insight_variables - insights - integrations - invites - js-snippet - legal_documents - lineage - live_debugger_breakpoints - llm_analytics - llm_prompts - llm_skills - logs - managed_viewsets - max - max_tools - mcp_server_installations - mcp_servers - mcp_store - mcp_tools - members - notebooks - oauth_applications - object_media_previews - organizations - persisted_folder - persons - platform_features - plugin_configs - product_analytics - product_tours - project_secret_api_keys - projects - property_definitions - proxy_records - public_hog_function_templates - query - replay - reverse_proxy - role_external_references - roles - sandbox-environments - sandbox_environments - saved - schema_property_groups - sdk_doctor - session_group_summaries - session_recording_playlists - session_recordings - session_summaries - sessions - signals - subscriptions - surveys - taggers - task-automations - task-runs - task_automations - tasks - uploaded_media - user_home_settings - user_interviews - users - visual_review - warehouse_dag - warehouse_model_paths - warehouse_saved_queries - warehouse_saved_query_folders - warehouse_tables - warehouse_view_link - warehouse_view_links - web_analytics - web_experiments - web_vitals - welcome - workflows