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

The Preferences API from Knock — 16 operation(s) for preferences.

Knock Preferences API is one of 35 APIs that Knock publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 2 JSON Schema definitions.

Tagged areas include Preferences. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and 2 JSON Schemas.

This API exposes 20 operations across 16 paths, and defines 8 schemas. It is described by OpenAPI 3.0.3, at version 1.0.

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

20 operations 16 paths 8 schemas 2 DELETE4 GET14 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.0.3
API Version
1.0
Server
https://api.knock.app
Authentication
HTTP Bearer
Contact
License
Proprietary
Resource Areas
1

Authentication & Security 1

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

  • BearerAuth — Knock API key as a Bearer token. Use a public key (pk...) for client-side requests or a secret key (sk...) for server-side.

Paths & Operations 20

Across 16 paths, the API surfaces 20 operations — 2 DELETE, 4 GET, 14 PUT. Each is listed below with its method, path, parameters, and response codes.

Preferences 20
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
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
PUT
/v1/objects/{collection}/{object_id}/preferences/{id}/categoriesdeprecated
Update categories in preference set
updateObjectPreferenceCategories → 200
PUT
/v1/objects/{collection}/{object_id}/preferences/{id}/channel_typesdeprecated
Update channel types in preference set
updateObjectPreferenceChannelTypes → 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
PUT
/v1/users/{user_id}/preferences/{id}/categories/{key}deprecated
Update category in user preference set
updateUserPreferenceCategory → 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}/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
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 8

The contract defines 8 schemas that model the data the API accepts and returns. The most detailed are PreferenceSetChannelTypes (6 properties), PreferenceSetRequest (6 properties), PreferenceSet (6 properties), Condition (3 properties). Each schema is shown below with its type and property counts.

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
PreferenceSetChannels
object
Channel preferences.
Condition
object
A condition to be evaluated.
3 properties 3 required
PreferenceSetChannelTypes
object
Channel type preferences.
6 properties
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
PreferenceSetWorkflowCategorySetting
object
Workflow or category preferences within a preference set
PreferenceSetRequest
object
A request to set a preference set for a recipient.
6 properties
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

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

knock-app-preferences-api-openapi.yml Raw ↑

Other APIs Knock publishes across the network.

Knock Outbound Webhooks
Knock Accounts API
Knock API keys API
Knock Audiences API
Knock Branches API
Knock Broadcasts API
Knock Bulk operations API
Knock Channel data API
Knock Channel Groups API
Knock Channels API
Knock Commits API
Knock Email layouts API