CreateTransmissionPreviewIn
Validate CSV recipients against a template and create a DRAFT transmission. No messages are sent. ``recipients`` are parsed CSV rows (header -> value); each row must contain ``phone_column`` and the columns that fill the template's variables. Confirm the returned draft id with ``confirm_transmission`` to send.
Properties
| Name | Type | Description |
|---|---|---|
| business_id | object | |
| header_media_document_id | object | UUID or filename of a document or video in the business's media library to use as the template's DOCUMENT or VIDEO header. Mutually exclusive with the other header media sources. |
| header_media_filename | object | Name recipients see for a DOCUMENT header. Ignored for image and video headers. |
| header_media_image_id | object | UUID or filename of an image in the business's media library to use as the template's IMAGE header. Mutually exclusive with the other header media sources. |
| header_media_url | object | Public https:// URL of the file for the template's media header (an image for an IMAGE header, a PDF for a DOCUMENT header, an MP4 for a VIDEO header). Required when the template was approved with a m |
| max_messages_per_minute | integer | Sending pace cap. Must be between 1 and 200 messages per minute. |
| message_text | object | Text to send. Required for 'whatsapp_freeform', which only reaches contacts inside the WhatsApp customer-service window; others are skipped. |
| name | string | Human label for the transmission. |
| phone_column | string | Name of the CSV column holding the recipient phone number (E.164 or local). |
| recipients | array | Parsed CSV rows; each row maps a string column header to its string cell value. Must include the phone column and the columns that supply the template's variables. |
| scheduled_at | object | When to send. Omit or null to send immediately on confirm. If the value has no timezone offset it is interpreted in 'timezone'. |
| sender_phone_number | object | Which of the business's connected WhatsApp numbers sends the transmission, e.g. '+5562999998888' (any formatting). Omit to send from the business's oldest connected number. |
| template_language | string | Template language/locale code as registered with Meta, e.g. 'pt_BR'. |
| template_name | string | Name of the pre-approved WhatsApp Cloud API template to send. Required for 'whatsapp_template'; not accepted for 'whatsapp_freeform', which stores a fixed default. |
| timezone | object | IANA timezone used to interpret a naive 'scheduled_at'. Defaults to the business's configured timezone (America/Sao_Paulo when none is set). |
| transmission_type | object | Transmission kind: 'whatsapp_template' or 'whatsapp_freeform'. |
| variable_columns | object | For positional templates ({{1}}, {{2}}, ...): the ordered CSV header names mapping to {{1}}, {{2}}, ... If omitted, the first non-phone columns are used in order. Ignored for templates with named plac |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/izap-ai/json-schema/izap-ai-create-transmission-preview-in-schema.json",
"title": "CreateTransmissionPreviewIn",
"description": "Validate CSV recipients against a template and create a DRAFT transmission.\n\nNo messages are sent. ``recipients`` are parsed CSV rows (header -> value); each\nrow must contain ``phone_column`` and the columns that fill the template's\nvariables. Confirm the returned draft id with ``confirm_transmission`` to send.",
"x-generated": "2026-11-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/izap-ai-openapi.json#/components/schemas/CreateTransmissionPreviewIn",
"properties": {
"business_id": {
"anyOf": [
{
"format": "uuid",
"type": "string"
},
{
"type": "null"
}
],
"title": "Business Id"
},
"header_media_document_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "UUID or filename of a document or video in the business's media library to use as the template's DOCUMENT or VIDEO header. Mutually exclusive with the other header media sources.",
"title": "Header Media Document Id"
},
"header_media_filename": {
"anyOf": [
{
"maxLength": 240,
"type": "string"
},
{
"type": "null"
}
],
"description": "Name recipients see for a DOCUMENT header. Ignored for image and video headers.",
"title": "Header Media Filename"
},
"header_media_image_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "UUID or filename of an image in the business's media library to use as the template's IMAGE header. Mutually exclusive with the other header media sources.",
"title": "Header Media Image Id"
},
"header_media_url": {
"anyOf": [
{
"maxLength": 2048,
"type": "string"
},
{
"type": "null"
}
],
"description": "Public https:// URL of the file for the template's media header (an image for an IMAGE header, a PDF for a DOCUMENT header, an MP4 for a VIDEO header). Required when the template was approved with a media header; the same file goes to every recipient. Mutually exclusive with the library header fields.",
"title": "Header Media Url"
},
"max_messages_per_minute": {
"default": 60,
"description": "Sending pace cap. Must be between 1 and 200 messages per minute.",
"maximum": 200.0,
"minimum": 1.0,
"title": "Max Messages Per Minute",
"type": "integer"
},
"message_text": {
"anyOf": [
{
"maxLength": 4096,
"type": "string"
},
{
"type": "null"
}
],
"description": "Text to send. Required for 'whatsapp_freeform', which only reaches contacts inside the WhatsApp customer-service window; others are skipped.",
"title": "Message Text"
},
"name": {
"description": "Human label for the transmission.",
"maxLength": 255,
"minLength": 1,
"title": "Name",
"type": "string"
},
"phone_column": {
"default": "phone",
"description": "Name of the CSV column holding the recipient phone number (E.164 or local).",
"maxLength": 255,
"minLength": 1,
"title": "Phone Column",
"type": "string"
},
"recipients": {
"description": "Parsed CSV rows; each row maps a string column header to its string cell value. Must include the phone column and the columns that supply the template's variables.",
"items": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"maxItems": 5000,
"minItems": 1,
"title": "Recipients",
"type": "array"
},
"scheduled_at": {
"anyOf": [
{
"format": "date-time",
"type": "string"
},
{
"type": "null"
}
],
"description": "When to send. Omit or null to send immediately on confirm. If the value has no timezone offset it is interpreted in 'timezone'.",
"title": "Scheduled At"
},
"sender_phone_number": {
"anyOf": [
{
"maxLength": 32,
"type": "string"
},
{
"type": "null"
}
],
"description": "Which of the business's connected WhatsApp numbers sends the transmission, e.g. '+5562999998888' (any formatting). Omit to send from the business's oldest connected number.",
"title": "Sender Phone Number"
},
"template_language": {
"default": "pt_BR",
"description": "Template language/locale code as registered with Meta, e.g. 'pt_BR'.",
"maxLength": 15,
"minLength": 2,
"title": "Template Language",
"type": "string"
},
"template_name": {
"default": "freeform",
"description": "Name of the pre-approved WhatsApp Cloud API template to send. Required for 'whatsapp_template'; not accepted for 'whatsapp_freeform', which stores a fixed default.",
"maxLength": 512,
"minLength": 1,
"title": "Template Name",
"type": "string"
},
"timezone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "IANA timezone used to interpret a naive 'scheduled_at'. Defaults to the business's configured timezone (America/Sao_Paulo when none is set).",
"title": "Timezone"
},
"transmission_type": {
"$ref": "#/$defs/TransmissionType",
"default": "whatsapp_template",
"description": "Transmission kind: 'whatsapp_template' or 'whatsapp_freeform'."
},
"variable_columns": {
"anyOf": [
{
"items": {
"type": "string"
},
"maxItems": 50,
"type": "array"
},
{
"type": "null"
}
],
"description": "For positional templates ({{1}}, {{2}}, ...): the ordered CSV header names mapping to {{1}}, {{2}}, ... If omitted, the first non-phone columns are used in order. Ignored for templates with named placeholders.",
"title": "Variable Columns"
}
},
"required": [
"name",
"recipients"
],
"type": "object",
"$defs": {
"TransmissionType": {
"description": "The kind of bulk message a transmission sends.\n\n``WHATSAPP_TEMPLATE`` sends an approved template to a phone list. ``WHATSAPP_FREEFORM``\nsends a fixed text and only reaches contacts inside Meta's 24h customer-service window.\nModelled as an enum so further channels can be added without a schema change to the\nstored value.",
"enum": [
"whatsapp_template",
"whatsapp_freeform"
],
"title": "TransmissionType",
"type": "string"
}
}
}
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
curl "https://apis.io/api/v1/json-schemas/izap-ai-create-transmission-preview-in"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.