Properties
| Name | Type | Description |
|---|---|---|
| title | string | |
| body | string | |
| sound | boolean | |
| badge | boolean | |
| badge_options | object | |
| image_id | string | The id of an ImageAsset. If provided, this will take precedence over a dynamic_image. |
| dynamic_image | string | A dynamic image asset to include in the push notification. |
| video_asset_id | string | The ULID of a video asset. If provided, videos and images are mutually exclusive. |
| on_open | string | See PushLinkAction in app. This is not a flow action, but the literal action that should be taken when the push notification is tapped. |
| ios_link | string | |
| android_link | string | |
| push_type | string | The type of push notification to send. |
| kv_pairs | object | |
| conversion_metric_id | string | |
| smart_sending_enabled | boolean | |
| additional_filters | object | |
| action_buttons | array | |
| name | string | |
| id | string | Not allowed on create. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/FlowPushNotification",
"title": "FlowPushNotification",
"type": "object",
"properties": {
"title": {
"type": "string",
"nullable": true
},
"body": {
"type": "string"
},
"sound": {
"type": "boolean",
"default": false
},
"badge": {
"type": "boolean",
"default": false
},
"badge_options": {
"oneOf": [
{
"$ref": "#/components/schemas/Increment"
},
{
"$ref": "#/components/schemas/StaticCount"
},
{
"$ref": "#/components/schemas/Property"
}
]
},
"image_id": {
"description": "The id of an ImageAsset. If provided, this will take precedence over a dynamic_image.",
"type": "string",
"example": "123",
"nullable": true
},
"dynamic_image": {
"description": "A dynamic image asset to include in the push notification.",
"type": "string",
"example": "{{ event.items.0.url }}",
"nullable": true
},
"video_asset_id": {
"description": "The ULID of a video asset. If provided, videos and images are mutually exclusive.",
"type": "string",
"example": "01ARZ3NDEKTSV4RRFFQ69G5FAV",
"nullable": true
},
"on_open": {
"description": "See PushLinkAction in app.\n\nThis is not a flow action, but the literal action that should be\n taken when the push notification is tapped.",
"type": "string",
"example": "home",
"default": "home",
"enum": [
"home",
"link"
]
},
"ios_link": {
"type": "string",
"nullable": true
},
"android_link": {
"type": "string",
"nullable": true
},
"push_type": {
"description": "The type of push notification to send.",
"type": "string",
"enum": [
"silent",
"standard"
],
"nullable": true
},
"kv_pairs": {
"type": "object",
"nullable": true
},
"conversion_metric_id": {
"type": "string",
"nullable": true
},
"smart_sending_enabled": {
"type": "boolean",
"example": true,
"default": true
},
"additional_filters": {
"type": "object",
"nullable": true,
"properties": {
"condition_groups": {
"type": "array",
"items": {
"type": "object",
"properties": {
"conditions": {
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/components/schemas/ProfilePropertyCondition"
},
{
"$ref": "#/components/schemas/ProfileHasGroupMembershipCondition"
},
{
"$ref": "#/components/schemas/ProfileNoGroupMembershipCondition"
},
{
"$ref": "#/components/schemas/ProfileRegionCondition"
},
{
"$ref": "#/components/schemas/ProfilePostalCodeDistanceCondition"
},
{
"$ref": "#/components/schemas/ProfilePredictiveAnalyticsDateCondition"
},
{
"$ref": "#/components/schemas/ProfilePredictiveAnalyticsStringCondition"
},
{
"$ref": "#/components/schemas/ProfilePredictiveAnalyticsNumericCondition"
},
{
"$ref": "#/components/schemas/ProfileMarketingConsentCondition"
},
{
"$ref": "#/components/schemas/FlowsProfileMetricCondition"
},
{
"$ref": "#/components/schemas/ProfileRandomSampleCondition"
},
{
"$ref": "#/components/schemas/ProfileHasCustomObjectCondition"
},
{
"$ref": "#/components/schemas/ProfilePermissionsCondition"
},
{
"$ref": "#/components/schemas/ProfileHasNotReceivedPushMessageCondition"
}
]
}
}
},
"required": [
"conditions"
]
}
}
},
"required": [
"condition_groups"
]
},
"action_buttons": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PushActionButton"
},
"nullable": true
},
"name": {
"type": "string",
"nullable": true
},
"id": {
"description": "Not allowed on create.",
"type": "string",
"nullable": true
}
},
"required": [
"body"
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/klaviyo-flowpushnotification"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.