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 Objects API

An object represents a resource in your system that you want to map into Knock.

Knock Objects 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 Objects. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an AsyncAPI specification.

This API exposes 27 operations across 19 paths, and defines 58 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.

27 operations 19 paths 58 schemas 4 DELETE8 GET6 POST9 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 Objects API declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (JWT) (BearerAuth). By default, every request must be authenticated.

Paths & Operations 27

Across 19 paths, the API surfaces 27 operations — 4 DELETE, 8 GET, 6 POST, 9 PUT. Each is listed below with its method, path, parameters, and response codes.

Objects 27

An object represents a resource in your system that you want to map into Knock.

PUT
/v1/objects/{collection}/{object_id}/preferences/{id}/workflowsdeprecated
Update workflows in preference set
updateObjectPreferenceWorkflows → 200
PUT
/v1/objects/{collection}/{object_id}/preferences/{id}/channel_types/{type}deprecated
Update a channel type preference
updateObjectPreferenceChannelType → 200
POST
/v1/objects/{collection}/bulk/delete
Bulk delete objects
bulkDeleteObjects 1 param body → 200
GET
/v1/objects/{collection}/{id}/schedules
List object schedules
listObjectSchedules 7 params → 200
GET
/v1/objects/{collection}/{id}/messages
List messages
listMessagesForObject 19 params → 200
PUT
/v1/objects/{collection}/{object_id}/preferences/{id}/categories/{key}deprecated
Update a category preference
updateObjectPreferenceCategory → 200
GET
/v1/objects/{collection}/{object_id}/preferences
List preference sets
listObjectPreferenceSets 2 params → 200
PUT
/v1/objects/{collection}/{object_id}/preferences/{id}/workflows/{key}deprecated
Update a workflow preference
updateObjectPreferenceWorkflow → 200
POST
/v1/objects/{collection}/bulk/subscriptions/add
Bulk add subscriptions
bulkAddSubscriptions 1 param body → 200
PUT
/v1/objects/{collection}/{object_id}/preferences/{id}/categoriesdeprecated
Update categories in preference set
updateObjectPreferenceCategories → 200
DELETE
/v1/objects/{collection}/{id}
Delete an object
deleteObject 2 params → 204
GET
/v1/objects/{collection}/{id}
Get an object
getObject 2 params → 200
PUT
/v1/objects/{collection}/{id}
Set an object
setObject 2 params body → 200
DELETE
/v1/objects/{collection}/{object_id}/channel_data/{channel_id}
Unset channel data
unsetObjectChannelData 3 params → 204
GET
/v1/objects/{collection}/{object_id}/channel_data/{channel_id}
Get channel data
getObjectChannelData 3 params → 200
PUT
/v1/objects/{collection}/{object_id}/channel_data/{channel_id}
Set channel data
setObjectChannelData 3 params body → 200
GET
/v1/objects/{collection}
List objects in a collection
listObjects 5 params → 200
PUT
/v1/objects/{collection}/{object_id}/preferences/{id}/channel_typesdeprecated
Update channel types in preference set
updateObjectPreferenceChannelTypes → 200
POST
/v1/schedules/bulk/create
Create schedules in bulk
bulkCreateSchedules body → 200
POST
/v1/objects/{collection}/bulk/subscriptions/delete
Bulk delete subscriptions
bulkDeleteSubscriptions 1 param body → 200
DELETE
/v1/objects/{collection}/{object_id}/preferences/{id}
Delete object preference set
deleteObjectPreferenceSet 3 params → 204
GET
/v1/objects/{collection}/{object_id}/preferences/{id}
Get object preference set
getObjectPreferenceSet 3 params → 200
PUT
/v1/objects/{collection}/{object_id}/preferences/{id}
Update a preference set
updateObjectPreferenceSet 3 params body → 200
DELETE
/v1/objects/{collection}/{object_id}/subscriptions
Delete subscriptions
deleteSubscriptionsForObject 2 params body → 200
GET
/v1/objects/{collection}/{object_id}/subscriptions
List subscriptions
listSubscriptionsForObject 9 params → 200
POST
/v1/objects/{collection}/{object_id}/subscriptions
Add subscriptions
addSubscriptionsForObject 2 params body → 200
POST
/v1/objects/{collection}/bulk/set
Bulk set objects
bulkSetObjects 1 param body → 200

Schemas 58

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

BulkDeleteSubscriptionsRequest
object
A request to delete subscriptions for many groups of 1 subscribed-to object, N subscriber recipients.
1 property 1 required
DiscordIncomingWebhookConnection
object
Discord incoming webhook connection.
1 property 1 required
TenantRequest
object
A tenant to be set in the system. You can supply any additional properties on the tenant object.
5 properties 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
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
InlineTenantRequest
An request to set a tenant inline.
ListSubscriptionsResponse
object
A response containing a list of subscriptions.
2 properties 2 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
InlineIdentifyObjectRequest
object
A custom [Object](/concepts/objects) entity which belongs to a collection.
6 properties 2 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.
ObjectReference
object
A reference to a recipient object.
2 properties
SetObjectRequest
object
A set of parameters to set an object with. Does not include the object id or collection.
5 properties
PreferenceSetChannelTypes
object
Channel type preferences.
6 properties
ChannelDataRequest
object
A request to set channel data for a type of channel.
1 property 1 required
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
SubscriptionsResponse
array
A response containing a list of subscriptions.
ListMessagesResponse
object
A paginated list of messages.
2 properties 2 required
ListObjectsResponse
object
A paginated list of objects in a collection.
2 properties 2 required
PreferenceSetRequest
object
A request to set a preference set for a recipient.
6 properties
PushChannelDataFull
object
Push channel data.
2 properties 2 required
AWSSNSPushChannelDataTargetARNsOnly
object
AWS SNS push channel data.
1 property 1 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
AWSSNSPushChannelDataDevicesOnly
object
AWS SNS push channel data.
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
Condition
object
A condition to be evaluated.
3 properties 3 required
BulkSetObjectsRequest
object
A request to set objects in bulk.
1 property 1 required
BulkCreateSchedulesRequest
object
A request to bulk create schedules. Accepts a list of schedules to create. Each schedule must have a single recipient. The recipients do not have to be unique.
1 property 1 required
InlineChannelDataRequest
object
A request to set channel data for a type of channel inline.
BulkDeleteObjectsRequest
object
Request body for bulk deleting objects.
1 property 1 required
BulkOperation
object
A bulk operation entity.
15 properties 9 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
DeleteSubscriptionsRequest
object
A request to delete subscriptions for a set of recipients.
1 property 1 required
RecipientRequest
Specifies a recipient in a request. This can either be a user identifier (string), an inline user request (object), or an inline object request, which is deter…
PushChannelDataTokensOnly
object
Push channel data.
1 property 1 required
DiscordChannelData
object
Discord channel data.
1 property 1 required
BulkUpsertSubscriptionsRequest
object
A request to upsert subscriptions for many groups of 1 subscribed-to object, N subscriber recipients.
1 property 1 required
PreferenceSetChannels
object
Channel preferences.
SlackTokenConnection
object
A Slack connection token.
3 properties
BulkSetObjectRequest
object
A custom [Object](/concepts/objects) entity which belongs to a collection.
5 properties 1 required
UpsertSubscriptionsRequest
object
A request to upsert subscriptions for a set of recipients.
2 properties 1 required
ScheduleRepeatRule
object
The repeat rule for the schedule.
7 properties 1 required
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
MsTeamsChannelData
object
Microsoft Teams channel data.
2 properties 1 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-objects-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 Preferences API
Knock Providers API
Knock Schedules API
Knock Slack API