openapi: 3.0.3
info:
title: Whatfix Analytics End Users API
description: The Whatfix REST API enables programmatic access to Whatfix platform operations including end-user management, content management, flow analytics, segmentation, and report downloads. The API is stateless and uses API token authentication via the x-whatfix-integration-key header.
version: v1
contact:
name: Whatfix Support
url: https://support.whatfix.com
email: support@whatfix.com
termsOfService: https://whatfix.com/terms-of-service/
servers:
- url: https://whatfix.com/api/v1
description: Whatfix REST API v1
security:
- ApiKeyAuth: []
tags:
- name: End Users
paths:
/{accountId}/end-users:
get:
operationId: listEndUsers
summary: List End Users
description: Returns a paginated list of all end users tracked in the Whatfix platform for the specified account. Used for segmentation and analytics integration.
tags:
- End Users
parameters:
- $ref: '#/components/parameters/AccountId'
- $ref: '#/components/parameters/PageParam'
- $ref: '#/components/parameters/PageSizeParam'
responses:
'200':
description: Paginated list of end users.
content:
application/json:
schema:
$ref: '#/components/schemas/EndUserList'
'401':
description: Invalid API token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: API token does not have permission for this resource.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/{accountId}/end-users/{userId}:
put:
operationId: upsertEndUser
summary: Upsert End User
description: Creates or updates an end user record with custom attributes for segmentation. Use this to sync user data from your identity provider or CRM into Whatfix.
tags:
- End Users
parameters:
- $ref: '#/components/parameters/AccountId'
- name: userId
in: path
required: true
description: Unique identifier for the end user.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/EndUser'
responses:
'200':
description: End user updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/EndUser'
'201':
description: End user created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/EndUser'
'400':
description: Invalid request body.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
parameters:
PageParam:
name: page
in: query
required: false
description: Page number for paginated results (1-based).
schema:
type: integer
minimum: 1
default: 1
AccountId:
name: accountId
in: path
required: true
description: Your Whatfix account identifier.
schema:
type: string
PageSizeParam:
name: pageSize
in: query
required: false
description: Number of results per page.
schema:
type: integer
minimum: 1
maximum: 100
default: 20
schemas:
Error:
type: object
properties:
code:
type: integer
message:
type: string
details:
type: string
EndUser:
type: object
description: A Whatfix end user tracked for analytics and segmentation.
properties:
userId:
type: string
description: Unique identifier for the end user.
email:
type: string
format: email
description: Email address of the end user.
name:
type: string
description: Display name of the end user.
attributes:
type: object
additionalProperties: true
description: Custom key-value attributes for segmentation (role, department, etc.).
createdAt:
type: string
format: date-time
description: When this user was first tracked.
lastSeenAt:
type: string
format: date-time
description: When this user was last active.
EndUserList:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/EndUser'
pagination:
$ref: '#/components/schemas/Pagination'
Pagination:
type: object
properties:
page:
type: integer
pageSize:
type: integer
totalCount:
type: integer
totalPages:
type: integer
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: x-whatfix-integration-key
description: User API token obtained from the Whatfix dashboard. Pass your registered Whatfix email address in the x-whatfix-user header as well.