> For a complete page index, fetch https://docs.synthflow.ai/llms.txt. For full documentation content, fetch https://docs.synthflow.ai/llms-full.txt.

# Create an action

POST https://api.synthflow.ai/v2/actions
Content-Type: application/json

Creates an action. There is no `input_variables` parameter on this endpoint. For custom actions, define variables with `variables_during_the_call` and reference each one as `<name>` in `url`, `query_parameters`, `headers`, or the body, otherwise the variable is not shown in the dashboard.

Reference: https://docs.synthflow.ai/api-reference/platform-api/actions/create-action

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer <token>`, where token is your auth token.

## Servers

- `https://api.synthflow.ai/v2` (Global, default)
- `https://api.us.synthflow.ai/v2` (United States)
- `https://api.eu.synthflow.ai/v2` (European Union)

## Request

### Body (application/json)

This endpoint expects an object.

- `REAL_TIME_BOOKING` (ActionsPostRequestBodyContentApplicationJsonSchemaRealTimeBooking, optional)
- `INFORMATION_EXTRACTOR` (ActionsPostRequestBodyContentApplicationJsonSchemaInformationExtractor, optional)
- `LIVE_TRANSFER` (ActionsPostRequestBodyContentApplicationJsonSchemaLiveTransfer, optional)
- `SEND_SMS` (ActionsPostRequestBodyContentApplicationJsonSchemaSendSms, optional)
- `SEND_EMAIL` (ActionsPostRequestBodyContentApplicationJsonSchemaSendEmail, optional) — Post-call email action. Sends a summary of the call to fixed recipients.
- `INCALL_SMS` (ActionsPostRequestBodyContentApplicationJsonSchemaIncallSms, optional)
- `INCALL_WHATSAPP` (ActionsPostRequestBodyContentApplicationJsonSchemaIncallWhatsapp, optional)
- `CUSTOM_ACTION` (ActionsPostRequestBodyContentApplicationJsonSchemaCustomAction, optional)
- `CUSTOM_EVAL` (ActionsPostRequestBodyContentApplicationJsonSchemaCustomEval, optional)

## Response

### 200

200

- `status` (string, optional)
- `response` (ActionsPostResponsesContentApplicationJsonSchemaResponse, optional)

## Errors

### 400 Bad Request Error

400

## Types

### ActionsPostRequestBodyContentApplicationJsonSchemaRealTimeBooking

- `first_appt_date` (date, required) — The initial date that will be the used to start searching for booking appointments, the format is YYYY-MM-DD
- `max_time_slots` (integer, required, default: 3) — The amount of slots that the agent will recommend per day when trying to book an appointment. The limit is 3
- `min_hours_diff` (integer, required, default: 3) — The difference in hours between appointments that will be suggested by the agent.
- `no_of_days` (integer, required, default: 3) — Number of days that the agent will suggest appointments
- `timezone` (enum, required) — [List of possible time zones](/time-zones). The default is Europe/Berlin
  - Allowed values: `Africa/Accra`, `Africa/Addis_Ababa`, `Africa/Algiers`, `Africa/Asmara`, `Africa/Bamako`, `Africa/Bangui`, `Africa/Banjul`, `Africa/Bissau`, `Africa/Blantyre`, `Africa/Brazzaville`, `Africa/Bujumbura`, `Africa/Cairo`, `Africa/Casablanca`, `Africa/Ceuta`, `Africa/Conakry`, `Africa/Dakar`, `Africa/Dar_es_Salaam`, `Africa/Djibouti`, `Africa/Douala`, `Africa/El_Aaiun`, `Africa/Freetown`, `Africa/Gaborone`, `Africa/Harare`, `Africa/Johannesburg`, `Africa/Juba`, `Africa/Kampala`, `Africa/Khartoum`, `Africa/Kigali`, `Africa/Kinshasa`, `Africa/Lagos`, `Africa/Libreville`, `Africa/Lome`, `Africa/Luanda`, `Africa/Lubumbashi`, `Africa/Lusaka`, `Africa/Malabo`, `Africa/Maputo`, `Africa/Maseru`, `Africa/Mbabane`, `Africa/Mogadishu`, `Africa/Monrovia`, `Africa/Nairobi`, `Africa/Ndjamena`, `Africa/Niamey`, `Africa/Nouakchott`, `Africa/Ouagadougou`, `Africa/Porto-Novo`, `Africa/Sao_Tome`, `Africa/Tripoli`, `Africa/Tunis`, `Africa/Windhoek`, `America/Adak`, `America/Anchorage`, `America/Anguilla`, `America/Antigua`, `America/Araguaina`, `America/Argentina/Buenos_Aires`, `America/Argentina/Catamarca`, `America/Argentina/Cordoba`, `America/Argentina/Jujuy`, `America/Argentina/La_Rioja`, `America/Argentina/Mendoza`, `America/Argentina/Rio_Gallegos`, `America/Argentina/Salta`, `America/Argentina/San_Juan`, `America/Argentina/San_Luis`, `America/Argentina/Tucuman`, `America/Argentina/Ushuaia`, `America/Aruba`, `America/Asuncion`, `America/Atikokan`, `America/Bahia`, `America/Bahia_Banderas`, `America/Barbados`, `America/Belem`, `America/Belize`, `America/Blanc-Sablon`, `America/Boa_Vista`, `America/Bogota`, `America/Boise`, `America/Cambridge_Bay`, `America/Campo_Grande`, `America/Cancun`, `America/Caracas`, `America/Cayenne`, `America/Cayman`, `America/Chicago`, `America/Chihuahua`, `America/Ciudad_Juarez`, `America/Costa_Rica`, `America/Creston`, `America/Cuiaba`, `America/Curacao`, `America/Danmarkshavn`, `America/Dawson`, `America/Dawson_Creek`, `America/Denver`, `America/Detroit`, `America/Dominica`, `America/Edmonton`, `America/Eirunepe`, `America/El_Salvador`, `America/Fort_Nelson`, `America/Fortaleza`, `America/Glace_Bay`, `America/Goose_Bay`, `America/Grand_Turk`, `America/Grenada`, `America/Guadeloupe`, `America/Guatemala`, `America/Guayaquil`, `America/Guyana`, `America/Halifax`, `America/Havana`, `America/Hermosillo`, `America/Indiana/Indianapolis`, `America/Indiana/Knox`, `America/Indiana/Marengo`, `America/Indiana/Petersburg`, `America/Indiana/Tell_City`, `America/Indiana/Vevay`, `America/Indiana/Vincennes`, `America/Indiana/Winamac`, `America/Inuvik`, `America/Iqaluit`, `America/Jamaica`, `America/Juneau`, `America/Kentucky/Louisville`, `America/Kentucky/Monticello`, `America/Kralendijk`, `America/La_Paz`, `America/Lima`, `America/Los_Angeles`, `America/Lower_Princes`, `America/Maceio`, `America/Managua`, `America/Manaus`, `America/Marigot`, `America/Martinique`, `America/Matamoros`, `America/Mazatlan`, `America/Menominee`, `America/Merida`, `America/Metlakatla`, `America/Mexico_City`, `America/Miquelon`, `America/Moncton`, `America/Monterrey`, `America/Montevideo`, `America/Montserrat`, `America/Nassau`, `America/New_York`, `America/Nome`, `America/Noronha`, `America/North_Dakota/Beulah`, `America/North_Dakota/Center`, `America/North_Dakota/New_Salem`, `America/Nuuk`, `America/Ojinaga`, `America/Panama`, `America/Paramaribo`, `America/Phoenix`, `America/Port_of_Spain`, `America/Port-au-Prince`, `America/Porto_Velho`, `America/Puerto_Rico`, `America/Punta_Arenas`, `America/Rankin_Inlet`, `America/Recife`, `America/Regina`, `America/Resolute`, `America/Rio_Branco`, `America/Santarem`, `America/Santiago`, `America/Santo_Domingo`, `America/Sao_Paulo`, `America/Scoresbysund`, `America/Sitka`, `America/St_Barthelemy`, `America/St_Johns`, `America/St_Kitts`, `America/St_Lucia`, `America/St_Thomas`, `America/St_Vincent`, `America/Swift_Current`, `America/Tegucigalpa`, `America/Thule`, `America/Tijuana`, `America/Toronto`, `America/Tortola`, `America/Vancouver`, `America/Whitehorse`, `America/Winnipeg`, `America/Yakutat`, `Antarctica/Casey`, `Antarctica/Davis`, `Antarctica/DumontDUrville`, `Antarctica/Macquarie`, `Antarctica/Mawson`, `Antarctica/McMurdo`, `Antarctica/Palmer`, `Antarctica/Rothera`, `Antarctica/Syowa`, `Antarctica/Troll`, `Antarctica/Vostok`, `Arctic/Longyearbyen`, `Asia/Aden`, `Asia/Almaty`, `Asia/Amman`, `Asia/Anadyr`, `Asia/Aqtau`, `Asia/Aqtobe`, `Asia/Ashgabat`, `Asia/Atyrau`, `Asia/Baghdad`, `Asia/Bahrain`, `Asia/Baku`, `Asia/Bangkok`, `Asia/Barnaul`, `Asia/Beirut`, `Asia/Bishkek`, `Asia/Brunei`, `Asia/Chita`, `Asia/Choibalsan`, `Asia/Colombo`, `Asia/Damascus`, `Asia/Dhaka`, `Asia/Dili`, `Asia/Dubai`, `Asia/Dushanbe`, `Asia/Famagusta`, `Asia/Gaza`, `Asia/Hebron`, `Asia/Ho_Chi_Minh`, `Asia/Hong_Kong`, `Asia/Hovd`, `Asia/Irkutsk`, `Asia/Jakarta`, `Asia/Jayapura`, `Asia/Jerusalem`, `Asia/Kabul`, `Asia/Kamchatka`, `Asia/Karachi`, `Asia/Kathmandu`, `Asia/Khandyga`, `Asia/Kolkata`, `Asia/Krasnoyarsk`, `Asia/Kuala_Lumpur`, `Asia/Kuching`, `Asia/Kuwait`, `Asia/Macau`, `Asia/Magadan`, `Asia/Makassar`, `Asia/Manila`, `Asia/Muscat`, `Asia/Nicosia`, `Asia/Novokuznetsk`, `Asia/Novosibirsk`, `Asia/Omsk`, `Asia/Oral`, `Asia/Phnom_Penh`, `Asia/Pontianak`, `Asia/Pyongyang`, `Asia/Qatar`, `Asia/Qostanay`, `Asia/Qyzylorda`, `Asia/Riyadh`, `Asia/Sakhalin`, `Asia/Samarkand`, `Asia/Seoul`, `Asia/Shanghai`, `Asia/Singapore`, `Asia/Srednekolymsk`, `Asia/Taipei`, `Asia/Tashkent`, `Asia/Tbilisi`, `Asia/Tehran`, `Asia/Thimphu`, `Asia/Tokyo`, `Asia/Tomsk`, `Asia/Ulaanbaatar`, `Asia/Urumqi`, `Asia/Ust-Nera`, `Asia/Vientiane`, `Asia/Vladivostok`, `Asia/Yakutsk`, `Asia/Yangon`, `Asia/Yekaterinburg`, `Asia/Yerevan`, `Atlantic/Azores`, `Atlantic/Bermuda`, `Atlantic/Canary`, `Atlantic/Cape_Verde`, `Atlantic/Faroe`, `Atlantic/Madeira`, `Atlantic/Reykjavik`, `Atlantic/South_Georgia`, `Atlantic/St_Helena`, `Atlantic/Stanley`, `Australia/Adelaide`, `Australia/Brisbane`, `Australia/Broken_Hill`, `Australia/Darwin`, `Australia/Eucla`, `Australia/Hobart`, `Australia/Lindeman`, `Australia/Lord_Howe`, `Australia/Melbourne`, `Australia/Perth`, `Australia/Sydney`, `Europe/Amsterdam`, `Europe/Andorra`, `Europe/Astrakhan`, `Europe/Athens`, `Europe/Belgrade`, `Europe/Berlin`, `Europe/Bratislava`, `Europe/Brussels`, `Europe/Bucharest`, `Europe/Budapest`, `Europe/Busingen`, `Europe/Chisinau`, `Europe/Copenhagen`, `Europe/Dublin`, `Europe/Gibraltar`, `Europe/Guernsey`, `Europe/Helsinki`, `Europe/Isle_of_Man`, `Europe/Istanbul`, `Europe/Jersey`, `Europe/Kaliningrad`, `Europe/Kirov`, `Europe/Kyiv`, `Europe/Lisbon`, `Europe/Ljubljana`, `Europe/London`, `Europe/Luxembourg`, `Europe/Madrid`, `Europe/Malta`, `Europe/Mariehamn`, `Europe/Minsk`, `Europe/Monaco`, `Europe/Moscow`, `Europe/Oslo`, `Europe/Paris`, `Europe/Podgorica`, `Europe/Prague`, `Europe/Riga`, `Europe/Rome`, `Europe/Samara`, `Europe/San_Marino`, `Europe/Sarajevo`, `Europe/Saratov`, `Europe/Simferopol`, `Europe/Skopje`, `Europe/Sofia`, `Europe/Stockholm`, `Europe/Tallinn`, `Europe/Tirane`, `Europe/Ulyanovsk`, `Europe/Vaduz`, `Europe/Vatican`, `Europe/Vienna`, `Europe/Vilnius`, `Europe/Volgograd`, `Europe/Warsaw`, `Europe/Zagreb`, `Europe/Zurich`, `Indian/Antananarivo`, `Indian/Chagos`, `Indian/Christmas`, `Indian/Cocos`, `Indian/Comoro`, `Indian/Kerguelen`, `Indian/Mahe`, `Indian/Maldives`, `Indian/Mauritius`, `Indian/Mayotte`, `Indian/Reunion`, `Pacific/Apia`, `Pacific/Auckland`, `Pacific/Bougainville`, `Pacific/Chatham`, `Pacific/Chuuk`, `Pacific/Easter`, `Pacific/Efate`, `Pacific/Fakaofo`, `Pacific/Fiji`, `Pacific/Funafuti`, `Pacific/Galapagos`, `Pacific/Gambier`, `Pacific/Guadalcanal`, `Pacific/Guam`, `Pacific/Honolulu`, `Pacific/Kanton`, `Pacific/Kiritimati`, `Pacific/Kosrae`, `Pacific/Kwajalein`, `Pacific/Majuro`, `Pacific/Marquesas`, `Pacific/Midway`, `Pacific/Nauru`, `Pacific/Niue`, `Pacific/Norfolk`, `Pacific/Noumea`, `Pacific/Pago_Pago`, `Pacific/Palau`, `Pacific/Pitcairn`, `Pacific/Pohnpei`, `Pacific/Port_Moresby`, `Pacific/Rarotonga`, `Pacific/Saipan`, `Pacific/Tahiti`, `Pacific/Tarawa`, `Pacific/Tongatapu`, `Pacific/Wake`, `Pacific/Wallis`, `US/Alaska`, `US/Central`, `US/Eastern`, `US/Hawaii`, `US/Mountain`, `US/Pacific`
- `CALCOM` (ActionsPostRequestBodyContentApplicationJsonSchemaRealTimeBookingCalcom, optional) — Important: You need to be connected to the Cal.com integration
- `GHL` (ActionsPostRequestBodyContentApplicationJsonSchemaRealTimeBookingGhl, optional) — Important: You need to be connected to the GHL integration

### ActionsPostRequestBodyContentApplicationJsonSchemaInformationExtractor

- `YES_NO` (ActionsPostRequestBodyContentApplicationJsonSchemaInformationExtractorYesNo, optional)
- `SINGLE_CHOICE` (ActionsPostRequestBodyContentApplicationJsonSchemaInformationExtractorSingleChoice, optional)
- `OPEN_QUESTION` (ActionsPostRequestBodyContentApplicationJsonSchemaInformationExtractorOpenQuestion, optional)

### ActionsPostRequestBodyContentApplicationJsonSchemaLiveTransfer

- Direct Phone Transfer: LiveTransferCreateDirectPhoneConfig
- Phone Book Transfer: LiveTransferCreatePhoneBookConfig

### ActionsPostRequestBodyContentApplicationJsonSchemaSendSms

- `content` (string, required) — The content/text of the SMS message
- `instructions` (string, required) — The instructions that will trigger the SMS message to be sent
- `name` (string, optional) — Display name for the action. Must contain a letter, digit, or underscore. Omit it to use a generated name.

### ActionsPostRequestBodyContentApplicationJsonSchemaSendEmail

Post-call email action. Sends a summary of the call to fixed recipients.

- `recipients` (list of string, required) — Email addresses that receive the call summary. 1 to 50.
- `name` (string, optional) — Display name for the action. Stored in lowercase; characters other than letters, digits and underscores are removed. Omit it to use `email_summary`.

### ActionsPostRequestBodyContentApplicationJsonSchemaIncallSms

- `message_body` (string, required) — The SMS body sent to the caller. Supports placeholder variables like `<user_name>`.
- `name` (string, optional) — Display name for the action. Must contain a letter, digit, or underscore. Omit it to use a generated name.
- `wait_for_reply` (boolean, optional, default: false) — When true, the agent pauses until the caller replies, the timeout elapses, or the call ends. When false, the call continues and any reply is injected into the transcript when it arrives.
- `timeout_seconds` (integer, optional) — Maximum time to wait for a reply when `wait_for_reply` is true.
- `fallback_message` (string, optional) — Message the agent speaks if the timeout fires with no reply.
- `message_before_action` (string, optional) — Message the agent speaks before the SMS is sent.

### ActionsPostRequestBodyContentApplicationJsonSchemaIncallWhatsapp

- `content_sid` (string, required) — Twilio Content template SID (for example `HX...`) used for the outbound WhatsApp message.
- `name` (string, optional) — Display name for the action. Must contain a letter, digit, or underscore. Omit it to use a generated name.
- `content_variables` (map from string to string, optional) — Values that fill the template placeholders. Keys match the numeric placeholders in the template body (for example `{"1": "<user_name>"}`).
- `wait_for_reply` (boolean, optional, default: false) — When true, the agent pauses until the caller replies, the timeout elapses, or the call ends. When false, the call continues and any reply is injected into the transcript when it arrives.
- `timeout_seconds` (integer, optional) — Maximum time to wait for a reply when `wait_for_reply` is true.
- `fallback_message` (string, optional) — Message the agent speaks if the timeout fires with no reply.

### ActionsPostRequestBodyContentApplicationJsonSchemaCustomAction

- `http_mode` (enum, required, default: GET) — Select the method that will be used
  - Allowed values: `GET`, `POST`, `PATCH`, `PUT`
- `url` (string, required) — URL to be used by the action
- `run_action_before_call_start` (boolean, required) — Actions that will run before the call, like phone number
- `name` (string, required) — Name of the action
- `description` (string, optional) — Description of the action
- `speech_while_using_the_tool` (string, optional) — A message spoken verbatim to the caller while the action is being executed. Use this to fill silence during processing (e.g. "Let me look that up for you").
- `action_sound` (enum, optional) — Optional background audio played while this custom action executes. Defaults to no background audio. Omit the field, use `null`, or use an empty string to disable playback.
  - Allowed values: ``, `typing`, `ambient-background`, `modern-jazz`, `inspirational-symphony-classical-music`
- `integration` (enum, optional) — The possible integrations that can be selected to retrieve information
  - Allowed values: `ghl`, `hubspot`, `salesforce`, `salesforce-sandbox`
- `failure_timeout` (integer, optional) — How long to wait for the custom action to complete before timing out (in seconds)
- `custom_auth` (ActionsPostRequestBodyContentApplicationJsonSchemaCustomActionCustomAuth, optional)
- `variables_before_the_call` (list of ActionsPostRequestBodyContentApplicationJsonSchemaCustomActionVariablesBeforeTheCallItems, optional) — Fixed `key` and `value` pairs for data you already have before the conversation starts. These are not input variables and are not shown under `Input Variables`.
- `variables_during_the_call` (list of ActionsPostRequestBodyContentApplicationJsonSchemaCustomActionVariablesDuringTheCallItems, optional) — Variables the action defines, each with the value the agent collects from the caller. A variable is used only when its `<name>` placeholder also appears in `url`, `query_parameters`, `headers`, or the body. System variable names, such as `<call_id>`, are filled in automatically and need no definition here.
- `headers` (list of ActionsPostRequestBodyContentApplicationJsonSchemaCustomActionHeadersItems, optional)
- `query_parameters` (list of ActionsPostRequestBodyContentApplicationJsonSchemaCustomActionQueryParametersItems, optional)
- `agent_speak_naturally` (boolean, optional) — If disabled, the agent will strictly stick to your pre-written messages. If enabled, it may say something that accounts for the previous context of the conversation.
- `message_delay` (string, optional) — What the agent should say if the action reaches the delay threshold.
- `message_delay_time` (integer, optional) — Delay threshold, in seconds.
- `message_error` (string, optional) — What the agent should say if the action failed.
- `json_body_stringified` (string, optional) — A json stringified of the payload/body that will be used for the action
- `prompt` (string, optional) — The prompt that will be used in case it is set
- `message_before_action_starts` (string, optional) — A message spoken verbatim to the caller before the action is triggered. Rarely needed. Use only when compliance or regulatory requirements mandate a specific disclosure before an action runs (e.g. "This call may be recorded").
- `variables` (list of string, optional) — Paths of the response fields that become action result variables, the same ones selected under **Output Variables** in the action editor, such as `results.data.order_id` for the field `order_id` of the response body. Each path must be `results` or start with `results.`; a malformed path returns `400`.
- `api_response` (ActionsPostRequestBodyContentApplicationJsonSchemaCustomActionApiResponse, optional) — Example of the body your API returns, as a JSON object or array. Any other value, such as a string holding JSON, returns `400`. The dashboard shows the result fields from it, and every path in `variables` sent in the same request must exist in it.

### ActionsPostRequestBodyContentApplicationJsonSchemaCustomEval

- `question` (ActionsPostRequestBodyContentApplicationJsonSchemaCustomEvalQuestion, optional)

### ActionsPostResponsesContentApplicationJsonSchemaResponse

- `action_id` (string, optional)
- `action_type` (string, optional)
- `prompt_variables` (list of any, optional)

### ActionsPostRequestBodyContentApplicationJsonSchemaRealTimeBookingCalcom

Important: You need to be connected to the Cal.com integration

- `event_id` (string, required) — The event id can be obtained from the cal.com calendar
- `user_email` (string, required) — Email that will be used to create the meeting
- `integration` (enum, optional) — The selected option will be the meeting type that will be created when the booking is done
  - Allowed values: `GMeet`, `Zoom`
- `sms_boolean` (boolean, optional, default: false) — If the value is true the SMS message from the sms_message field will be send
- `sms_message` (string, optional) — Text to be sent in the sms

### ActionsPostRequestBodyContentApplicationJsonSchemaRealTimeBookingGhl

Important: You need to be connected to the GHL integration

- `calendar_id` (string, required) — Calendar ID from the GHL calendar. Can be obtained from GHL in calendars > Calendar Settings
- `autoconfirm` (enum, required) — If confirmed is selected the meeting will be automatically accepted and you don't have to do anything, otherwise you have to go to GHL calendar and confirm the meeting
  - Allowed values: `confirmed`, `new`
- `booking_title` (string, required) — The title that will be displayed in the Synthflow app for the created action

### ActionsPostRequestBodyContentApplicationJsonSchemaInformationExtractorYesNo

- `identifier` (string, required) — The title that will identify the action
- `description` (string, optional) — The description of what the action is expected to do

### ActionsPostRequestBodyContentApplicationJsonSchemaInformationExtractorSingleChoice

- `identifier` (string, required) — The title that will identify the action
- `description` (string, optional) — The description of what the action is expected to do
- `choices` (list of string, optional) — The possible choices that will answer the expected description of the action

### ActionsPostRequestBodyContentApplicationJsonSchemaInformationExtractorOpenQuestion

- `identifier` (string, required) — The title that will identify the action
- `description` (string, optional) — The description of what the action is expected to do
- `examples` (list of string, optional) — Examples of possible answers that can match the description of the action

### LiveTransferCreateDirectPhoneConfig

- `transfer_mode` (enum, required) — Transfer mode.
  - Allowed values: `cold_transfer`, `warm_transfer`, `warm_transfer_with_context`
- `phone` (string, required) — Phone number or SIP target to transfer the call to. A value that starts with `sip:` is a SIP target.
- `instructions` (string, required) — What words can trigger the transfer call, for example: like I want to talk with a manager
- `initiating_msg` (string, required) — Message that the agent will say before starting the transfer call
- `name` (string, optional) — Display name for the action. Must contain a letter, digit, or underscore. Omit it to use a generated name.
- `message_to_transfer_target` (string, optional) — The message the human agent will hear after the call is transferred to them.
- `timeout` (integer, optional) — How long to wait for the transfer call to happen before stop trying to do the transfer
- `digits` (string, optional) — Extension digits for the transfer call
- `goodbye_msg` (string, optional) — Message that the agent will say before leaving the call and connecting you with the transfer call number to start the conversation
- `failed_msg` (string, optional) — The message that the agent will say in case the person that should answer the phone is not able to answer before the timeout
- `stop_recording_after_transfer` (boolean, optional) — Whether the call should stop being recorded once it's transferred.
- `human_detection` (boolean, optional) — If true, the agent will detect whether the transfer target is a human, and once detected, will complete the transfer to the target.
- `human_detection_timeout_seconds` (integer, optional) — Time in seconds to wait for human detection before giving up. Used in conjunction with human_detection. Minimum 30 seconds, maximum 1800 seconds (30 minutes).
- `summarization_prompt` (string, optional) — Custom prompt used to generate the warm transfer context summary for the warm transfer leg.
- `preserve_caller_id` (boolean, optional) — If true, the transfer target will see the caller's phone number instead of the agent's phone number. Only works for numbers purchased through a Synthflow Twilio account; for other numbers the call will fail.
- `screened` (boolean, optional) — If true, the transfer target will first speak with the AI agent, who can answer questions about the caller and the transcript. The transfer target can then choose to accept or decline the transfer.
- `human_availability` (HumanAvailabilityPublic, optional) — Human availability schedule used by live transfer actions.
- `pre_message_pause` (integer, optional) — Silence in seconds before each stage message. Used in warm transfer modes. Defaults to 0 when the action is created through the API.
- `post_message_pause` (integer, optional) — Silence in seconds after each stage message. Used in warm transfer modes. Defaults to 0 when the action is created through the API.
- `dtmf_duration_ms` (integer, optional) — How long each DTMF tone of `digits` is held, in milliseconds.
- `background_music` (LiveTransferBackgroundMusic, optional) — Hold music the caller hears while a warm transfer is being set up.
- `preferred_caller_id` (string, optional, nullable) — Caller ID shown to the transfer target on a warm transfer, such as a phone number or a SIP header variable like `{X-Original-Caller}`. Send `null` or an empty string to clear it. Takes precedence over `preserve_caller_id`. Works only for imported numbers whose provider accepts a custom caller ID.
- `sip_headers` (list of LiveTransferSipHeader, optional) — Custom SIP headers. Need a `phone` that starts with `sip:`. On update the list you send replaces the whole stored list. Send an empty list to remove all headers.
- `sip_send_as_uui` (boolean, optional) — Send the header values as one User-to-User header. Can be true only for a SIP target in `cold_transfer` mode, with `sip_uui_delimiter` and `sip_uui_encoding` set.
- `sip_uui_delimiter` (string, optional) — Single visible ASCII character, not a space, placed between the header values.
- `sip_uui_encoding` (enum, optional) — How the combined header values are encoded.
  - Allowed values: `ascii`, `hex`

### LiveTransferCreatePhoneBookConfig

- `transfer_mode` (enum, required) — Transfer mode.
  - Allowed values: `cold_transfer`, `warm_transfer`, `warm_transfer_with_context`
- `phone_book_id` (string, required) — Phone book ID.
- `instructions` (string, required) — What words can trigger the transfer call, for example: like I want to talk with a manager
- `initiating_msg` (string, required) — Message that the agent will say before starting the transfer call
- `name` (string, optional) — Display name for the action. Must contain a letter, digit, or underscore. Omit it to use a generated name.
- `message_to_transfer_target` (string, optional) — The message the human agent will hear after the call is transferred to them.
- `timeout` (integer, optional) — How long to wait for the transfer call to happen before stop trying to do the transfer
- `digits` (string, optional) — Extension digits for the transfer call
- `goodbye_msg` (string, optional) — Message that the agent will say before leaving the call and connecting you with the transfer call number to start the conversation
- `failed_msg` (string, optional) — The message that the agent will say in case the person that should answer the phone is not able to answer before the timeout
- `stop_recording_after_transfer` (boolean, optional) — Whether the call should stop being recorded once it's transferred.
- `human_detection` (boolean, optional) — If true, the agent will detect whether the transfer target is a human, and once detected, will complete the transfer to the target.
- `human_detection_timeout_seconds` (integer, optional) — Time in seconds to wait for human detection before giving up. Used in conjunction with human_detection. Minimum 30 seconds, maximum 1800 seconds (30 minutes).
- `summarization_prompt` (string, optional) — Custom prompt used to generate the warm transfer context summary for the warm transfer leg.
- `preserve_caller_id` (boolean, optional) — If true, the transfer target will see the caller's phone number instead of the agent's phone number. Only works for numbers purchased through a Synthflow Twilio account; for other numbers the call will fail.
- `screened` (boolean, optional) — If true, the transfer target will first speak with the AI agent, who can answer questions about the caller and the transcript. The transfer target can then choose to accept or decline the transfer.
- `human_availability` (HumanAvailabilityPublic, optional) — Human availability schedule used by live transfer actions.
- `pre_message_pause` (integer, optional) — Silence in seconds before each stage message. Used in warm transfer modes. Defaults to 0 when the action is created through the API.
- `post_message_pause` (integer, optional) — Silence in seconds after each stage message. Used in warm transfer modes. Defaults to 0 when the action is created through the API.
- `dtmf_duration_ms` (integer, optional) — How long each DTMF tone of `digits` is held, in milliseconds.
- `background_music` (LiveTransferBackgroundMusic, optional) — Hold music the caller hears while a warm transfer is being set up.
- `preferred_caller_id` (string, optional, nullable) — Caller ID shown to the transfer target on a warm transfer, such as a phone number or a SIP header variable like `{X-Original-Caller}`. Send `null` or an empty string to clear it. Takes precedence over `preserve_caller_id`. Works only for imported numbers whose provider accepts a custom caller ID.

### ActionsPostRequestBodyContentApplicationJsonSchemaCustomActionCustomAuth

- `is_needed` (boolean, optional, default: false) — If authorization to use the set URL and method are required set to true
- `location` (string, optional) — Section where the authorization will be used like: header
- `key` (string, optional, default: Bearer) — The authorization type. Default is Bearer
- `value` (string, optional) — The value of the token that will be used with the authentication type

### ActionsPostRequestBodyContentApplicationJsonSchemaCustomActionVariablesBeforeTheCallItems

- `key` (string, required) — Key name
- `value` (string, required) — Value that will be assigned to the key

### ActionsPostRequestBodyContentApplicationJsonSchemaCustomActionVariablesDuringTheCallItems

- `name` (string, optional) — Name of the variable that will be used during the call
- `description` (string, optional) — Description of the functionality of the variable
- `example` (string, optional) — Example of the value/answer that can be given to fill the variable
- `type` (enum, optional, default: string) — Type of the variable, matching **Type** in the action editor. `string` is String, `int` is Integer, `float` is Float, `bool` is Boolean, and `list` is List.
  - Allowed values: `string`, `int`, `float`, `bool`, `list`, `money`, `phone_number`, `email`, `datetime`, `utc_datetime`

### ActionsPostRequestBodyContentApplicationJsonSchemaCustomActionHeadersItems

- `key` (string, required) — Key name
- `value` (string, required) — Value that will be assigned to the key

### ActionsPostRequestBodyContentApplicationJsonSchemaCustomActionQueryParametersItems

- `key` (string, required) — Key name
- `value` (string, required) — Value that will be assigned to the key

### ActionsPostRequestBodyContentApplicationJsonSchemaCustomActionApiResponse

Example of the body your API returns, as a JSON object or array. Any other value, such as a string holding JSON, returns `400`. The dashboard shows the result fields from it, and every path in `variables` sent in the same request must exist in it.

- map from string to any
- list of any

### ActionsPostRequestBodyContentApplicationJsonSchemaCustomEvalQuestion

- `identifier` (string, optional) — Custom evaluation name.
- `text` (string, optional) — Custom evaluation description.
- `category` (enum, optional) — Custom evalution category.
  - Allowed values: `pass_fail`, `numeric`, `descriptive`, `likert_scale`
- `expected_result` (string, optional) — The expected result, which depends on the category. For pass_fail evaluations, the expected result is either true or false. For numeric evaluations, it is an integer between 1 and 10.

### HumanAvailabilityPublic

Human availability schedule used by live transfer actions.

- `timezone` (enum, required, default: Europe/Berlin) — IANA timezone identifier for schedule evaluation.
  - Allowed values: `Africa/Accra`, `Africa/Addis_Ababa`, `Africa/Algiers`, `Africa/Asmara`, `Africa/Bamako`, `Africa/Bangui`, `Africa/Banjul`, `Africa/Bissau`, `Africa/Blantyre`, `Africa/Brazzaville`, `Africa/Bujumbura`, `Africa/Cairo`, `Africa/Casablanca`, `Africa/Ceuta`, `Africa/Conakry`, `Africa/Dakar`, `Africa/Dar_es_Salaam`, `Africa/Djibouti`, `Africa/Douala`, `Africa/El_Aaiun`, `Africa/Freetown`, `Africa/Gaborone`, `Africa/Harare`, `Africa/Johannesburg`, `Africa/Juba`, `Africa/Kampala`, `Africa/Khartoum`, `Africa/Kigali`, `Africa/Kinshasa`, `Africa/Lagos`, `Africa/Libreville`, `Africa/Lome`, `Africa/Luanda`, `Africa/Lubumbashi`, `Africa/Lusaka`, `Africa/Malabo`, `Africa/Maputo`, `Africa/Maseru`, `Africa/Mbabane`, `Africa/Mogadishu`, `Africa/Monrovia`, `Africa/Nairobi`, `Africa/Ndjamena`, `Africa/Niamey`, `Africa/Nouakchott`, `Africa/Ouagadougou`, `Africa/Porto-Novo`, `Africa/Sao_Tome`, `Africa/Tripoli`, `Africa/Tunis`, `Africa/Windhoek`, `America/Adak`, `America/Anchorage`, `America/Anguilla`, `America/Antigua`, `America/Araguaina`, `America/Argentina/Buenos_Aires`, `America/Argentina/Catamarca`, `America/Argentina/Cordoba`, `America/Argentina/Jujuy`, `America/Argentina/La_Rioja`, `America/Argentina/Mendoza`, `America/Argentina/Rio_Gallegos`, `America/Argentina/Salta`, `America/Argentina/San_Juan`, `America/Argentina/San_Luis`, `America/Argentina/Tucuman`, `America/Argentina/Ushuaia`, `America/Aruba`, `America/Asuncion`, `America/Atikokan`, `America/Bahia`, `America/Bahia_Banderas`, `America/Barbados`, `America/Belem`, `America/Belize`, `America/Blanc-Sablon`, `America/Boa_Vista`, `America/Bogota`, `America/Boise`, `America/Cambridge_Bay`, `America/Campo_Grande`, `America/Cancun`, `America/Caracas`, `America/Cayenne`, `America/Cayman`, `America/Chicago`, `America/Chihuahua`, `America/Ciudad_Juarez`, `America/Costa_Rica`, `America/Creston`, `America/Cuiaba`, `America/Curacao`, `America/Danmarkshavn`, `America/Dawson`, `America/Dawson_Creek`, `America/Denver`, `America/Detroit`, `America/Dominica`, `America/Edmonton`, `America/Eirunepe`, `America/El_Salvador`, `America/Fort_Nelson`, `America/Fortaleza`, `America/Glace_Bay`, `America/Goose_Bay`, `America/Grand_Turk`, `America/Grenada`, `America/Guadeloupe`, `America/Guatemala`, `America/Guayaquil`, `America/Guyana`, `America/Halifax`, `America/Havana`, `America/Hermosillo`, `America/Indiana/Indianapolis`, `America/Indiana/Knox`, `America/Indiana/Marengo`, `America/Indiana/Petersburg`, `America/Indiana/Tell_City`, `America/Indiana/Vevay`, `America/Indiana/Vincennes`, `America/Indiana/Winamac`, `America/Inuvik`, `America/Iqaluit`, `America/Jamaica`, `America/Juneau`, `America/Kentucky/Louisville`, `America/Kentucky/Monticello`, `America/Kralendijk`, `America/La_Paz`, `America/Lima`, `America/Los_Angeles`, `America/Lower_Princes`, `America/Maceio`, `America/Managua`, `America/Manaus`, `America/Marigot`, `America/Martinique`, `America/Matamoros`, `America/Mazatlan`, `America/Menominee`, `America/Merida`, `America/Metlakatla`, `America/Mexico_City`, `America/Miquelon`, `America/Moncton`, `America/Monterrey`, `America/Montevideo`, `America/Montserrat`, `America/Nassau`, `America/New_York`, `America/Nome`, `America/Noronha`, `America/North_Dakota/Beulah`, `America/North_Dakota/Center`, `America/North_Dakota/New_Salem`, `America/Nuuk`, `America/Ojinaga`, `America/Panama`, `America/Paramaribo`, `America/Phoenix`, `America/Port_of_Spain`, `America/Port-au-Prince`, `America/Porto_Velho`, `America/Puerto_Rico`, `America/Punta_Arenas`, `America/Rankin_Inlet`, `America/Recife`, `America/Regina`, `America/Resolute`, `America/Rio_Branco`, `America/Santarem`, `America/Santiago`, `America/Santo_Domingo`, `America/Sao_Paulo`, `America/Scoresbysund`, `America/Sitka`, `America/St_Barthelemy`, `America/St_Johns`, `America/St_Kitts`, `America/St_Lucia`, `America/St_Thomas`, `America/St_Vincent`, `America/Swift_Current`, `America/Tegucigalpa`, `America/Thule`, `America/Tijuana`, `America/Toronto`, `America/Tortola`, `America/Vancouver`, `America/Whitehorse`, `America/Winnipeg`, `America/Yakutat`, `Antarctica/Casey`, `Antarctica/Davis`, `Antarctica/DumontDUrville`, `Antarctica/Macquarie`, `Antarctica/Mawson`, `Antarctica/McMurdo`, `Antarctica/Palmer`, `Antarctica/Rothera`, `Antarctica/Syowa`, `Antarctica/Troll`, `Antarctica/Vostok`, `Arctic/Longyearbyen`, `Asia/Aden`, `Asia/Almaty`, `Asia/Amman`, `Asia/Anadyr`, `Asia/Aqtau`, `Asia/Aqtobe`, `Asia/Ashgabat`, `Asia/Atyrau`, `Asia/Baghdad`, `Asia/Bahrain`, `Asia/Baku`, `Asia/Bangkok`, `Asia/Barnaul`, `Asia/Beirut`, `Asia/Bishkek`, `Asia/Brunei`, `Asia/Chita`, `Asia/Choibalsan`, `Asia/Colombo`, `Asia/Damascus`, `Asia/Dhaka`, `Asia/Dili`, `Asia/Dubai`, `Asia/Dushanbe`, `Asia/Famagusta`, `Asia/Gaza`, `Asia/Hebron`, `Asia/Ho_Chi_Minh`, `Asia/Hong_Kong`, `Asia/Hovd`, `Asia/Irkutsk`, `Asia/Jakarta`, `Asia/Jayapura`, `Asia/Jerusalem`, `Asia/Kabul`, `Asia/Kamchatka`, `Asia/Karachi`, `Asia/Kathmandu`, `Asia/Khandyga`, `Asia/Kolkata`, `Asia/Krasnoyarsk`, `Asia/Kuala_Lumpur`, `Asia/Kuching`, `Asia/Kuwait`, `Asia/Macau`, `Asia/Magadan`, `Asia/Makassar`, `Asia/Manila`, `Asia/Muscat`, `Asia/Nicosia`, `Asia/Novokuznetsk`, `Asia/Novosibirsk`, `Asia/Omsk`, `Asia/Oral`, `Asia/Phnom_Penh`, `Asia/Pontianak`, `Asia/Pyongyang`, `Asia/Qatar`, `Asia/Qostanay`, `Asia/Qyzylorda`, `Asia/Riyadh`, `Asia/Sakhalin`, `Asia/Samarkand`, `Asia/Seoul`, `Asia/Shanghai`, `Asia/Singapore`, `Asia/Srednekolymsk`, `Asia/Taipei`, `Asia/Tashkent`, `Asia/Tbilisi`, `Asia/Tehran`, `Asia/Thimphu`, `Asia/Tokyo`, `Asia/Tomsk`, `Asia/Ulaanbaatar`, `Asia/Urumqi`, `Asia/Ust-Nera`, `Asia/Vientiane`, `Asia/Vladivostok`, `Asia/Yakutsk`, `Asia/Yangon`, `Asia/Yekaterinburg`, `Asia/Yerevan`, `Atlantic/Azores`, `Atlantic/Bermuda`, `Atlantic/Canary`, `Atlantic/Cape_Verde`, `Atlantic/Faroe`, `Atlantic/Madeira`, `Atlantic/Reykjavik`, `Atlantic/South_Georgia`, `Atlantic/St_Helena`, `Atlantic/Stanley`, `Australia/Adelaide`, `Australia/Brisbane`, `Australia/Broken_Hill`, `Australia/Darwin`, `Australia/Eucla`, `Australia/Hobart`, `Australia/Lindeman`, `Australia/Lord_Howe`, `Australia/Melbourne`, `Australia/Perth`, `Australia/Sydney`, `Europe/Amsterdam`, `Europe/Andorra`, `Europe/Astrakhan`, `Europe/Athens`, `Europe/Belgrade`, `Europe/Berlin`, `Europe/Bratislava`, `Europe/Brussels`, `Europe/Bucharest`, `Europe/Budapest`, `Europe/Busingen`, `Europe/Chisinau`, `Europe/Copenhagen`, `Europe/Dublin`, `Europe/Gibraltar`, `Europe/Guernsey`, `Europe/Helsinki`, `Europe/Isle_of_Man`, `Europe/Istanbul`, `Europe/Jersey`, `Europe/Kaliningrad`, `Europe/Kirov`, `Europe/Kyiv`, `Europe/Lisbon`, `Europe/Ljubljana`, `Europe/London`, `Europe/Luxembourg`, `Europe/Madrid`, `Europe/Malta`, `Europe/Mariehamn`, `Europe/Minsk`, `Europe/Monaco`, `Europe/Moscow`, `Europe/Oslo`, `Europe/Paris`, `Europe/Podgorica`, `Europe/Prague`, `Europe/Riga`, `Europe/Rome`, `Europe/Samara`, `Europe/San_Marino`, `Europe/Sarajevo`, `Europe/Saratov`, `Europe/Simferopol`, `Europe/Skopje`, `Europe/Sofia`, `Europe/Stockholm`, `Europe/Tallinn`, `Europe/Tirane`, `Europe/Ulyanovsk`, `Europe/Vaduz`, `Europe/Vatican`, `Europe/Vienna`, `Europe/Vilnius`, `Europe/Volgograd`, `Europe/Warsaw`, `Europe/Zagreb`, `Europe/Zurich`, `Indian/Antananarivo`, `Indian/Chagos`, `Indian/Christmas`, `Indian/Cocos`, `Indian/Comoro`, `Indian/Kerguelen`, `Indian/Mahe`, `Indian/Maldives`, `Indian/Mauritius`, `Indian/Mayotte`, `Indian/Reunion`, `Pacific/Apia`, `Pacific/Auckland`, `Pacific/Bougainville`, `Pacific/Chatham`, `Pacific/Chuuk`, `Pacific/Easter`, `Pacific/Efate`, `Pacific/Fakaofo`, `Pacific/Fiji`, `Pacific/Funafuti`, `Pacific/Galapagos`, `Pacific/Gambier`, `Pacific/Guadalcanal`, `Pacific/Guam`, `Pacific/Honolulu`, `Pacific/Kanton`, `Pacific/Kiritimati`, `Pacific/Kosrae`, `Pacific/Kwajalein`, `Pacific/Majuro`, `Pacific/Marquesas`, `Pacific/Midway`, `Pacific/Nauru`, `Pacific/Niue`, `Pacific/Norfolk`, `Pacific/Noumea`, `Pacific/Pago_Pago`, `Pacific/Palau`, `Pacific/Pitcairn`, `Pacific/Pohnpei`, `Pacific/Port_Moresby`, `Pacific/Rarotonga`, `Pacific/Saipan`, `Pacific/Tahiti`, `Pacific/Tarawa`, `Pacific/Tongatapu`, `Pacific/Wake`, `Pacific/Wallis`, `US/Alaska`, `US/Central`, `US/Eastern`, `US/Hawaii`, `US/Mountain`, `US/Pacific`
- `schedule` (list of HumanAvailabilityScheduleItemPublic, required) — List of weekday schedules. A weekday can appear only once.
- `active` (boolean, required) — Enables or disables availability checks.
- `unavailable_message` (string, optional) — Message the agent says when transfer is attempted outside configured availability.

### LiveTransferBackgroundMusic

Hold music the caller hears while a warm transfer is being set up.

- `active` (boolean, optional) — Turns hold music on or off. Can be true only in a warm transfer mode. Required when you send `type` and the action has no stored value yet.
- `type` (enum, optional) — Music track. Required when `active` is true.
  - Allowed values: `ambient-background`, `inspirational-symphony-classical-music`, `modern-jazz`

### LiveTransferSipHeader

Custom SIP header sent with a transfer to a SIP URI.

- `name` (string, required) — Header name. Must start with `X-` and contain only letters, digits, hyphen and underscore. Reserved names are rejected.
- `value` (string, required) — Header value, or the extraction prompt when `mode` is `prompt`. Cannot be empty. In `default` mode it cannot contain CR, LF or NULL characters and may use variables such as `{customer_id}`.
- `mode` (enum, optional, default: default) — Use `default` to send the value as written, or `prompt` to have the agent extract the value from the conversation.
  - Allowed values: `default`, `prompt`

### HumanAvailabilityScheduleItemPublic

Availability for a single weekday. Exactly one interval is currently supported.

- `weekday` (enum, required) — Lowercase full weekday name.
  - Allowed values: `monday`, `tuesday`, `wednesday`, `thursday`, `friday`, `saturday`, `sunday`
- `interval` (list of HumanAvailabilityIntervalPublic, required) — Exactly one interval object per weekday.

### HumanAvailabilityIntervalPublic

One availability interval in 24-hour format.

- `from` (string, required) — Start time in HH:MM 24-hour format.
- `to` (string, required) — End time in HH:MM 24-hour format.

## Examples

**Request**

```json
{
  "REAL_TIME_BOOKING": {
    "first_appt_date": {},
    "max_time_slots": 2,
    "min_hours_diff": 3,
    "no_of_days": 3,
    "timezone": "America/New_York"
  }
}
```

**Response**

```json
{
  "status": "success",
  "response": {
    "action_id": "1725993202345x493030233644494700"
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.synthflow.ai/v2/actions"

payload = { "REAL_TIME_BOOKING": {
        "first_appt_date": {},
        "max_time_slots": 2,
        "min_hours_diff": 3,
        "no_of_days": 3,
        "timezone": "America/New_York"
    } }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.synthflow.ai/v2/actions"

	payload := strings.NewReader("{\n  \"REAL_TIME_BOOKING\": {\n    \"first_appt_date\": {},\n    \"max_time_slots\": 2,\n    \"min_hours_diff\": 3,\n    \"no_of_days\": 3,\n    \"timezone\": \"America/New_York\"\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.synthflow.ai/v2/actions")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"REAL_TIME_BOOKING\": {\n    \"first_appt_date\": {},\n    \"max_time_slots\": 2,\n    \"min_hours_diff\": 3,\n    \"no_of_days\": 3,\n    \"timezone\": \"America/New_York\"\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.synthflow.ai/v2/actions")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"REAL_TIME_BOOKING\": {\n    \"first_appt_date\": {},\n    \"max_time_slots\": 2,\n    \"min_hours_diff\": 3,\n    \"no_of_days\": 3,\n    \"timezone\": \"America/New_York\"\n  }\n}")
  .asString();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.synthflow.ai/v2/actions");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"REAL_TIME_BOOKING\": {\n    \"first_appt_date\": {},\n    \"max_time_slots\": 2,\n    \"min_hours_diff\": 3,\n    \"no_of_days\": 3,\n    \"timezone\": \"America/New_York\"\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["REAL_TIME_BOOKING": [
    "first_appt_date": [],
    "max_time_slots": 2,
    "min_hours_diff": 3,
    "no_of_days": 3,
    "timezone": "America/New_York"
  ]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.synthflow.ai/v2/actions")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```