openapi: 3.0.3 info: title: PostHog actions integrations API version: 1.0.0 description: '' tags: - name: integrations paths: /api/environments/{environment_id}/integrations/: get: operationId: environments_integrations_list parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - 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 tags: - integrations security: - PersonalAPIKeyAuth: - integration:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedIntegrationConfigList' description: '' deprecated: true x-explicit-tags: - integrations post: operationId: environments_integrations_create parameters: - $ref: '#/components/parameters/EnvironmentIdPath' tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/IntegrationConfig' multipart/form-data: schema: $ref: '#/components/schemas/IntegrationConfig' required: true security: - PersonalAPIKeyAuth: - integration:write responses: '201': content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' description: '' deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/: get: operationId: environments_integrations_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations security: - PersonalAPIKeyAuth: - integration:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' description: '' deprecated: true x-explicit-tags: - integrations delete: operationId: environments_integrations_destroy parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations security: - PersonalAPIKeyAuth: - integration:write responses: '204': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/channels/: get: operationId: environments_integrations_channels_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations security: - PersonalAPIKeyAuth: - integration:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/SlackChannelsResponse' description: '' deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/clickup_lists/: get: operationId: environments_integrations_clickup_lists_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/clickup_spaces/: get: operationId: environments_integrations_clickup_spaces_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/clickup_workspaces/: get: operationId: environments_integrations_clickup_workspaces_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/email/: patch: operationId: environments_integrations_email_partial_update parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedIntegrationConfig' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedIntegrationConfig' multipart/form-data: schema: $ref: '#/components/schemas/PatchedIntegrationConfig' responses: '200': content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' description: '' deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/email/verify/: post: operationId: environments_integrations_email_verify_create parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/IntegrationConfig' multipart/form-data: schema: $ref: '#/components/schemas/IntegrationConfig' required: true responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/github_branches/: get: operationId: environments_integrations_github_branches_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - in: query name: limit schema: type: integer maximum: 1000 minimum: 1 default: 100 description: Maximum number of branches to return - in: query name: offset schema: type: integer minimum: 0 default: 0 description: Number of branches to skip - in: query name: repo schema: type: string minLength: 1 description: Repository in owner/repo format required: true - in: query name: search schema: type: string default: '' description: Optional case-insensitive branch name search query. tags: - integrations security: - PersonalAPIKeyAuth: - integration:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/GitHubBranchesResponse' description: '' deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/github_repos/: get: operationId: environments_integrations_github_repos_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - in: query name: limit schema: type: integer maximum: 500 minimum: 1 default: 100 description: Maximum number of repositories to return per request (max 500). - in: query name: offset schema: type: integer minimum: 0 default: 0 description: Number of repositories to skip before returning results. - in: query name: search schema: type: string default: '' description: Optional case-insensitive repository name search query. tags: - integrations security: - PersonalAPIKeyAuth: - integration:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/GitHubReposResponse' description: '' deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/github_repos/refresh/: post: operationId: environments_integrations_github_repos_refresh_create parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations security: - PersonalAPIKeyAuth: - integration:write responses: '200': content: application/json: schema: $ref: '#/components/schemas/GitHubReposRefreshResponse' description: '' deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/google_accessible_accounts/: get: operationId: environments_integrations_google_accessible_accounts_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/google_conversion_actions/: get: operationId: environments_integrations_google_conversion_actions_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/jira_projects/: get: operationId: environments_integrations_jira_projects_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/linear_teams/: get: operationId: environments_integrations_linear_teams_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/linkedin_ads_accounts/: get: operationId: environments_integrations_linkedin_ads_accounts_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/linkedin_ads_conversion_rules/: get: operationId: environments_integrations_linkedin_ads_conversion_rules_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/{id}/twilio_phone_numbers/: get: operationId: environments_integrations_twilio_phone_numbers_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true tags: - integrations responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/authorize/: get: operationId: environments_integrations_authorize_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' tags: - integrations responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/domain-connect/apply-url/: post: operationId: environments_integrations_domain_connect_apply_url_create description: 'Unified endpoint for generating Domain Connect apply URLs. Accepts a context ("email" or "proxy") and the relevant resource ID. The backend resolves the domain, template variables, and service ID based on context, then builds the signed apply URL.' parameters: - $ref: '#/components/parameters/EnvironmentIdPath' tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/IntegrationConfig' multipart/form-data: schema: $ref: '#/components/schemas/IntegrationConfig' required: true responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/domain-connect/check/: get: operationId: environments_integrations_domain_connect_check_retrieve parameters: - $ref: '#/components/parameters/EnvironmentIdPath' tags: - integrations responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/github/link_existing/: post: operationId: environments_integrations_github_link_existing_create description: Reuse a GitHub installation already linked to a sibling team in the same organization. parameters: - $ref: '#/components/parameters/EnvironmentIdPath' tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/IntegrationConfig' multipart/form-data: schema: $ref: '#/components/schemas/IntegrationConfig' required: true security: - PersonalAPIKeyAuth: - integration:write responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/environments/{environment_id}/integrations/github/oauth_authorize/: post: operationId: environments_integrations_github_oauth_authorize_create description: Mint a User OAuth URL to bootstrap a fresh `code` when the install flow returns without one. parameters: - $ref: '#/components/parameters/EnvironmentIdPath' tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/IntegrationConfig' multipart/form-data: schema: $ref: '#/components/schemas/IntegrationConfig' required: true security: - PersonalAPIKeyAuth: - integration:write responses: '200': description: No response body deprecated: true x-explicit-tags: - integrations /api/organizations/{organization_id}/integrations/: get: operationId: org_organizations_integrations_list description: 'ViewSet for organization-level integrations. Provides access to integrations that are scoped to the entire organization (vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc. Creation is handled by the integration installation flows (e.g., Vercel marketplace installation). Users can disconnect integrations via the DELETE endpoint.' 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/OrganizationIdPath' tags: - integrations security: - PersonalAPIKeyAuth: - organization_integration:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedOrganizationIntegrationList' description: '' x-explicit-tags: - organizations deprecated: true /api/organizations/{organization_id}/integrations/{id}/: get: operationId: org_organizations_integrations_retrieve description: 'ViewSet for organization-level integrations. Provides access to integrations that are scoped to the entire organization (vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc. Creation is handled by the integration installation flows (e.g., Vercel marketplace installation). Users can disconnect integrations via the DELETE endpoint.' parameters: - in: path name: id schema: type: string format: uuid description: A UUID string identifying this organization integration. required: true - $ref: '#/components/parameters/OrganizationIdPath' tags: - integrations security: - PersonalAPIKeyAuth: - organization_integration:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationIntegration' description: '' x-explicit-tags: - organizations deprecated: true delete: operationId: org_organization_integrations_destroy description: 'ViewSet for organization-level integrations. Provides access to integrations that are scoped to the entire organization (vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc. Creation is handled by the integration installation flows (e.g., Vercel marketplace installation). Users can disconnect integrations via the DELETE endpoint.' parameters: - in: path name: id schema: type: string format: uuid description: A UUID string identifying this organization integration. required: true - $ref: '#/components/parameters/OrganizationIdPath' tags: - integrations security: - PersonalAPIKeyAuth: - organization_integration:write responses: '204': description: No response body x-explicit-tags: - organizations deprecated: true /api/organizations/{organization_id}/integrations/{id}/environment-mapping/: patch: operationId: integrations_environment_mapping_partial_update description: 'ViewSet for organization-level integrations. Provides access to integrations that are scoped to the entire organization (vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc. Creation is handled by the integration installation flows (e.g., Vercel marketplace installation). Users can disconnect integrations via the DELETE endpoint.' parameters: - in: path name: id schema: type: string format: uuid description: A UUID string identifying this organization integration. required: true - $ref: '#/components/parameters/OrganizationIdPath' tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedOrganizationIntegration' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedOrganizationIntegration' multipart/form-data: schema: $ref: '#/components/schemas/PatchedOrganizationIntegration' responses: '200': content: application/json: schema: $ref: '#/components/schemas/OrganizationIntegration' description: '' x-explicit-tags: - organizations /api/organizations/{organization_id}/role_external_references/: get: operationId: role_external_references_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/OrganizationIdPath' tags: - integrations security: - PersonalAPIKeyAuth: - organization:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedRoleExternalReferenceList' description: '' x-explicit-tags: - integrations post: operationId: role_external_references_create parameters: - $ref: '#/components/parameters/OrganizationIdPath' tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/RoleExternalReference' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/RoleExternalReference' multipart/form-data: schema: $ref: '#/components/schemas/RoleExternalReference' required: true security: - PersonalAPIKeyAuth: - organization:write responses: '201': content: application/json: schema: $ref: '#/components/schemas/RoleExternalReference' description: '' x-explicit-tags: - integrations /api/organizations/{organization_id}/role_external_references/{id}/: delete: operationId: role_external_references_destroy parameters: - in: path name: id schema: type: string format: uuid description: A UUID string identifying this role external reference. required: true - $ref: '#/components/parameters/OrganizationIdPath' tags: - integrations security: - PersonalAPIKeyAuth: - organization:write responses: '204': description: No response body x-explicit-tags: - integrations /api/organizations/{organization_id}/role_external_references/lookup/: get: operationId: role_external_references_lookup_retrieve parameters: - $ref: '#/components/parameters/OrganizationIdPath' - in: query name: provider schema: type: string minLength: 1 description: Integration kind (e.g., github, linear, jira, slack). required: true - in: query name: provider_organization_id schema: type: string minLength: 1 description: Provider organization/workspace/site identifier. required: true - in: query name: provider_role_id schema: type: string minLength: 1 description: Stable provider role identifier. - in: query name: provider_role_slug schema: type: string minLength: 1 description: Human-friendly provider role identifier. tags: - integrations responses: '200': content: application/json: schema: $ref: '#/components/schemas/RoleLookupResponse' description: '' x-explicit-tags: - integrations /api/projects/{project_id}/integrations/: get: operationId: integrations_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' tags: - integrations security: - PersonalAPIKeyAuth: - integration:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedIntegrationConfigList' description: '' x-explicit-tags: - integrations post: operationId: integrations_create parameters: - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/IntegrationConfig' multipart/form-data: schema: $ref: '#/components/schemas/IntegrationConfig' required: true security: - PersonalAPIKeyAuth: - integration:write responses: '201': content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' description: '' x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/: get: operationId: integrations_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations security: - PersonalAPIKeyAuth: - integration:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' description: '' x-explicit-tags: - integrations delete: operationId: integrations_destroy parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations security: - PersonalAPIKeyAuth: - integration:write responses: '204': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/channels/: get: operationId: integrations_channels_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations security: - PersonalAPIKeyAuth: - integration:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/SlackChannelsResponse' description: '' x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/clickup_lists/: get: operationId: integrations_clickup_lists_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/clickup_spaces/: get: operationId: integrations_clickup_spaces_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/clickup_workspaces/: get: operationId: integrations_clickup_workspaces_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/email/: patch: operationId: integrations_email_partial_update parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedIntegrationConfig' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/PatchedIntegrationConfig' multipart/form-data: schema: $ref: '#/components/schemas/PatchedIntegrationConfig' responses: '200': content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' description: '' x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/email/verify/: post: operationId: integrations_email_verify_create parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/IntegrationConfig' multipart/form-data: schema: $ref: '#/components/schemas/IntegrationConfig' required: true responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/github_branches/: get: operationId: integrations_github_branches_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - in: query name: limit schema: type: integer maximum: 1000 minimum: 1 default: 100 description: Maximum number of branches to return - in: query name: offset schema: type: integer minimum: 0 default: 0 description: Number of branches to skip - $ref: '#/components/parameters/ProjectIdPath' - in: query name: repo schema: type: string minLength: 1 description: Repository in owner/repo format required: true - in: query name: search schema: type: string default: '' description: Optional case-insensitive branch name search query. tags: - integrations security: - PersonalAPIKeyAuth: - integration:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/GitHubBranchesResponse' description: '' x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/github_repos/: get: operationId: integrations_github_repos_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - in: query name: limit schema: type: integer maximum: 500 minimum: 1 default: 100 description: Maximum number of repositories to return per request (max 500). - in: query name: offset schema: type: integer minimum: 0 default: 0 description: Number of repositories to skip before returning results. - $ref: '#/components/parameters/ProjectIdPath' - in: query name: search schema: type: string default: '' description: Optional case-insensitive repository name search query. tags: - integrations security: - PersonalAPIKeyAuth: - integration:read responses: '200': content: application/json: schema: $ref: '#/components/schemas/GitHubReposResponse' description: '' x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/github_repos/refresh/: post: operationId: integrations_github_repos_refresh_create parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations security: - PersonalAPIKeyAuth: - integration:write responses: '200': content: application/json: schema: $ref: '#/components/schemas/GitHubReposRefreshResponse' description: '' x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/google_accessible_accounts/: get: operationId: integrations_google_accessible_accounts_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/google_conversion_actions/: get: operationId: integrations_google_conversion_actions_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/jira_projects/: get: operationId: integrations_jira_projects_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/linear_teams/: get: operationId: integrations_linear_teams_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/linkedin_ads_accounts/: get: operationId: integrations_linkedin_ads_accounts_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/linkedin_ads_conversion_rules/: get: operationId: integrations_linkedin_ads_conversion_rules_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/{id}/twilio_phone_numbers/: get: operationId: integrations_twilio_phone_numbers_retrieve parameters: - in: path name: id schema: type: integer description: A unique integer value identifying this integration. required: true - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/authorize/: get: operationId: integrations_authorize_retrieve parameters: - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/domain-connect/apply-url/: post: operationId: integrations_domain_connect_apply_url_create description: 'Unified endpoint for generating Domain Connect apply URLs. Accepts a context ("email" or "proxy") and the relevant resource ID. The backend resolves the domain, template variables, and service ID based on context, then builds the signed apply URL.' parameters: - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/IntegrationConfig' multipart/form-data: schema: $ref: '#/components/schemas/IntegrationConfig' required: true responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/domain-connect/check/: get: operationId: integrations_domain_connect_check_retrieve parameters: - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/github/link_existing/: post: operationId: integrations_github_link_existing_create description: Reuse a GitHub installation already linked to a sibling team in the same organization. parameters: - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/IntegrationConfig' multipart/form-data: schema: $ref: '#/components/schemas/IntegrationConfig' required: true security: - PersonalAPIKeyAuth: - integration:write responses: '200': description: No response body x-explicit-tags: - integrations /api/projects/{project_id}/integrations/github/oauth_authorize/: post: operationId: integrations_github_oauth_authorize_create description: Mint a User OAuth URL to bootstrap a fresh `code` when the install flow returns without one. parameters: - $ref: '#/components/parameters/ProjectIdPath' tags: - integrations requestBody: content: application/json: schema: $ref: '#/components/schemas/IntegrationConfig' application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/IntegrationConfig' multipart/form-data: schema: $ref: '#/components/schemas/IntegrationConfig' required: true security: - PersonalAPIKeyAuth: - integration:write responses: '200': description: No response body x-explicit-tags: - integrations components: schemas: GitHubReposResponse: type: object properties: repositories: type: array items: $ref: '#/components/schemas/GitHubRepo' has_more: type: boolean description: Whether more repositories are available beyond this page. required: - has_more - repositories GitHubReposRefreshResponse: type: object properties: repositories: type: array items: $ref: '#/components/schemas/GitHubRepo' description: The refreshed repository cache. required: - repositories PaginatedOrganizationIntegrationList: 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/OrganizationIntegration' RoleLookupResponse: type: object properties: reference: allOf: - $ref: '#/components/schemas/RoleExternalReference' nullable: true description: Matching reference, or null if none exists. required: - reference RoleAtOrganizationEnum: enum: - engineering - data - product - founder - leadership - marketing - sales - other type: string description: '* `engineering` - Engineering * `data` - Data * `product` - Product Management * `founder` - Founder * `leadership` - Leadership * `marketing` - Marketing * `sales` - Sales / Success * `other` - Other' RoleExternalReference: type: object properties: id: type: string format: uuid readOnly: true provider: type: string description: Integration kind (e.g., github, linear, jira, slack). maxLength: 32 provider_organization_id: type: string description: Provider organization/workspace/site identifier. maxLength: 255 provider_role_id: type: string description: Stable provider role identifier. maxLength: 255 provider_role_slug: type: string nullable: true description: Human-friendly provider role identifier. maxLength: 255 provider_role_name: type: string description: Display name of the provider role. maxLength: 255 role: type: string format: uuid description: PostHog role UUID this external role maps to. created_at: type: string format: date-time readOnly: true created_by: allOf: - $ref: '#/components/schemas/UserBasic' readOnly: true required: - created_at - created_by - id - provider - provider_organization_id - provider_role_id - provider_role_name - role NullEnum: enum: - null PatchedIntegrationConfig: type: object description: Standard Integration serializer. properties: id: type: integer readOnly: true kind: $ref: '#/components/schemas/IntegrationKindEnum' config: {} created_at: type: string format: date-time readOnly: true created_by: allOf: - $ref: '#/components/schemas/UserBasic' readOnly: true errors: type: string readOnly: true display_name: type: string readOnly: true UserBasic: type: object properties: id: type: integer readOnly: true uuid: type: string format: uuid readOnly: true distinct_id: type: string nullable: true maxLength: 200 first_name: type: string maxLength: 150 last_name: type: string maxLength: 150 email: type: string format: email title: Email address maxLength: 254 is_email_verified: type: boolean nullable: true hedgehog_config: type: object additionalProperties: true nullable: true readOnly: true role_at_organization: nullable: true oneOf: - $ref: '#/components/schemas/RoleAtOrganizationEnum' - $ref: '#/components/schemas/BlankEnum' - $ref: '#/components/schemas/NullEnum' required: - email - hedgehog_config - id - uuid OrganizationIntegrationKindEnum: enum: - vercel type: string description: '* `vercel` - Vercel' PatchedOrganizationIntegration: type: object description: Serializer for organization-level integrations. properties: id: type: string format: uuid readOnly: true kind: allOf: - $ref: '#/components/schemas/OrganizationIntegrationKindEnum' readOnly: true integration_id: type: string readOnly: true nullable: true config: readOnly: true created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true created_by: allOf: - $ref: '#/components/schemas/UserBasic' readOnly: true IntegrationConfig: type: object description: Standard Integration serializer. properties: id: type: integer readOnly: true kind: $ref: '#/components/schemas/IntegrationKindEnum' config: {} created_at: type: string format: date-time readOnly: true created_by: allOf: - $ref: '#/components/schemas/UserBasic' readOnly: true errors: type: string readOnly: true display_name: type: string readOnly: true required: - created_at - created_by - display_name - errors - id - kind IntegrationKindEnum: enum: - apns - azure-blob - bing-ads - clickup - customerio-app - customerio-track - customerio-webhook - databricks - email - firebase - github - gitlab - google-ads - google-cloud-service-account - google-cloud-storage - google-pubsub - google-sheets - hubspot - intercom - jira - linear - linkedin-ads - meta-ads - pinterest-ads - postgresql - reddit-ads - salesforce - slack - slack-posthog-code - snapchat - stripe - tiktok-ads - twilio - vercel type: string description: '* `apns` - Apple Push * `azure-blob` - Azure Blob * `bing-ads` - Bing Ads * `clickup` - Clickup * `customerio-app` - Customerio App * `customerio-track` - Customerio Track * `customerio-webhook` - Customerio Webhook * `databricks` - Databricks * `email` - Email * `firebase` - Firebase * `github` - Github * `gitlab` - Gitlab * `google-ads` - Google Ads * `google-cloud-service-account` - Google Cloud Service Account * `google-cloud-storage` - Google Cloud Storage * `google-pubsub` - Google Pubsub * `google-sheets` - Google Sheets * `hubspot` - Hubspot * `intercom` - Intercom * `jira` - Jira * `linear` - Linear * `linkedin-ads` - Linkedin Ads * `meta-ads` - Meta Ads * `pinterest-ads` - Pinterest Ads * `postgresql` - Postgresql * `reddit-ads` - Reddit Ads * `salesforce` - Salesforce * `slack` - Slack * `slack-posthog-code` - Slack Posthog Code * `snapchat` - Snapchat * `stripe` - Stripe * `tiktok-ads` - Tiktok Ads * `twilio` - Twilio * `vercel` - Vercel' SlackChannel: type: object properties: id: type: string description: Slack channel ID (e.g. C0123ABC) — pass to cdp-functions inputs.channel. name: type: string description: Slack channel name without the leading '#'. is_private: type: boolean description: True if the channel is private. is_member: type: boolean description: True if the PostHog Slack app is a member of the channel and can post to it. is_ext_shared: type: boolean description: True if the channel is shared with another Slack workspace. is_private_without_access: type: boolean description: True if the channel is private and the PostHog Slack app cannot access it. required: - id - is_ext_shared - is_member - is_private - is_private_without_access - name PaginatedIntegrationConfigList: 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/IntegrationConfig' GitHubRepo: type: object properties: id: type: integer name: type: string full_name: type: string required: - full_name - id - name SlackChannelsResponse: type: object properties: channels: type: array items: $ref: '#/components/schemas/SlackChannel' description: Slack channels visible to the PostHog Slack app. lastRefreshedAt: type: string nullable: true description: ISO 8601 timestamp of the last full Slack API refresh (only set on full lists, not single-channel lookups). required: - channels BlankEnum: enum: - '' PaginatedRoleExternalReferenceList: 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/RoleExternalReference' OrganizationIntegration: type: object description: Serializer for organization-level integrations. properties: id: type: string format: uuid readOnly: true kind: allOf: - $ref: '#/components/schemas/OrganizationIntegrationKindEnum' readOnly: true integration_id: type: string readOnly: true nullable: true config: readOnly: true created_at: type: string format: date-time readOnly: true updated_at: type: string format: date-time readOnly: true created_by: allOf: - $ref: '#/components/schemas/UserBasic' readOnly: true required: - config - created_at - created_by - id - integration_id - kind - updated_at GitHubBranchesResponse: type: object properties: branches: type: array items: type: string description: List of branch names default_branch: type: string nullable: true description: The default branch of the repository has_more: type: boolean description: Whether more branches exist beyond the returned page required: - branches - has_more parameters: EnvironmentIdPath: in: path name: environment_id required: true schema: type: string description: Deprecated. Use /api/projects/{project_id}/ instead. OrganizationIdPath: in: path name: organization_id required: true schema: type: string description: ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/. 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