Need help with your APIs? I offer API discovery, governance & evangelism services. Explore services →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Knock Users API

A user is an individual from your system, represented in Knock. They are most commonly a recipient of a notification.

Knock Users API is one of 19 APIs that Knock publishes on the APIs.io network, described by a machine-readable OpenAPI specification and an AsyncAPI event-driven specification.

Tagged areas include Users. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an AsyncAPI specification.

This API exposes 35 operations across 28 paths, and defines 57 schemas. It is described by OpenAPI 3.0.0, at version 1.0.

Requests are made against a single base URL, https://api.knock.app.

35 operations 28 paths 57 schemas 4 DELETE11 GET4 POST16 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.0
API Version
1.0
Base URL
https://api.knock.app/v1
Authentication
HTTP Bearer
Resource Areas
1

Authentication & Security 1

Knock Users API declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (JWT) (BearerAuth). By default, every request must be authenticated.

Paths & Operations 35

Across 28 paths, the API surfaces 35 operations — 4 DELETE, 11 GET, 4 POST, 16 PUT. Each is listed below with its method, path, parameters, and response codes.

Users 35

A user is an individual from your system, represented in Knock. They are most commonly a recipient of a notification.

PUT
/v1/users/{user_id}/guides/messages/seen
Mark guide as seen
markUserGuideAsSeen (2) 1 param body → 200
GET
/v1/users/{user_id}/feeds/{id}
List feed items
listUserInAppFeedItems 19 params → 200
GET
/v1/users/{user_id}/feeds/{id}/settings
Get feed settings
getUserInAppFeedSettings 2 params → 200
GET
/v1/users/{user_id}/subscriptions
List user subscriptions
listSubscriptionsForUser 6 params → 200
DELETE
/v1/users/{user_id}
Delete user
deleteUser 1 param → 204
GET
/v1/users/{user_id}
Get user
getUser 1 param → 200
PUT
/v1/users/{user_id}
Identify user
identifyUser 1 param body → 200
PUT
/v1/users/{user_id}/preferences/{id}/categories/{key}deprecated
Update category in user preference set
updateUserPreferenceCategory → 200
PUT
/v1/users/{user_id}/guides/messages/{message_id}/seen
Mark guide as seen
markUserGuideAsSeen 1 param body → 200
DELETE
/v1/users/{user_id}/guides/messages/archived
Mark guide as unarchived
markUserGuideAsUnarchived 1 param body → 200
PUT
/v1/users/{user_id}/guides/messages/archived
Mark guide as archived
markUserGuideAsArchived (2) 1 param body → 200
DELETE
/v1/users/{user_id}/channel_data/{channel_id}
Unset channel data
unsetUserChannelData 2 params → 204
GET
/v1/users/{user_id}/channel_data/{channel_id}
Get channel data
getUserChannelData 2 params → 200
PUT
/v1/users/{user_id}/channel_data/{channel_id}
Set channel data
setUserChannelData 2 params body → 200
POST
/v1/users/{user_id}/merge
Merge users
mergeUser 1 param body → 200
PUT
/v1/users/{user_id}/guides/messages/interacted
Mark guide as interacted
markUserGuideAsInteracted (2) 1 param body → 200
PUT
/v1/users/{user_id}/guides/engagements/reset
Reset guide engagement
resetUserGuideEngagement 1 param body → 200
POST
/v1/users/bulk/preferences
Bulk set preferences
bulkSetUserPreferences body → 200
GET
/v1/users/{user_id}/guides/{channel_id}
List guides
listUserGuides 5 params → 200
POST
/v1/users/bulk/identify
Bulk identify users
bulkIdentifyUsers body → 200
PUT
/v1/users/{user_id}/preferences/{id}/workflowsdeprecated
Update workflows in preference set
updateUserPreferenceWorkflows → 200
PUT
/v1/users/{user_id}/preferences/{id}/categoriesdeprecated
Update categories in user preference set
updateUserPreferenceCategories → 200
PUT
/v1/users/{user_id}/guides/messages/{message_id}/interacted
Mark guide as interacted
markUserGuideAsInteracted 1 param body → 200
POST
/v1/users/bulk/delete
Bulk delete users
bulkDeleteUsers body → 200
PUT
/v1/users/{user_id}/preferences/{id}/channel_types/{type}deprecated
Update channel type in preference set
updateUserPreferenceChannelType → 200
GET
/v1/users/{user_id}/preferences
List user preference sets
listUserPreferenceSets 1 param → 200
GET
/v1/users/{user_id}/schedules
List user schedules
listUserSchedules 6 params → 200
PUT
/v1/users/{user_id}/guides/messages/{message_id}/archived
Mark guide as archived
markUserGuideAsArchived 1 param body → 200
GET
/v1/users/{user_id}/messages
List user messages
listMessagesForUser 18 params → 200
GET
/v1/users
List users
listUsers 4 params → 200
PUT
/v1/users/{user_id}/preferences/{id}/workflows/{key}deprecated
Update workflow in user preference set
updateUserPreferenceWorkflow → 200
DELETE
/v1/users/{user_id}/preferences/{id}
Delete user preference set
deleteUserPreferenceSet 2 params → 204
GET
/v1/users/{user_id}/preferences/{id}
Get user preference set
getUserPreferenceSet 3 params → 200
PUT
/v1/users/{user_id}/preferences/{id}
Update user preference set
updateUserPreferenceSet 2 params body → 200
PUT
/v1/users/{user_id}/preferences/{id}/channel_typesdeprecated
Update channel types in preference set
updateUserPreferenceChannelTypes → 200

Schemas 57

The contract defines 57 schemas that model the data the API accepts and returns. The most detailed are Message (22 properties), InAppFeedItem (18 properties), BulkOperation (15 properties), Schedule (12 properties). Each schema is shown below with its type and property counts.

InAppFeedItem
object
An in-app feed message in a user's feed.
18 properties 12 required
BulkDeleteUsersRequest
object
A request to delete users in bulk.
1 property 1 required
IdentifyUserRequest
object
A set of parameters to identify a user with. Does not include the user ID, as that's specified elsewhere in the request. You can supply any additional properti…
9 properties
DiscordIncomingWebhookConnection
object
Discord incoming webhook connection.
1 property 1 required
MergeUserRequest
object
A set of parameters to merge one user into another.
1 property 1 required
Schedule
object
A schedule represents a recurring workflow execution.
12 properties 6 required
AWSSNSPushChannelDataFull
object
AWS SNS push channel data.
2 properties 2 required
GuidesResponse
object
A response for a list of guides.
4 properties 4 required
RecipientReference
A reference to a recipient, either a user identifier (string) or an object reference (ID, collection).
InlinePreferenceSetRequest
object
Inline set preferences for a recipient, where the key is the preference set id. Preferences that are set inline will be merged into any existing preferences ra…
ChannelData
object
Channel data for a given channel type.
4 properties 3 required
ListSubscriptionsResponse
object
A response containing a list of subscriptions.
2 properties 2 required
MessageInAppFeedContentBlock
object
A block in a message in an app feed.
4 properties 4 required
MsTeamsChannelData
object
Microsoft Teams channel data.
2 properties 1 required
MsTeamsTokenConnection
object
Microsoft Teams token connection.
4 properties
PageInfo
object
Pagination information for a list of resources.
4 properties 2 required
Object
object
A custom [Object](/concepts/objects) entity which belongs to a collection.
6 properties 4 required
MsTeamsIncomingWebhookConnection
object
Microsoft Teams incoming webhook connection.
1 property 1 required
OneSignalChannelDataPlayerIdsOnly
object
OneSignal channel data.
1 property 1 required
PreferenceSetWorkflowCategorySetting
object
Workflow or category preferences within a preference set
Recipient
object
A recipient of a notification, which is either a user or an object.
ChannelDataRequest
object
A request to set channel data for a type of channel.
1 property 1 required
PreferenceSetChannelTypes
object
Channel type preferences.
6 properties
PreferenceSetChannelTypeSetting
object
A set of settings for a channel type. Currently, this can only be a list of conditions to apply.
1 property 1 required
BulkIdentifyUsersRequest
object
A request to identify a list of users.
1 property 1 required
ListUsersResponse
object
A paginated list of users.
2 properties
UserInAppFeedSettingsResponse
object
The response for the user's feed settings.
1 property 1 required
ListMessagesResponse
object
A paginated list of messages.
2 properties 2 required
PreferenceSetRequest
object
A request to set a preference set for a recipient.
6 properties
GuideActionResponse
object
A response for a guide action.
1 property 1 required
AWSSNSPushChannelDataTargetARNsOnly
object
AWS SNS push channel data.
1 property 1 required
PushChannelDataFull
object
Push channel data.
2 properties 2 required
Message
object
Represents a single message that was generated by a workflow for a given channel.
22 properties 9 required
DiscordChannelConnection
object
Discord channel connection.
1 property 1 required
InlineIdentifyUserRequest
object
A set of parameters to inline-identify a user with. Inline identifying the user will ensure that the user is available before the request is executed in Knock.…
10 properties 1 required
AWSSNSPushChannelDataDevicesOnly
object
AWS SNS push channel data.
1 property 1 required
Condition
object
A condition to be evaluated.
3 properties 3 required
BulkOperation
object
A bulk operation entity.
15 properties 9 required
UserInAppFeedResponse
object
A paginated list of feed items.
4 properties 4 required
InlineChannelDataRequest
object
A request to set channel data for a type of channel inline.
MessageInAppFeedButtonSetBlock
object
A button set block in a message in an app feed.
3 properties 3 required
User
object
A [User](/concepts/users) represents an individual in your system who can receive notifications through Knock. Users are the most common recipients of notifica…
9 properties 3 required
BulkSetUserPreferencesRequest
object
A request to set preferences for a set of users in bulk.
2 properties 2 required
PushChannelDataTokensOnly
object
Push channel data.
1 property 1 required
DiscordChannelData
object
Discord channel data.
1 property 1 required
PreferenceSetChannels
object
Channel preferences.
SlackTokenConnection
object
A Slack connection token.
3 properties
ScheduleRepeatRule
object
The repeat rule for the schedule.
7 properties 1 required
Activity
object
An activity associated with a workflow trigger request. Messages produced after a [batch step](/designing-workflows/batch-function) can be associated with one…
7 properties
SlackIncomingWebhookConnection
object
A Slack connection incoming webhook.
1 property 1 required
PreferenceSet
object
A preference set represents a specific set of notification preferences for a recipient. A recipient can have multiple preference sets.
6 properties 1 required
SlackChannelData
object
Slack channel data.
2 properties 1 required
Subscription
object
A subscription object.
6 properties 5 required
GuideActionRequest
object
A request to trigger a guide action.
9 properties 4 required
ListSchedulesResponse
object
A response containing a list of schedules.
2 properties 2 required
PreferenceSetChannelSetting
object
A set of settings for a specific channel. Currently, this can only be a list of conditions to apply.
1 property 1 required
PushChannelDataDevicesOnly
object
Push channel data.
1 property 1 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

knock-users-api-openapi.yml Raw ↑

Other APIs Knock publishes across the network.

Knock Audiences API
Knock Bulk operations API
Knock Channel data API
Knock Feeds API
Knock Guides API
Knock Integrations API
Knock Messages API
Knock Microsoft Teams API
Knock Objects API
Knock Preferences API
Knock Providers API
Knock Schedules API