iZap.ai · Schema

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.

WhatsAppRestaurant

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
View JSON Schema on GitHub

JSON Schema

izap-ai-create-transmission-preview-in-schema.json Raw ↑
{
  "$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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/izap-ai-create-transmission-preview-in"
All schemas
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.